33
44package com .example .accounts .services ;
55
6- import static org . eclipse . microprofile . lra .annotation . ws . rs .LRA .LRA_HTTP_CONTEXT_HEADER ;
7- import static org . eclipse . microprofile . lra .annotation . ws . rs .LRA .LRA_HTTP_ENDED_CONTEXT_HEADER ;
8- import static org . eclipse . microprofile . lra .annotation . ws . rs .LRA .LRA_HTTP_PARENT_CONTEXT_HEADER ;
6+ import static com . oracle . microtx . springboot . lra .annotation .LRA .LRA_HTTP_CONTEXT_HEADER ;
7+ import static com . oracle . microtx . springboot . lra .annotation .LRA .LRA_HTTP_ENDED_CONTEXT_HEADER ;
8+ import static com . oracle . microtx . springboot . lra .annotation .LRA .LRA_HTTP_PARENT_CONTEXT_HEADER ;
99
10- import javax .enterprise .context .RequestScoped ;
11- import javax .ws .rs .Consumes ;
12- import javax .ws .rs .GET ;
13- import javax .ws .rs .HeaderParam ;
14- import javax .ws .rs .POST ;
15- import javax .ws .rs .PUT ;
16- import javax .ws .rs .Path ;
17- import javax .ws .rs .Produces ;
18- import javax .ws .rs .QueryParam ;
19- import javax .ws .rs .core .MediaType ;
20- import javax .ws .rs .core .Response ;
21-
22- import org .eclipse .microprofile .lra .annotation .AfterLRA ;
23- import org .eclipse .microprofile .lra .annotation .Compensate ;
24- import org .eclipse .microprofile .lra .annotation .Complete ;
25- import org .eclipse .microprofile .lra .annotation .ParticipantStatus ;
26- import org .eclipse .microprofile .lra .annotation .Status ;
27- import org .eclipse .microprofile .lra .annotation .ws .rs .LRA ;
28- import org .springframework .stereotype .Component ;
10+ import org .springframework .http .ResponseEntity ;
11+ import org .springframework .web .bind .annotation .GetMapping ;
12+ import org .springframework .web .bind .annotation .PostMapping ;
13+ import org .springframework .web .bind .annotation .PutMapping ;
14+ import org .springframework .web .bind .annotation .RequestHeader ;
15+ import org .springframework .web .bind .annotation .RequestMapping ;
16+ import org .springframework .web .bind .annotation .RequestParam ;
17+ import org .springframework .web .bind .annotation .RestController ;
2918
3019import com .example .accounts .model .Account ;
3120import com .example .accounts .model .Journal ;
21+ import com .oracle .microtx .springboot .lra .annotation .AfterLRA ;
22+ import com .oracle .microtx .springboot .lra .annotation .Compensate ;
23+ import com .oracle .microtx .springboot .lra .annotation .Complete ;
24+ import com .oracle .microtx .springboot .lra .annotation .LRA ;
25+ import com .oracle .microtx .springboot .lra .annotation .ParticipantStatus ;
26+ import com .oracle .microtx .springboot .lra .annotation .Status ;
3227
3328import lombok .extern .slf4j .Slf4j ;
3429
35- @ RequestScoped
36- @ Path ("/deposit" )
37- @ Component
30+ @ RestController
31+ @ RequestMapping ("/deposit" )
3832@ Slf4j
3933public class DepositService {
4034
@@ -44,13 +38,11 @@ public class DepositService {
4438 * Write journal entry re deposit amount.
4539 * Do not increase actual bank account amount
4640 */
47- @ POST
48- @ Path ("/deposit" )
49- @ Produces (MediaType .APPLICATION_JSON )
41+ @ PostMapping
5042 @ LRA (value = LRA .Type .MANDATORY , end = false )
51- public Response deposit (@ HeaderParam (LRA_HTTP_CONTEXT_HEADER ) String lraId ,
52- @ QueryParam ("accountId" ) long accountId ,
53- @ QueryParam ("amount" ) long depositAmount ) {
43+ public ResponseEntity < String > deposit (@ RequestHeader (LRA_HTTP_CONTEXT_HEADER ) String lraId ,
44+ @ RequestParam ("accountId" ) long accountId ,
45+ @ RequestParam ("amount" ) long depositAmount ) {
5446 log .info ("...deposit " + depositAmount + " in account:" + accountId +
5547 " (lraId:" + lraId + ") finished (in pending state)" );
5648 Account account = AccountTransferDAO .instance ().getAccountForAccountId (accountId );
@@ -65,7 +57,7 @@ public Response deposit(@HeaderParam(LRA_HTTP_CONTEXT_HEADER) String lraId,
6557 AccountTransferDAO .getStatusString (ParticipantStatus .Active )
6658 )
6759 );
68- return Response .ok ("deposit failed: account does not exist" ). build ( );
60+ return ResponseEntity .ok ("deposit failed: account does not exist" );
6961 }
7062 AccountTransferDAO .instance ().saveJournal (
7163 new Journal (
@@ -76,18 +68,16 @@ public Response deposit(@HeaderParam(LRA_HTTP_CONTEXT_HEADER) String lraId,
7668 AccountTransferDAO .getStatusString (ParticipantStatus .Active )
7769 )
7870 );
79- return Response .ok ("deposit succeeded" ). build ( );
71+ return ResponseEntity .ok ("deposit succeeded" );
8072 }
8173
8274 /**
8375 * Increase balance amount as recorded in journal during deposit call.
8476 * Update LRA state to ParticipantStatus.Completed.
8577 */
86- @ PUT
87- @ Path ("/complete" )
88- @ Produces (MediaType .APPLICATION_JSON )
78+ @ PutMapping ("/complete" )
8979 @ Complete
90- public Response completeWork (@ HeaderParam (LRA_HTTP_CONTEXT_HEADER ) String lraId ) throws Exception {
80+ public ResponseEntity < String > completeWork (@ RequestHeader (LRA_HTTP_CONTEXT_HEADER ) String lraId ) throws Exception {
9181 log .info ("deposit complete called for LRA : " + lraId );
9282
9383 // get the journal and account...
@@ -104,47 +94,41 @@ public Response completeWork(@HeaderParam(LRA_HTTP_CONTEXT_HEADER) String lraId)
10494 AccountTransferDAO .instance ().saveJournal (journal );
10595
10696 // set this LRA participant's status to complete...
107- return Response .ok (ParticipantStatus .Completed .name ()). build ( );
97+ return ResponseEntity .ok (ParticipantStatus .Completed .name ());
10898 }
10999
110100 /**
111101 * Update LRA state to ParticipantStatus.Compensated.
112102 */
113- @ PUT
114- @ Path ("/compensate" )
115- @ Produces (MediaType .APPLICATION_JSON )
103+ @ PutMapping ("/compensate" )
116104 @ Compensate
117- public Response compensateWork (@ HeaderParam (LRA_HTTP_CONTEXT_HEADER ) String lraId ) throws Exception {
105+ public ResponseEntity < String > compensateWork (@ RequestHeader (LRA_HTTP_CONTEXT_HEADER ) String lraId ) throws Exception {
118106 log .info ("deposit compensate called for LRA : " + lraId );
119107 Journal journal = AccountTransferDAO .instance ().getJournalForLRAid (lraId , DEPOSIT );
120108 journal .setLraState (AccountTransferDAO .getStatusString (ParticipantStatus .Compensated ));
121109 AccountTransferDAO .instance ().saveJournal (journal );
122- return Response .ok (ParticipantStatus .Compensated .name ()). build ( );
110+ return ResponseEntity .ok (ParticipantStatus .Compensated .name ());
123111 }
124112
125113 /**
126114 * Return status
127115 */
128- @ GET
129- @ Path ("/status" )
130- @ Produces (MediaType .TEXT_PLAIN )
116+ @ GetMapping (value = "/status" , produces = "text/plain" )
131117 @ Status
132- public Response status (@ HeaderParam (LRA_HTTP_CONTEXT_HEADER ) String lraId ,
133- @ HeaderParam (LRA_HTTP_PARENT_CONTEXT_HEADER ) String parentLRA ) throws Exception {
118+ public ResponseEntity < ParticipantStatus > status (@ RequestHeader (LRA_HTTP_CONTEXT_HEADER ) String lraId ,
119+ @ RequestHeader (LRA_HTTP_PARENT_CONTEXT_HEADER ) String parentLRA ) throws Exception {
134120 return AccountTransferDAO .instance ().status (lraId , DEPOSIT );
135121 }
136122
137123 /**
138124 * Delete journal entry for LRA
139125 */
140- @ PUT
141- @ Path ("/after" )
126+ @ PutMapping (value = "/after" , consumes = "text/plain" )
142127 @ AfterLRA
143- @ Consumes (MediaType .TEXT_PLAIN )
144- public Response afterLRA (@ HeaderParam (LRA_HTTP_ENDED_CONTEXT_HEADER ) String lraId , String status ) throws Exception {
128+ public ResponseEntity <String > afterLRA (@ RequestHeader (LRA_HTTP_ENDED_CONTEXT_HEADER ) String lraId , String status ) throws Exception {
145129 log .info ("After LRA Called : " + lraId );
146130 AccountTransferDAO .instance ().afterLRA (lraId , status , DEPOSIT );
147- return Response .ok (). build ( );
131+ return ResponseEntity .ok ("" );
148132 }
149133
150134}
0 commit comments