Skip to content

Commit 475b977

Browse files
committed
$END is not validated as a app.
resolves spring-attic#4387
1 parent 94139c8 commit 475b977

File tree

2 files changed

+25
-1
lines changed

2 files changed

+25
-1
lines changed

spring-cloud-dataflow-server-core/src/main/java/org/springframework/cloud/dataflow/server/service/impl/DefaultTaskSaveService.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,9 @@ public void saveTaskDefinition(TaskDefinition taskDefinition) {
107107
.collect(Collectors.joining());
108108
TaskDefinition composedTaskElementDefinition = new TaskDefinition(task.getExecutableDSLName(),
109109
generatedTaskDSL);
110-
saveStandardTaskDefinition(composedTaskElementDefinition);
110+
if(!composedTaskElementDefinition.getTaskName().contains("$END")) {
111+
saveStandardTaskDefinition(composedTaskElementDefinition);
112+
}
111113
});
112114
taskDefinitionRepository.save(taskDefinition);
113115
}

spring-cloud-dataflow-server-core/src/test/java/org/springframework/cloud/dataflow/server/service/impl/DefaultTaskExecutionServiceTests.java

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1355,6 +1355,28 @@ public void executeComposedTaskwithUserCTRName() {
13551355
assertNull(request.getDefinition().getProperties().get("globalstreamkey"));
13561356
}
13571357

1358+
@Test
1359+
@DirtiesContext
1360+
public void executeComposedTaskWithEnd() {
1361+
String dsl = "timestamp '*'->t1: timestamp 'FOO'->$END";
1362+
initializeSuccessfulRegistry(appRegistry);
1363+
1364+
taskSaveService.saveTaskDefinition(new TaskDefinition("transitionTask", dsl));
1365+
when(taskLauncher.launch(any())).thenReturn("0");
1366+
1367+
Map<String, String> properties = new HashMap<>();
1368+
properties.put("app.t1.timestamp.format", "YYYY");
1369+
assertEquals(1L, this.taskExecutionService.executeTask("transitionTask", properties, new LinkedList<>()));
1370+
ArgumentCaptor<AppDeploymentRequest> argumentCaptor = ArgumentCaptor.forClass(AppDeploymentRequest.class);
1371+
verify(this.taskLauncher, atLeast(1)).launch(argumentCaptor.capture());
1372+
1373+
AppDeploymentRequest request = argumentCaptor.getValue();
1374+
assertEquals("transitionTask", request.getDefinition().getProperties().get("spring.cloud.task.name"));
1375+
assertEquals("YYYY",
1376+
request.getDefinition().getProperties().get("composed-task-app-properties.app.t1.timestamp.format"));
1377+
1378+
}
1379+
13581380
@Test
13591381
@DirtiesContext
13601382
public void executeComposedTaskWithLabels() {

0 commit comments

Comments
 (0)