3
3
4
4
package com .example .accounts .services ;
5
5
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 ;
9
9
10
- import jakarta .enterprise .context .RequestScoped ;
11
- import jakarta .ws .rs .Consumes ;
12
- import jakarta .ws .rs .GET ;
13
- import jakarta .ws .rs .HeaderParam ;
14
- import jakarta .ws .rs .POST ;
15
- import jakarta .ws .rs .PUT ;
16
- import jakarta .ws .rs .Path ;
17
- import jakarta .ws .rs .Produces ;
18
- import jakarta .ws .rs .QueryParam ;
19
- import jakarta .ws .rs .core .MediaType ;
20
- import jakarta .ws .rs .core .Response ;
21
- import lombok .extern .slf4j .Slf4j ;
22
-
23
- import org .eclipse .microprofile .lra .annotation .AfterLRA ;
24
- import org .eclipse .microprofile .lra .annotation .Compensate ;
25
- import org .eclipse .microprofile .lra .annotation .Complete ;
26
- import org .eclipse .microprofile .lra .annotation .ParticipantStatus ;
27
- import org .eclipse .microprofile .lra .annotation .Status ;
28
- import org .eclipse .microprofile .lra .annotation .ws .rs .LRA ;
29
- 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 ;
30
18
31
19
import com .example .accounts .model .Account ;
32
20
import 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 ;
27
+
28
+ import lombok .extern .slf4j .Slf4j ;
33
29
34
- @ RequestScoped
35
- @ Path ("/deposit" )
36
- @ Component
30
+ @ RestController
31
+ @ RequestMapping ("/deposit" )
37
32
@ Slf4j
38
33
public class DepositService {
39
34
@@ -43,13 +38,11 @@ public class DepositService {
43
38
* Write journal entry re deposit amount.
44
39
* Do not increase actual bank account amount
45
40
*/
46
- @ POST
47
- @ Path ("/deposit" )
48
- @ Produces (MediaType .APPLICATION_JSON )
41
+ @ PostMapping
49
42
@ LRA (value = LRA .Type .MANDATORY , end = false )
50
- public Response deposit (@ HeaderParam (LRA_HTTP_CONTEXT_HEADER ) String lraId ,
51
- @ QueryParam ("accountId" ) long accountId ,
52
- @ 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 ) {
53
46
log .info ("...deposit " + depositAmount + " in account:" + accountId +
54
47
" (lraId:" + lraId + ") finished (in pending state)" );
55
48
Account account = AccountTransferDAO .instance ().getAccountForAccountId (accountId );
@@ -64,7 +57,7 @@ public Response deposit(@HeaderParam(LRA_HTTP_CONTEXT_HEADER) String lraId,
64
57
AccountTransferDAO .getStatusString (ParticipantStatus .Active )
65
58
)
66
59
);
67
- return Response .ok ("deposit failed: account does not exist" ). build ( );
60
+ return ResponseEntity .ok ("deposit failed: account does not exist" );
68
61
}
69
62
AccountTransferDAO .instance ().saveJournal (
70
63
new Journal (
@@ -75,18 +68,16 @@ public Response deposit(@HeaderParam(LRA_HTTP_CONTEXT_HEADER) String lraId,
75
68
AccountTransferDAO .getStatusString (ParticipantStatus .Active )
76
69
)
77
70
);
78
- return Response .ok ("deposit succeeded" ). build ( );
71
+ return ResponseEntity .ok ("deposit succeeded" );
79
72
}
80
73
81
74
/**
82
75
* Increase balance amount as recorded in journal during deposit call.
83
76
* Update LRA state to ParticipantStatus.Completed.
84
77
*/
85
- @ PUT
86
- @ Path ("/complete" )
87
- @ Produces (MediaType .APPLICATION_JSON )
78
+ @ PutMapping ("/complete" )
88
79
@ Complete
89
- 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 {
90
81
log .info ("deposit complete called for LRA : " + lraId );
91
82
92
83
// get the journal and account...
@@ -103,47 +94,41 @@ public Response completeWork(@HeaderParam(LRA_HTTP_CONTEXT_HEADER) String lraId)
103
94
AccountTransferDAO .instance ().saveJournal (journal );
104
95
105
96
// set this LRA participant's status to complete...
106
- return Response .ok (ParticipantStatus .Completed .name ()). build ( );
97
+ return ResponseEntity .ok (ParticipantStatus .Completed .name ());
107
98
}
108
99
109
100
/**
110
101
* Update LRA state to ParticipantStatus.Compensated.
111
102
*/
112
- @ PUT
113
- @ Path ("/compensate" )
114
- @ Produces (MediaType .APPLICATION_JSON )
103
+ @ PutMapping ("/compensate" )
115
104
@ Compensate
116
- 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 {
117
106
log .info ("deposit compensate called for LRA : " + lraId );
118
107
Journal journal = AccountTransferDAO .instance ().getJournalForLRAid (lraId , DEPOSIT );
119
108
journal .setLraState (AccountTransferDAO .getStatusString (ParticipantStatus .Compensated ));
120
109
AccountTransferDAO .instance ().saveJournal (journal );
121
- return Response .ok (ParticipantStatus .Compensated .name ()). build ( );
110
+ return ResponseEntity .ok (ParticipantStatus .Compensated .name ());
122
111
}
123
112
124
113
/**
125
114
* Return status
126
115
*/
127
- @ GET
128
- @ Path ("/status" )
129
- @ Produces (MediaType .TEXT_PLAIN )
116
+ @ GetMapping (value = "/status" , produces = "text/plain" )
130
117
@ Status
131
- public Response status (@ HeaderParam (LRA_HTTP_CONTEXT_HEADER ) String lraId ,
132
- @ 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 {
133
120
return AccountTransferDAO .instance ().status (lraId , DEPOSIT );
134
121
}
135
122
136
123
/**
137
124
* Delete journal entry for LRA
138
125
*/
139
- @ PUT
140
- @ Path ("/after" )
126
+ @ PutMapping (value = "/after" , consumes = "text/plain" )
141
127
@ AfterLRA
142
- @ Consumes (MediaType .TEXT_PLAIN )
143
- 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 {
144
129
log .info ("After LRA Called : " + lraId );
145
130
AccountTransferDAO .instance ().afterLRA (lraId , status , DEPOSIT );
146
- return Response .ok (). build ( );
131
+ return ResponseEntity .ok ("" );
147
132
}
148
133
149
134
}
0 commit comments