Skip to content
This repository was archived by the owner on May 14, 2025. It is now read-only.

Commit afad738

Browse files
author
Corneil du Plessis
committed
Back port of Task Thin Execution List and List By Name
Updates api docs for tasks/thinexecutions/name and all HATEOAS links. Updates related tests for links. Update find by name to return 404 when task definition doesn't exist. Update version checking in TaskTemplate. Fixes #5995
1 parent 6e87904 commit afad738

File tree

2 files changed

+38
-10
lines changed

2 files changed

+38
-10
lines changed

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

Lines changed: 36 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ public class TaskTemplate implements TaskOperations {
7171
private static final String VALIDATION_THIN_TASK_VERSION = "2.11.3";
7272

7373
private static final String VALIDATION_TASK_LAUNCH_VERSION = "2.11.0";
74+
private static final String VALIDATION_TASK_THIN_BY_NAME = "2.11.6";
7475

7576
private static final String EXECUTIONS_RELATION = "tasks/executions";
7677

@@ -145,14 +146,43 @@ public class TaskTemplate implements TaskOperations {
145146

146147
this.restTemplate = restTemplate;
147148
this.dataFlowServerVersion = dataFlowServerVersion;
149+
String version = VersionUtils.getThreePartVersion(dataFlowServerVersion);
150+
if (VersionUtils.isDataFlowServerVersionGreaterThanOrEqualToRequiredVersion(version, EXECUTIONS_CURRENT_RELATION_VERSION)) {
151+
Assert.isTrue(resources.getLink(EXECUTIONS_CURRENT_RELATION).isPresent(), ()-> EXECUTIONS_CURRENT_RELATION + " relation is required");
152+
this.executionsCurrentLink = resources.getLink(EXECUTIONS_CURRENT_RELATION).get();
153+
} else {
154+
this.executionsCurrentLink = null;
155+
}
156+
if (VersionUtils.isDataFlowServerVersionGreaterThanOrEqualToRequiredVersion(version, VALIDATION_RELATION_VERSION)) {
157+
Assert.isTrue(resources.getLink(VALIDATION_REL).isPresent(), ()->VALIDATION_REL + " relation is required");
158+
this.validationLink = resources.getLink(VALIDATION_REL).get();
159+
} else {
160+
this.validationLink = null;
161+
}
148162

149-
this.validationLink = resources.getLink(VALIDATION_REL).get();
150-
this.aboutLink = resources.getLink("about").get();
151163

152-
this.thinExecutionsLink = resources.getLink(THIN_EXECUTIONS_RELATION).orElse(null);
153-
this.thinExecutionsByNameLink = resources.getLink(THIN_EXECUTIONS_BY_NAME_RELATION).orElse(null);
154-
this.executionLaunchLink = resources.getLink(EXECUTION_LAUNCH_RELATION).orElse(null);
155-
this.executionsCurrentLink = resources.getLink(EXECUTIONS_CURRENT_RELATION).orElse(null);
164+
if(VersionUtils.isDataFlowServerVersionGreaterThanOrEqualToRequiredVersion(version, VALIDATION_THIN_TASK_VERSION) && resources.getLink(THIN_EXECUTIONS_RELATION).isPresent()) {
165+
Assert.isTrue(resources.getLink(THIN_EXECUTIONS_RELATION).isPresent(), () -> THIN_EXECUTIONS_RELATION + " relation is required");
166+
this.thinExecutionsLink = resources.getLink(THIN_EXECUTIONS_RELATION).get();
167+
} else {
168+
this.thinExecutionsLink = null;
169+
}
170+
if(VersionUtils.isDataFlowServerVersionGreaterThanOrEqualToRequiredVersion(version, VALIDATION_TASK_THIN_BY_NAME)) {
171+
Assert.isTrue(resources.getLink(THIN_EXECUTIONS_BY_NAME_RELATION).isPresent(), () -> THIN_EXECUTIONS_BY_NAME_RELATION + " relation is required");
172+
this.thinExecutionsByNameLink = resources.getLink(THIN_EXECUTIONS_BY_NAME_RELATION).get();
173+
} else {
174+
this.thinExecutionsByNameLink = null;
175+
}
176+
177+
if (VersionUtils.isDataFlowServerVersionGreaterThanOrEqualToRequiredVersion(version, VALIDATION_TASK_LAUNCH_VERSION)) {
178+
Assert.isTrue(resources.getLink(EXECUTION_LAUNCH_RELATION).isPresent(), () -> EXECUTION_LAUNCH_RELATION + " relation is required");
179+
this.executionLaunchLink = resources.getLink(EXECUTION_LAUNCH_RELATION).get();
180+
} else {
181+
this.executionLaunchLink = null;
182+
}
183+
184+
185+
this.aboutLink = resources.getLink("about").get();
156186

157187
this.definitionsLink = resources.getLink(DEFINITIONS_RELATION).get();
158188
this.definitionLink = resources.getLink(DEFINITION_RELATION).get();

spring-cloud-dataflow-rest-client/src/test/java/org/springframework/cloud/dataflow/rest/client/TaskTemplateTests.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -54,14 +54,12 @@ public void testOldDataFlow() {
5454

5555
@Test
5656
public void testMinDataFlow() {
57-
validateExecutionLinkPresent("1.7.0");
57+
validateExecutionLinkPresent("2.10.0");
5858
}
5959

6060
@Test
6161
public void testFutureDataFlow() {
62-
validateExecutionLinkPresent("1.8.0");
63-
validateExecutionLinkPresent("1.9.0");
64-
validateExecutionLinkPresent("2.0.0");
62+
validateExecutionLinkPresent("2.11.6");
6563
}
6664

6765

0 commit comments

Comments
 (0)