From bbb5f19ce219e9dfef01a45f3e576f161dfb2685 Mon Sep 17 00:00:00 2001 From: buildmaster Date: Wed, 4 Mar 2020 15:54:56 +0000 Subject: [PATCH 1/5] Update SNAPSHOT to 2.2.2.RELEASE --- README.adoc | 2 +- docs/pom.xml | 2 +- pom.xml | 6 +++--- spring-cloud-config-client/pom.xml | 2 +- spring-cloud-config-dependencies/pom.xml | 4 ++-- spring-cloud-config-monitor/pom.xml | 4 ++-- spring-cloud-config-sample/pom.xml | 2 +- spring-cloud-config-server/pom.xml | 2 +- spring-cloud-starter-config/pom.xml | 4 ++-- 9 files changed, 14 insertions(+), 14 deletions(-) diff --git a/README.adoc b/README.adoc index 4bace665..e44d0086 100644 --- a/README.adoc +++ b/README.adoc @@ -190,7 +190,7 @@ $ curl localhost:8080/env } ---- -A property source called ```configService:/` contains the `foo` property with a value of `bar` and is highest priority. +A property source called `configService:/` contains the `foo` property with a value of `bar` and is the highest priority. NOTE: The URL in the property source name is the git repository, not the config server URL. diff --git a/docs/pom.xml b/docs/pom.xml index 556d1b5b..7d3e98c8 100644 --- a/docs/pom.xml +++ b/docs/pom.xml @@ -8,7 +8,7 @@ org.springframework.cloud spring-cloud-config - 2.2.2.BUILD-SNAPSHOT + 2.2.2.RELEASE .. diff --git a/pom.xml b/pom.xml index 2d868519..6e568f36 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ 4.0.0 org.springframework.cloud spring-cloud-config - 2.2.2.BUILD-SNAPSHOT + 2.2.2.RELEASE pom Spring Cloud Config Spring Cloud Config @@ -13,7 +13,7 @@ org.springframework.cloud spring-cloud-build - 2.2.2.BUILD-SNAPSHOT + 2.2.3.RELEASE @@ -27,7 +27,7 @@ config - 2.2.2.BUILD-SNAPSHOT + 2.2.2.RELEASE 1.11.52 v1-rev20191010-1.30.3 true diff --git a/spring-cloud-config-client/pom.xml b/spring-cloud-config-client/pom.xml index 7c555f46..336206e3 100644 --- a/spring-cloud-config-client/pom.xml +++ b/spring-cloud-config-client/pom.xml @@ -10,7 +10,7 @@ org.springframework.cloud spring-cloud-config - 2.2.2.BUILD-SNAPSHOT + 2.2.2.RELEASE .. diff --git a/spring-cloud-config-dependencies/pom.xml b/spring-cloud-config-dependencies/pom.xml index b8d0f046..507340fc 100644 --- a/spring-cloud-config-dependencies/pom.xml +++ b/spring-cloud-config-dependencies/pom.xml @@ -6,11 +6,11 @@ spring-cloud-dependencies-parent org.springframework.cloud - 2.2.2.BUILD-SNAPSHOT + 2.2.3.RELEASE spring-cloud-config-dependencies - 2.2.2.BUILD-SNAPSHOT + 2.2.2.RELEASE pom spring-cloud-config-dependencies Spring Cloud Config Dependencies diff --git a/spring-cloud-config-monitor/pom.xml b/spring-cloud-config-monitor/pom.xml index f337bd2c..fc7bdde3 100644 --- a/spring-cloud-config-monitor/pom.xml +++ b/spring-cloud-config-monitor/pom.xml @@ -6,7 +6,7 @@ org.springframework.cloud spring-cloud-config - 2.2.2.BUILD-SNAPSHOT + 2.2.2.RELEASE .. spring-cloud-config-monitor @@ -14,7 +14,7 @@ Spring Cloud Config Monitor ${basedir}/../.. - 2.2.1.BUILD-SNAPSHOT + 2.2.1.RELEASE diff --git a/spring-cloud-config-sample/pom.xml b/spring-cloud-config-sample/pom.xml index 86e1d21c..7b0b5e30 100644 --- a/spring-cloud-config-sample/pom.xml +++ b/spring-cloud-config-sample/pom.xml @@ -13,7 +13,7 @@ org.springframework.cloud spring-cloud-config - 2.2.2.BUILD-SNAPSHOT + 2.2.2.RELEASE .. diff --git a/spring-cloud-config-server/pom.xml b/spring-cloud-config-server/pom.xml index 49dfca93..1932093b 100644 --- a/spring-cloud-config-server/pom.xml +++ b/spring-cloud-config-server/pom.xml @@ -13,7 +13,7 @@ org.springframework.cloud spring-cloud-config - 2.2.2.BUILD-SNAPSHOT + 2.2.2.RELEASE .. diff --git a/spring-cloud-starter-config/pom.xml b/spring-cloud-starter-config/pom.xml index 6dbcf297..0ecc7433 100644 --- a/spring-cloud-starter-config/pom.xml +++ b/spring-cloud-starter-config/pom.xml @@ -6,10 +6,10 @@ org.springframework.cloud spring-cloud-config - 2.2.2.BUILD-SNAPSHOT + 2.2.2.RELEASE spring-cloud-starter-config - 2.2.2.BUILD-SNAPSHOT + 2.2.2.RELEASE spring-cloud-starter-config Spring Cloud Starter https://projects.spring.io/spring-cloud From 2d6e15bd18ff24423a5c4a7fd11eefac3765847d Mon Sep 17 00:00:00 2001 From: buildmaster Date: Wed, 4 Mar 2020 15:57:40 +0000 Subject: [PATCH 2/5] Going back to snapshots --- README.adoc | 2 +- docs/pom.xml | 2 +- pom.xml | 6 +++--- spring-cloud-config-client/pom.xml | 2 +- spring-cloud-config-dependencies/pom.xml | 4 ++-- spring-cloud-config-monitor/pom.xml | 4 ++-- spring-cloud-config-sample/pom.xml | 2 +- spring-cloud-config-server/pom.xml | 2 +- spring-cloud-starter-config/pom.xml | 4 ++-- 9 files changed, 14 insertions(+), 14 deletions(-) diff --git a/README.adoc b/README.adoc index e44d0086..4bace665 100644 --- a/README.adoc +++ b/README.adoc @@ -190,7 +190,7 @@ $ curl localhost:8080/env } ---- -A property source called `configService:/` contains the `foo` property with a value of `bar` and is the highest priority. +A property source called ```configService:/` contains the `foo` property with a value of `bar` and is highest priority. NOTE: The URL in the property source name is the git repository, not the config server URL. diff --git a/docs/pom.xml b/docs/pom.xml index 7d3e98c8..556d1b5b 100644 --- a/docs/pom.xml +++ b/docs/pom.xml @@ -8,7 +8,7 @@ org.springframework.cloud spring-cloud-config - 2.2.2.RELEASE + 2.2.2.BUILD-SNAPSHOT .. diff --git a/pom.xml b/pom.xml index 6e568f36..2d868519 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ 4.0.0 org.springframework.cloud spring-cloud-config - 2.2.2.RELEASE + 2.2.2.BUILD-SNAPSHOT pom Spring Cloud Config Spring Cloud Config @@ -13,7 +13,7 @@ org.springframework.cloud spring-cloud-build - 2.2.3.RELEASE + 2.2.2.BUILD-SNAPSHOT @@ -27,7 +27,7 @@ config - 2.2.2.RELEASE + 2.2.2.BUILD-SNAPSHOT 1.11.52 v1-rev20191010-1.30.3 true diff --git a/spring-cloud-config-client/pom.xml b/spring-cloud-config-client/pom.xml index 336206e3..7c555f46 100644 --- a/spring-cloud-config-client/pom.xml +++ b/spring-cloud-config-client/pom.xml @@ -10,7 +10,7 @@ org.springframework.cloud spring-cloud-config - 2.2.2.RELEASE + 2.2.2.BUILD-SNAPSHOT .. diff --git a/spring-cloud-config-dependencies/pom.xml b/spring-cloud-config-dependencies/pom.xml index 507340fc..b8d0f046 100644 --- a/spring-cloud-config-dependencies/pom.xml +++ b/spring-cloud-config-dependencies/pom.xml @@ -6,11 +6,11 @@ spring-cloud-dependencies-parent org.springframework.cloud - 2.2.3.RELEASE + 2.2.2.BUILD-SNAPSHOT spring-cloud-config-dependencies - 2.2.2.RELEASE + 2.2.2.BUILD-SNAPSHOT pom spring-cloud-config-dependencies Spring Cloud Config Dependencies diff --git a/spring-cloud-config-monitor/pom.xml b/spring-cloud-config-monitor/pom.xml index fc7bdde3..f337bd2c 100644 --- a/spring-cloud-config-monitor/pom.xml +++ b/spring-cloud-config-monitor/pom.xml @@ -6,7 +6,7 @@ org.springframework.cloud spring-cloud-config - 2.2.2.RELEASE + 2.2.2.BUILD-SNAPSHOT .. spring-cloud-config-monitor @@ -14,7 +14,7 @@ Spring Cloud Config Monitor ${basedir}/../.. - 2.2.1.RELEASE + 2.2.1.BUILD-SNAPSHOT diff --git a/spring-cloud-config-sample/pom.xml b/spring-cloud-config-sample/pom.xml index 7b0b5e30..86e1d21c 100644 --- a/spring-cloud-config-sample/pom.xml +++ b/spring-cloud-config-sample/pom.xml @@ -13,7 +13,7 @@ org.springframework.cloud spring-cloud-config - 2.2.2.RELEASE + 2.2.2.BUILD-SNAPSHOT .. diff --git a/spring-cloud-config-server/pom.xml b/spring-cloud-config-server/pom.xml index 1932093b..49dfca93 100644 --- a/spring-cloud-config-server/pom.xml +++ b/spring-cloud-config-server/pom.xml @@ -13,7 +13,7 @@ org.springframework.cloud spring-cloud-config - 2.2.2.RELEASE + 2.2.2.BUILD-SNAPSHOT .. diff --git a/spring-cloud-starter-config/pom.xml b/spring-cloud-starter-config/pom.xml index 0ecc7433..6dbcf297 100644 --- a/spring-cloud-starter-config/pom.xml +++ b/spring-cloud-starter-config/pom.xml @@ -6,10 +6,10 @@ org.springframework.cloud spring-cloud-config - 2.2.2.RELEASE + 2.2.2.BUILD-SNAPSHOT spring-cloud-starter-config - 2.2.2.RELEASE + 2.2.2.BUILD-SNAPSHOT spring-cloud-starter-config Spring Cloud Starter https://projects.spring.io/spring-cloud From a228d4c5e81e511199412a1a8b04198c0b374051 Mon Sep 17 00:00:00 2001 From: buildmaster Date: Wed, 4 Mar 2020 15:57:40 +0000 Subject: [PATCH 3/5] Bumping versions to 2.2.3.BUILD-SNAPSHOT after release --- docs/pom.xml | 2 +- pom.xml | 6 +++--- spring-cloud-config-client/pom.xml | 2 +- spring-cloud-config-dependencies/pom.xml | 4 ++-- spring-cloud-config-monitor/pom.xml | 4 ++-- spring-cloud-config-sample/pom.xml | 2 +- spring-cloud-config-server/pom.xml | 2 +- spring-cloud-starter-config/pom.xml | 4 ++-- 8 files changed, 13 insertions(+), 13 deletions(-) diff --git a/docs/pom.xml b/docs/pom.xml index 556d1b5b..e66e7690 100644 --- a/docs/pom.xml +++ b/docs/pom.xml @@ -8,7 +8,7 @@ org.springframework.cloud spring-cloud-config - 2.2.2.BUILD-SNAPSHOT + 2.2.3.BUILD-SNAPSHOT .. diff --git a/pom.xml b/pom.xml index 2d868519..55cf4003 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ 4.0.0 org.springframework.cloud spring-cloud-config - 2.2.2.BUILD-SNAPSHOT + 2.2.3.BUILD-SNAPSHOT pom Spring Cloud Config Spring Cloud Config @@ -13,7 +13,7 @@ org.springframework.cloud spring-cloud-build - 2.2.2.BUILD-SNAPSHOT + 2.2.3.RELEASE @@ -27,7 +27,7 @@ config - 2.2.2.BUILD-SNAPSHOT + 2.2.3.BUILD-SNAPSHOT 1.11.52 v1-rev20191010-1.30.3 true diff --git a/spring-cloud-config-client/pom.xml b/spring-cloud-config-client/pom.xml index 7c555f46..aa3a8513 100644 --- a/spring-cloud-config-client/pom.xml +++ b/spring-cloud-config-client/pom.xml @@ -10,7 +10,7 @@ org.springframework.cloud spring-cloud-config - 2.2.2.BUILD-SNAPSHOT + 2.2.3.BUILD-SNAPSHOT .. diff --git a/spring-cloud-config-dependencies/pom.xml b/spring-cloud-config-dependencies/pom.xml index b8d0f046..dee3f717 100644 --- a/spring-cloud-config-dependencies/pom.xml +++ b/spring-cloud-config-dependencies/pom.xml @@ -6,11 +6,11 @@ spring-cloud-dependencies-parent org.springframework.cloud - 2.2.2.BUILD-SNAPSHOT + 2.2.4.BUILD-SNAPSHOT spring-cloud-config-dependencies - 2.2.2.BUILD-SNAPSHOT + 2.2.3.BUILD-SNAPSHOT pom spring-cloud-config-dependencies Spring Cloud Config Dependencies diff --git a/spring-cloud-config-monitor/pom.xml b/spring-cloud-config-monitor/pom.xml index f337bd2c..89e974aa 100644 --- a/spring-cloud-config-monitor/pom.xml +++ b/spring-cloud-config-monitor/pom.xml @@ -6,7 +6,7 @@ org.springframework.cloud spring-cloud-config - 2.2.2.BUILD-SNAPSHOT + 2.2.3.BUILD-SNAPSHOT .. spring-cloud-config-monitor @@ -14,7 +14,7 @@ Spring Cloud Config Monitor ${basedir}/../.. - 2.2.1.BUILD-SNAPSHOT + 2.2.2.BUILD-SNAPSHOT diff --git a/spring-cloud-config-sample/pom.xml b/spring-cloud-config-sample/pom.xml index 86e1d21c..3e9b9ac6 100644 --- a/spring-cloud-config-sample/pom.xml +++ b/spring-cloud-config-sample/pom.xml @@ -13,7 +13,7 @@ org.springframework.cloud spring-cloud-config - 2.2.2.BUILD-SNAPSHOT + 2.2.3.BUILD-SNAPSHOT .. diff --git a/spring-cloud-config-server/pom.xml b/spring-cloud-config-server/pom.xml index 49dfca93..be46408a 100644 --- a/spring-cloud-config-server/pom.xml +++ b/spring-cloud-config-server/pom.xml @@ -13,7 +13,7 @@ org.springframework.cloud spring-cloud-config - 2.2.2.BUILD-SNAPSHOT + 2.2.3.BUILD-SNAPSHOT .. diff --git a/spring-cloud-starter-config/pom.xml b/spring-cloud-starter-config/pom.xml index 6dbcf297..13156142 100644 --- a/spring-cloud-starter-config/pom.xml +++ b/spring-cloud-starter-config/pom.xml @@ -6,10 +6,10 @@ org.springframework.cloud spring-cloud-config - 2.2.2.BUILD-SNAPSHOT + 2.2.3.BUILD-SNAPSHOT spring-cloud-starter-config - 2.2.2.BUILD-SNAPSHOT + 2.2.3.BUILD-SNAPSHOT spring-cloud-starter-config Spring Cloud Starter https://projects.spring.io/spring-cloud From db0319d2f1e0290e423cb7ee5069cf7989e8a3d9 Mon Sep 17 00:00:00 2001 From: Ryan Baxter Date: Mon, 9 Mar 2020 10:46:44 -0400 Subject: [PATCH 4/5] Cherry picking 34ac90c on top of the 2.2.x branch --- .../cloud/config/server/resource/ResourceController.java | 8 +++++--- .../config/server/resource/ResourceControllerTests.java | 7 +++++++ .../src/test/resources/test/dev/foo | 1 + 3 files changed, 13 insertions(+), 3 deletions(-) create mode 100644 spring-cloud-config-server/src/test/resources/test/dev/foo diff --git a/spring-cloud-config-server/src/main/java/org/springframework/cloud/config/server/resource/ResourceController.java b/spring-cloud-config-server/src/main/java/org/springframework/cloud/config/server/resource/ResourceController.java index 986f36d7..945dda27 100644 --- a/spring-cloud-config-server/src/main/java/org/springframework/cloud/config/server/resource/ResourceController.java +++ b/spring-cloud-config-server/src/main/java/org/springframework/cloud/config/server/resource/ResourceController.java @@ -145,14 +145,16 @@ public class ResourceController { // ensure InputStream will be closed to prevent file locks on Windows try (InputStream is = resource.getInputStream()) { String text = StreamUtils.copyToString(is, Charset.forName("UTF-8")); - String ext = StringUtils.getFilenameExtension(resource.getFilename()) - .toLowerCase(); + String ext = StringUtils.getFilenameExtension(resource.getFilename()); + if (ext != null) { + ext = ext.toLowerCase(); + } Environment environment = this.environmentRepository.findOne(name, profile, label, false); if (resolvePlaceholders) { text = resolvePlaceholders(prepareEnvironment(environment), text); } - if (encryptEnabled && plainTextEncryptEnabled) { + if (ext != null && encryptEnabled && plainTextEncryptEnabled) { ResourceEncryptor re = this.resourceEncryptorMap.get(ext); if (re == null) { logger.warn("Cannot decrypt for extension " + ext); diff --git a/spring-cloud-config-server/src/test/java/org/springframework/cloud/config/server/resource/ResourceControllerTests.java b/spring-cloud-config-server/src/test/java/org/springframework/cloud/config/server/resource/ResourceControllerTests.java index acd08695..00565416 100644 --- a/spring-cloud-config-server/src/test/java/org/springframework/cloud/config/server/resource/ResourceControllerTests.java +++ b/spring-cloud-config-server/src/test/java/org/springframework/cloud/config/server/resource/ResourceControllerTests.java @@ -175,6 +175,13 @@ public class ResourceControllerTests { assertThat(resource).isEqualToIgnoringNewLines("foo: dev_bar/spam"); } + @Test + public void resourceWithoutFileExtension() throws Exception { + this.environmentRepository.setSearchLocations("classpath:/test"); + String resource = this.controller.retrieve("foo", "bar", "dev", "foo", true); + assertThat(resource).isEqualToIgnoringNewLines("foo: dev_bar"); + } + @Test public void resourceWithSlash() throws Exception { this.environmentRepository.setSearchLocations("classpath:/test"); diff --git a/spring-cloud-config-server/src/test/resources/test/dev/foo b/spring-cloud-config-server/src/test/resources/test/dev/foo new file mode 100644 index 00000000..be18679f --- /dev/null +++ b/spring-cloud-config-server/src/test/resources/test/dev/foo @@ -0,0 +1 @@ +foo: dev_bar From 0771829dc3e98875fc7fba70a4cf3876e39b8c3c Mon Sep 17 00:00:00 2001 From: Spencer Gibb Date: Thu, 12 Mar 2020 11:37:31 -0400 Subject: [PATCH 5/5] Avoids NPE in case OriginLookup.getOrigin() returns null. fixes gh-1572 --- .../PassthruEnvironmentRepository.java | 12 ++-- .../PassthruEnvironmentRepositoryTests.java | 59 +++++++++++++++++++ 2 files changed, 67 insertions(+), 4 deletions(-) create mode 100644 spring-cloud-config-server/src/test/java/org/springframework/cloud/config/server/environment/PassthruEnvironmentRepositoryTests.java diff --git a/spring-cloud-config-server/src/main/java/org/springframework/cloud/config/server/environment/PassthruEnvironmentRepository.java b/spring-cloud-config-server/src/main/java/org/springframework/cloud/config/server/environment/PassthruEnvironmentRepository.java index 1b1e843c..a179e60c 100644 --- a/spring-cloud-config-server/src/main/java/org/springframework/cloud/config/server/environment/PassthruEnvironmentRepository.java +++ b/spring-cloud-config-server/src/main/java/org/springframework/cloud/config/server/environment/PassthruEnvironmentRepository.java @@ -63,15 +63,15 @@ public class PassthruEnvironmentRepository implements EnvironmentRepository { } @Override - public Environment findOne(String application, String env, String label) { - return findOne(application, env, label, false); + public Environment findOne(String application, String profile, String label) { + return findOne(application, profile, label, false); } @Override - public Environment findOne(String application, String env, String label, + public Environment findOne(String application, String profile, String label, boolean includeOrigin) { Environment result = new Environment(application, - StringUtils.commaDelimitedListToStringArray(env), label, null, null); + StringUtils.commaDelimitedListToStringArray(profile), label, null, null); for (org.springframework.core.env.PropertySource source : this.environment .getPropertySources()) { String name = source.getName(); @@ -92,6 +92,10 @@ public class PassthruEnvironmentRepository implements EnvironmentRepository { OriginLookup originLookup = (OriginLookup) source; for (Object key : input.keySet()) { Origin origin = originLookup.getOrigin(key.toString()); + if (origin == null) { + map.put(key, source.getProperty(key.toString())); + continue; + } String originDesc; if (origin instanceof TextResourceOrigin) { TextResourceOrigin tro = (TextResourceOrigin) origin; diff --git a/spring-cloud-config-server/src/test/java/org/springframework/cloud/config/server/environment/PassthruEnvironmentRepositoryTests.java b/spring-cloud-config-server/src/test/java/org/springframework/cloud/config/server/environment/PassthruEnvironmentRepositoryTests.java new file mode 100644 index 00000000..813f3f51 --- /dev/null +++ b/spring-cloud-config-server/src/test/java/org/springframework/cloud/config/server/environment/PassthruEnvironmentRepositoryTests.java @@ -0,0 +1,59 @@ +/* + * Copyright 2018-2019 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.cloud.config.server.environment; + +import java.util.Collections; +import java.util.List; +import java.util.Map; + +import org.junit.Test; + +import org.springframework.boot.env.OriginTrackedMapPropertySource; +import org.springframework.cloud.config.environment.Environment; +import org.springframework.cloud.config.environment.PropertySource; +import org.springframework.mock.env.MockEnvironment; + +import static org.assertj.core.api.Assertions.assertThat; + +public class PassthruEnvironmentRepositoryTests { + + @Test + public void originTrackedPropertySourceWithoutOriginWorks() { + MockEnvironment mockEnvironment = new MockEnvironment(); + mockEnvironment.setProperty("normalKey", "normalValue"); + mockEnvironment.getPropertySources() + .addFirst(new OriginTrackedMapPropertySource("myorigintrackedsource", + Collections.singletonMap("keyNoOrigin", "valueNoOrigin"))); + PassthruEnvironmentRepository repository = new PassthruEnvironmentRepository( + mockEnvironment); + Environment environment = repository.findOne("testapp", "default", "master", + true); + assertThat(environment).isNotNull(); + List propertySources = environment.getPropertySources(); + assertThat(propertySources).hasSize(2); + for (PropertySource propertySource : propertySources) { + Map source = propertySource.getSource(); + if (propertySource.getName().equals("myorigintrackedsource")) { + assertThat(source).containsEntry("keyNoOrigin", "valueNoOrigin"); + } + else if (propertySource.getName().equals("mockProperties")) { + assertThat(source).containsEntry("normalKey", "normalValue"); + } + } + } + +}