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

Commit e97c06f

Browse files
committed
Back-port #4085
- Remove second unescaping of Container Metadata
1 parent 45c8468 commit e97c06f

File tree

4 files changed

+18
-12
lines changed

4 files changed

+18
-12
lines changed

spring-cloud-dataflow-configuration-metadata/src/main/java/org/springframework/cloud/dataflow/configuration/metadata/BootApplicationConfigurationMetadataResolver.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@
3333
import java.util.Set;
3434
import java.util.stream.Collectors;
3535

36-
import org.apache.commons.text.StringEscapeUtils;
3736
import org.slf4j.Logger;
3837
import org.slf4j.LoggerFactory;
3938

@@ -194,10 +193,10 @@ private List<ConfigurationMetadataProperty> resolvePropertiesFromContainerImage(
194193
}
195194

196195
try {
197-
String metadataJson = StringEscapeUtils.unescapeJson(encodedMetadata);
198196
ConfigurationMetadataRepository configurationMetadataRepository =
199-
ConfigurationMetadataRepositoryJsonBuilder.create().withJsonResource(
200-
new ByteArrayInputStream(metadataJson.getBytes())).build();
197+
ConfigurationMetadataRepositoryJsonBuilder
198+
.create().withJsonResource(new ByteArrayInputStream(encodedMetadata.getBytes()))
199+
.build();
201200

202201
List<ConfigurationMetadataProperty> result = configurationMetadataRepository.getAllProperties().entrySet().stream()
203202
.map(e -> e.getValue())

spring-cloud-dataflow-configuration-metadata/src/test/java/org/springframework/cloud/dataflow/configuration/metadata/BootApplicationConfigurationMetadataResolverTests.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323
import java.util.Map;
2424
import java.util.Set;
2525

26-
import org.apache.commons.text.StringEscapeUtils;
2726
import org.hamcrest.Matcher;
2827
import org.junit.Before;
2928
import org.junit.Test;
@@ -77,15 +76,15 @@ public void appDockerResource() throws IOException {
7776
byte[] bytes = StreamUtils.copyToByteArray(new ClassPathResource(
7877
"apps/no-whitelist/META-INF/spring-configuration-metadata.json", getClass()).getInputStream());
7978
when(containerImageMetadataResolver.getImageLabels("test/test:latest"))
80-
.thenReturn(Collections.singletonMap("org.springframework.cloud.dataflow.spring-configuration-metadata.json", StringEscapeUtils.escapeJson(new String(bytes))));
79+
.thenReturn(Collections.singletonMap("org.springframework.cloud.dataflow.spring-configuration-metadata.json", new String(bytes)));
8180
List<ConfigurationMetadataProperty> properties = resolver.listProperties(new DockerResource("test/test:latest"));
8281
assertThat(properties.size(), is(3));
8382
}
8483

8584
@Test
8685
public void appDockerResourceBrokenFormat() {
8786
byte[] bytes = "Invalid metadata json content1".getBytes();
88-
Map<String, String> result = Collections.singletonMap("org.springframework.cloud.dataflow.spring-configuration-metadata.json", StringEscapeUtils.escapeJson(new String(bytes)));
87+
Map<String, String> result = Collections.singletonMap("org.springframework.cloud.dataflow.spring-configuration-metadata.json", new String(bytes));
8988
when(containerImageMetadataResolver.getImageLabels("test/test:latest")).thenReturn(result);
9089
List<ConfigurationMetadataProperty> properties = resolver.listProperties(new DockerResource("test/test:latest"));
9190
assertThat(properties.size(), is(0));

spring-cloud-dataflow-server/src/test/java/org/springframework/cloud/dataflow/integration/test/DataFlowIT.java

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -234,12 +234,19 @@ public void applicationMetadataTests() {
234234
assertThat(mavenAppWithoutMetadata.getOptions()).hasSize(8);
235235

236236
// Docker app with container image metadata
237-
dataFlowOperations.appRegistryOperations().register("docker-app-with-container-metadata", ApplicationType.sink,
237+
dataFlowOperations.appRegistryOperations().register("docker-app-with-container-metadata", ApplicationType.source,
238238
"docker:springcloudstream/time-source-kafka:2.1.2.BUILD-SNAPSHOT", null, true);
239239
DetailedAppRegistrationResource dockerAppWithContainerMetadata = dataFlowOperations.appRegistryOperations()
240-
.info("docker-app-with-container-metadata", ApplicationType.sink, false);
240+
.info("docker-app-with-container-metadata", ApplicationType.source, false);
241241
assertThat(dockerAppWithContainerMetadata.getOptions()).hasSize(6);
242242

243+
// Docker app with container image metadata with escape characters.
244+
dataFlowOperations.appRegistryOperations().register("docker-app-with-container-metadata-escape-chars", ApplicationType.source,
245+
"docker:springcloudstream/http-source-rabbit:2.1.3.RELEASE", null, true);
246+
DetailedAppRegistrationResource dockerAppWithContainerMetadataWithEscapeChars = dataFlowOperations.appRegistryOperations()
247+
.info("docker-app-with-container-metadata-escape-chars", ApplicationType.source, false);
248+
assertThat(dockerAppWithContainerMetadataWithEscapeChars.getOptions()).hasSize(6);
249+
243250
// Docker app without metadata
244251
dataFlowOperations.appRegistryOperations().register("docker-app-without-metadata", ApplicationType.sink,
245252
"docker:springcloudstream/file-sink-kafka:2.1.1.RELEASE", null, true);
@@ -256,7 +263,8 @@ public void applicationMetadataTests() {
256263
assertThat(dockerAppWithJarMetadata.getOptions()).hasSize(8);
257264

258265
// unregister the test apps
259-
dataFlowOperations.appRegistryOperations().unregister("docker-app-with-container-metadata", ApplicationType.sink);
266+
dataFlowOperations.appRegistryOperations().unregister("docker-app-with-container-metadata", ApplicationType.source);
267+
dataFlowOperations.appRegistryOperations().unregister("docker-app-with-container-metadata-escape-chars", ApplicationType.source);
260268
dataFlowOperations.appRegistryOperations().unregister("docker-app-without-metadata", ApplicationType.sink);
261269
dataFlowOperations.appRegistryOperations().unregister("maven-app-without-metadata", ApplicationType.sink);
262270
dataFlowOperations.appRegistryOperations().unregister("docker-app-with-jar-metadata", ApplicationType.sink);

spring-cloud-dataflow-server/src/test/java/org/springframework/cloud/dataflow/integration/test/util/DockerComposeFactory.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,12 +50,12 @@ public class DockerComposeFactory {
5050
/**
5151
* Data Flow version to use for the tests.
5252
*/
53-
public static final String DEFAULT_DATAFLOW_VERSION = "2.6.0-SNAPSHOT";
53+
public static final String DEFAULT_DATAFLOW_VERSION = "2.6.2-SNAPSHOT";
5454

5555
/**
5656
* Skipper version used for the tests.
5757
*/
58-
public static final String DEFAULT_SKIPPER_VERSION = "2.5.0-SNAPSHOT";
58+
public static final String DEFAULT_SKIPPER_VERSION = "2.5.1";
5959

6060
/**
6161
* Pre-registered Task apps used for testing.

0 commit comments

Comments
 (0)