Skip to content

Commit 8a6f0e8

Browse files
committed
refactor(cloud-api): rename types and add equality (#885)
Rename request/response/vo classes in flamingock-cloud-api so naming is consistent and unambiguous at call sites (no more bare TaskRequest / LockInfo that collide with internal types). Renames (request): - TaskRequest -> ChangeRequest - ClientSubmission -> ClientSubmissionRequest Renames (response): - TaskResponse -> ChangeResponse - ExecutionResponse -> ExecutionSummaryResponse - ExecutionFullResponse -> ExecutionDetailResponse - LogAuditEntryResponse -> AuditEntryResponse - LogAuditEntryCreatedResponse -> AuditEntryCreatedResponse - LogAuditEntryIdempotentResponse -> AuditEntryIdempotentResponse - LockInfo -> LockInfoResponse Renames (vo / error): - ExecutionAction -> CloudExecutionAction - LockStatus -> CloudLockStatus - TargetSystemAuditMarkType -> CloudTargetSystemAuditMarkType - TxStrategy -> CloudTxStrategy - FlamingockError -> CloudFlamingockError New value-object types (previously leaking from core): - CloudAuditStatus - CloudChangeType - CloudRecoveryStrategy Align request/response shapes with the new server contract (AuditEntryRequest, ExecutionPlanRequest/Response, LockResponse, StageRequest/Response) and drop the now-unused TaskRequest. Add equals()/hashCode() to ClientSubmissionRequest, StageRequest, ChangeRequest, StageResponse and ChangeResponse. These types are transitively compared by ExecutionDetailResponse.equals(), which delegates to Objects.equals() on its nested fields; without structural equality on the children, server tests asserting `responseBody shouldBe expected` failed on reference identity.
1 parent a3388ad commit 8a6f0e8

File tree

61 files changed

+526
-353
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

61 files changed

+526
-353
lines changed

cloud/flamingock-cloud-api/src/main/java/io/flamingock/cloud/api/error/FlamingockError.java renamed to cloud/flamingock-cloud-api/src/main/java/io/flamingock/cloud/api/error/CloudFlamingockError.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717

1818
import java.util.Map;
1919

20-
public interface FlamingockError {
20+
public interface CloudFlamingockError {
2121

2222
String getCode();
2323

cloud/flamingock-cloud-api/src/main/java/io/flamingock/cloud/api/request/AuditEntryRequest.java

Lines changed: 16 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -15,26 +15,29 @@
1515
*/
1616
package io.flamingock.cloud.api.request;
1717

18-
import io.flamingock.api.RecoveryStrategy;
18+
import io.flamingock.cloud.api.vo.CloudRecoveryStrategy;
19+
import io.flamingock.cloud.api.vo.CloudAuditStatus;
20+
import io.flamingock.cloud.api.vo.CloudChangeType;
21+
import io.flamingock.cloud.api.vo.CloudTxStrategy;
1922

2023
public class AuditEntryRequest {
2124

2225
private String stageId;
2326
private String taskId;
2427
private String author;
2528
private long appliedAtEpochMillis;
26-
private AuditEntryStatus state;
29+
private CloudAuditStatus state;
2730
private String className;
2831
private String methodName;
2932
private Object metadata;
3033
private long executionMillis;
3134
private String executionHostname;
3235
private String errorTrace;
33-
private ChangeType type;
34-
private CloudAuditTxType txStrategy;
36+
private CloudChangeType type;
37+
private CloudTxStrategy txStrategy;
3538
private String targetSystemId;
3639
private String order;
37-
private RecoveryStrategy recoveryStrategy;
40+
private CloudRecoveryStrategy recoveryStrategy;
3841
private Boolean transactionFlag;
3942
protected Boolean systemChange;//TODO not in server
4043

@@ -45,19 +48,19 @@ public AuditEntryRequest(String stageId,
4548
String taskId,
4649
String author,
4750
long appliedAtEpochMillis,
48-
AuditEntryStatus state,
49-
ChangeType type,
51+
CloudAuditStatus state,
52+
CloudChangeType type,
5053
String className,
5154
String methodName,
5255
long executionMillis,
5356
String executionHostname,
5457
Object metadata,
5558
boolean systemChange,
5659
String errorTrace,
57-
CloudAuditTxType txStrategy,
60+
CloudTxStrategy txStrategy,
5861
String targetSystemId,
5962
String order,
60-
RecoveryStrategy recoveryStrategy,
63+
CloudRecoveryStrategy recoveryStrategy,
6164
Boolean transactionFlag) {
6265
this.stageId = stageId;
6366
this.taskId = taskId;
@@ -96,7 +99,7 @@ public long getAppliedAtEpochMillis() {
9699
return appliedAtEpochMillis;
97100
}
98101

99-
public AuditEntryStatus getState() {
102+
public CloudAuditStatus getState() {
100103
return state;
101104
}
102105

@@ -128,11 +131,11 @@ public Boolean getSystemChange() {
128131
return systemChange;
129132
}
130133

131-
public ChangeType getType() {
134+
public CloudChangeType getType() {
132135
return type;
133136
}
134137

135-
public CloudAuditTxType getTxStrategy() {
138+
public CloudTxStrategy getTxStrategy() {
136139
return txStrategy;
137140
}
138141

@@ -144,28 +147,12 @@ public String getOrder() {
144147
return order;
145148
}
146149

147-
public RecoveryStrategy getRecoveryStrategy() {
150+
public CloudRecoveryStrategy getRecoveryStrategy() {
148151
return recoveryStrategy;
149152
}
150153

151154
public Boolean getTransactionFlag() {
152155
return transactionFlag;
153156
}
154157

155-
public enum ChangeType {STANDARD_CODE, STANDARD_TEMPLATE, MONGOCK_EXECUTION, MONGOCK_BEFORE}
156-
157-
public enum AuditEntryStatus {
158-
STARTED,
159-
APPLIED,
160-
FAILED,
161-
ROLLED_BACK,
162-
ROLLBACK_FAILED,
163-
MANUAL_MARKED_AS_APPLIED,
164-
MANUAL_MARKED_AS_ROLLED_BACK
165-
}
166-
167-
168158
}
169-
170-
171-
Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
/*
2+
* Copyright 2025 Flamingock (https://www.flamingock.io)
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* http://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/
16+
package io.flamingock.cloud.api.request;
17+
18+
19+
import io.flamingock.cloud.api.vo.CloudTargetSystemAuditMarkType;
20+
21+
//TODO add recoveryStrategy, so we can determin the acction in the server
22+
public class ChangeRequest {
23+
24+
private String id;
25+
26+
private CloudTargetSystemAuditMarkType ongoingStatus;
27+
28+
private boolean transactional;
29+
30+
public ChangeRequest() {
31+
}
32+
33+
public static ChangeRequest task(String id, boolean transactional) {
34+
return new ChangeRequest(id, CloudTargetSystemAuditMarkType.NONE, transactional);
35+
}
36+
37+
public static ChangeRequest ongoingExecution(String id, boolean transactional) {
38+
return new ChangeRequest(id, CloudTargetSystemAuditMarkType.APPLIED, transactional);
39+
}
40+
41+
public static ChangeRequest ongoingRollback(String id, boolean transactional) {
42+
return new ChangeRequest(id, CloudTargetSystemAuditMarkType.ROLLBACK, transactional);
43+
}
44+
45+
public ChangeRequest(String id, CloudTargetSystemAuditMarkType ongoingStatus, boolean transactional) {
46+
this.id = id;
47+
this.ongoingStatus = ongoingStatus;
48+
this.transactional = transactional;
49+
}
50+
51+
public String getId() {
52+
return id;
53+
}
54+
55+
public CloudTargetSystemAuditMarkType getOngoingStatus() {
56+
return ongoingStatus;
57+
}
58+
59+
public boolean isTransactional() {
60+
return transactional;
61+
}
62+
63+
public void setId(String id) {
64+
this.id = id;
65+
}
66+
67+
public void setOngoingStatus(CloudTargetSystemAuditMarkType ongoingStatus) {
68+
this.ongoingStatus = ongoingStatus;
69+
}
70+
71+
public void setTransactional(boolean transactional) {
72+
this.transactional = transactional;
73+
}
74+
75+
@Override
76+
public boolean equals(Object o) {
77+
if (this == o) return true;
78+
if (o == null || getClass() != o.getClass()) return false;
79+
ChangeRequest that = (ChangeRequest) o;
80+
return transactional == that.transactional
81+
&& java.util.Objects.equals(id, that.id)
82+
&& java.util.Objects.equals(ongoingStatus, that.ongoingStatus);
83+
}
84+
85+
@Override
86+
public int hashCode() {
87+
return java.util.Objects.hash(id, ongoingStatus, transactional);
88+
}
89+
}

cloud/flamingock-cloud-api/src/main/java/io/flamingock/cloud/api/request/ClientSubmission.java renamed to cloud/flamingock-cloud-api/src/main/java/io/flamingock/cloud/api/request/ClientSubmissionRequest.java

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,13 @@
1717

1818
import java.util.List;
1919

20-
public class ClientSubmission {
20+
public class ClientSubmissionRequest {
2121
private List<StageRequest> stages;
2222

23-
public ClientSubmission() {
23+
public ClientSubmissionRequest() {
2424
}
2525

26-
public ClientSubmission(List<StageRequest> stages) {
26+
public ClientSubmissionRequest(List<StageRequest> stages) {
2727
this.stages = stages;
2828
}
2929

@@ -34,4 +34,17 @@ public List<StageRequest> getStages() {
3434
public void setStages(List<StageRequest> stages) {
3535
this.stages = stages;
3636
}
37+
38+
@Override
39+
public boolean equals(Object o) {
40+
if (this == o) return true;
41+
if (o == null || getClass() != o.getClass()) return false;
42+
ClientSubmissionRequest that = (ClientSubmissionRequest) o;
43+
return java.util.Objects.equals(stages, that.stages);
44+
}
45+
46+
@Override
47+
public int hashCode() {
48+
return java.util.Objects.hash(stages);
49+
}
3750
}

cloud/flamingock-cloud-api/src/main/java/io/flamingock/cloud/api/request/ExecutionPlanRequest.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,18 +19,18 @@
1919

2020
public class ExecutionPlanRequest {
2121

22-
private ClientSubmission clientSubmission;
22+
private ClientSubmissionRequest clientSubmission;
2323
private long lockAcquiredForMillis;
2424

2525
public ExecutionPlanRequest() {
2626
}
2727

2828
public ExecutionPlanRequest(long lockAcquiredForMillis, List<StageRequest> stages) {
2929
this.lockAcquiredForMillis = lockAcquiredForMillis;
30-
this.clientSubmission = new ClientSubmission(stages);
30+
this.clientSubmission = new ClientSubmissionRequest(stages);
3131
}
3232

33-
public void setClientSubmission(ClientSubmission clientSubmission) {
33+
public void setClientSubmission(ClientSubmissionRequest clientSubmission) {
3434
this.clientSubmission = clientSubmission;
3535
}
3636

@@ -42,7 +42,7 @@ public long getLockAcquiredForMillis() {
4242
return lockAcquiredForMillis;
4343
}
4444

45-
public ClientSubmission getClientSubmission() {
45+
public ClientSubmissionRequest getClientSubmission() {
4646
return clientSubmission;
4747
}
4848

cloud/flamingock-cloud-api/src/main/java/io/flamingock/cloud/api/request/StageRequest.java

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,12 @@ public class StageRequest {
2222

2323
private int order;
2424

25-
private List<TaskRequest> tasks;
25+
private List<ChangeRequest> tasks;
2626

2727
public StageRequest() {
2828
}
2929

30-
public StageRequest(String name, int order, List<TaskRequest> tasks) {
30+
public StageRequest(String name, int order, List<ChangeRequest> tasks) {
3131
this.name = name;
3232
this.order = order;
3333
this.tasks = tasks;
@@ -41,7 +41,7 @@ public int getOrder() {
4141
return order;
4242
}
4343

44-
public List<TaskRequest> getTasks() {
44+
public List<ChangeRequest> getTasks() {
4545
return tasks;
4646
}
4747

@@ -53,7 +53,22 @@ public void setOrder(int order) {
5353
this.order = order;
5454
}
5555

56-
public void setTasks(List<TaskRequest> tasks) {
56+
public void setTasks(List<ChangeRequest> tasks) {
5757
this.tasks = tasks;
5858
}
59+
60+
@Override
61+
public boolean equals(Object o) {
62+
if (this == o) return true;
63+
if (o == null || getClass() != o.getClass()) return false;
64+
StageRequest that = (StageRequest) o;
65+
return order == that.order
66+
&& java.util.Objects.equals(name, that.name)
67+
&& java.util.Objects.equals(tasks, that.tasks);
68+
}
69+
70+
@Override
71+
public int hashCode() {
72+
return java.util.Objects.hash(name, order, tasks);
73+
}
5974
}

0 commit comments

Comments
 (0)