Skip to content

Commit 872ee4c

Browse files
author
Corneil du Plessis
authored
Ensure TaskTemplate uses tasks/executions when tasks/thinexecutions is absent (#5790)
* Ensure TaskTemplate uses `tasks/executions` when `tasks/thinexecutions` is absent * Ensure TaskTemplate only uses `tasks/executions/launch` for server >= 2.10
1 parent 0bfbd15 commit 872ee4c

File tree

1 file changed

+20
-7
lines changed
  • spring-cloud-dataflow-rest-client/src/main/java/org/springframework/cloud/dataflow/rest/client

1 file changed

+20
-7
lines changed

spring-cloud-dataflow-rest-client/src/main/java/org/springframework/cloud/dataflow/rest/client/TaskTemplate.java

+20-7
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import java.util.Map;
2323
import java.util.Objects;
2424
import java.util.stream.Stream;
25+
2526
import javax.naming.OperationNotSupportedException;
2627

2728
import org.springframework.cloud.dataflow.rest.client.support.VersionUtils;
@@ -69,6 +70,8 @@ public class TaskTemplate implements TaskOperations {
6970

7071
private static final String VALIDATION_THIN_TASK_VERSION = "2.11.3";
7172

73+
private static final String VALIDATION_TASK_LAUNCH_VERSION = "2.11.0";
74+
7275
private static final String EXECUTIONS_RELATION = "tasks/executions";
7376

7477
private static final String THIN_EXECUTIONS_RELATION = "tasks/thinexecutions";
@@ -131,8 +134,7 @@ public class TaskTemplate implements TaskOperations {
131134
EXECUTION_RELATION_BY_NAME,
132135
EXECUTIONS_INFO_RELATION,
133136
PLATFORM_LIST_RELATION,
134-
RETRIEVE_LOG,
135-
VALIDATION_REL
137+
RETRIEVE_LOG
136138
).forEach(relation -> {
137139
Assert.isTrue(resources.getLink(relation).isPresent(), () -> relation + " relation is required");
138140
});
@@ -143,8 +145,11 @@ public class TaskTemplate implements TaskOperations {
143145
String version = VersionUtils.getThreePartVersion(dataFlowServerVersion);
144146
if (VersionUtils.isDataFlowServerVersionGreaterThanOrEqualToRequiredVersion(version, VALIDATION_RELATION_VERSION)) {
145147
Assert.isTrue(resources.getLink(VALIDATION_REL).isPresent(), ()->VALIDATION_REL + " relation is required");
146-
148+
this.validationLink = resources.getLink(VALIDATION_REL).get();
149+
} else {
150+
this.validationLink = null;
147151
}
152+
148153
// TODO early 2.11.3-SNAPSHOT version didn't have this. Remove && resources.getLink(THIN_EXECUTIONS_RELATION).isPresent() when releasing 2.11.3
149154
if(VersionUtils.isDataFlowServerVersionGreaterThanOrEqualToRequiredVersion(version, VALIDATION_THIN_TASK_VERSION) && resources.getLink(THIN_EXECUTIONS_RELATION).isPresent()) {
150155
Assert.isTrue(resources.getLink(THIN_EXECUTIONS_RELATION).isPresent(), () -> THIN_EXECUTIONS_RELATION + " relation is required");
@@ -153,6 +158,12 @@ public class TaskTemplate implements TaskOperations {
153158
this.thinExecutionsLink = null;
154159
}
155160

161+
if (VersionUtils.isDataFlowServerVersionGreaterThanOrEqualToRequiredVersion(version, VALIDATION_TASK_LAUNCH_VERSION)) {
162+
Assert.isTrue(resources.getLink(EXECUTION_LAUNCH_RELATION).isPresent(), () -> EXECUTION_LAUNCH_RELATION + " relation is required");
163+
this.executionLaunchLink = resources.getLink(EXECUTION_LAUNCH_RELATION).get();
164+
} else {
165+
this.executionLaunchLink = null;
166+
}
156167

157168
if (VersionUtils.isDataFlowServerVersionGreaterThanOrEqualToRequiredVersion(version, EXECUTIONS_CURRENT_RELATION_VERSION)) {
158169
Assert.isTrue(resources.getLink(EXECUTIONS_CURRENT_RELATION).isPresent(), ()-> EXECUTIONS_CURRENT_RELATION + " relation is required");
@@ -161,12 +172,11 @@ public class TaskTemplate implements TaskOperations {
161172
this.executionsCurrentLink = null;
162173
}
163174
this.aboutLink = resources.getLink("about").get();
164-
this.validationLink = resources.getLink(VALIDATION_REL).get();
175+
165176
this.definitionsLink = resources.getLink(DEFINITIONS_RELATION).get();
166177
this.definitionLink = resources.getLink(DEFINITION_RELATION).get();
167178
this.executionsLink = resources.getLink(EXECUTIONS_RELATION).get();
168179
this.executionLink = resources.getLink(EXECUTION_RELATION).get();
169-
this.executionLaunchLink = resources.getLink(EXECUTION_LAUNCH_RELATION).get();
170180
this.executionByNameLink = resources.getLink(EXECUTION_RELATION_BY_NAME).get();
171181
this.executionsInfoLink = resources.getLink(EXECUTIONS_INFO_RELATION).get();
172182
this.platformListLink = resources.getLink(PLATFORM_LIST_RELATION).get();
@@ -274,8 +284,11 @@ public TaskExecutionResource.Page executionList() {
274284

275285
@Override
276286
public PagedModel<TaskExecutionThinResource> thinExecutionList() {
277-
Assert.notNull(thinExecutionsLink, "Expected link:" + THIN_EXECUTIONS_RELATION);
278-
return restTemplate.getForObject(thinExecutionsLink.getHref(), TaskExecutionThinResource.Page.class);
287+
if(thinExecutionsLink != null) {
288+
return restTemplate.getForObject(thinExecutionsLink.getHref(), TaskExecutionThinResource.Page.class);
289+
} else {
290+
return restTemplate.getForObject(executionsLink.getHref(), TaskExecutionThinResource.Page.class);
291+
}
279292
}
280293

281294
@Override

0 commit comments

Comments
 (0)