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