From 4a35526b97fcd18e47827fe82537634bf3886f99 Mon Sep 17 00:00:00 2001 From: Dave Syer Date: Mon, 21 Dec 2015 12:16:21 +0000 Subject: [PATCH] Locate placeholder in resource search location correctly Fixes gh-303 --- .../environment/JGitEnvironmentRepository.java | 2 +- .../server/resource/GenericResourceRepository.java | 2 +- .../resource/GenericResourceRepositoryTests.java | 12 +++++++++--- .../src/test/resources/test/local/foo.txt | 1 + 4 files changed, 12 insertions(+), 5 deletions(-) create mode 100644 spring-cloud-config-server/src/test/resources/test/local/foo.txt diff --git a/spring-cloud-config-server/src/main/java/org/springframework/cloud/config/server/environment/JGitEnvironmentRepository.java b/spring-cloud-config-server/src/main/java/org/springframework/cloud/config/server/environment/JGitEnvironmentRepository.java index 93e80e9d..78e57dfc 100644 --- a/spring-cloud-config-server/src/main/java/org/springframework/cloud/config/server/environment/JGitEnvironmentRepository.java +++ b/spring-cloud-config-server/src/main/java/org/springframework/cloud/config/server/environment/JGitEnvironmentRepository.java @@ -161,7 +161,7 @@ public class JGitEnvironmentRepository extends AbstractScmEnvironmentRepository finally { try { if (git != null) { - git.getRepository().close(); + git.close(); } } catch (Exception e) { diff --git a/spring-cloud-config-server/src/main/java/org/springframework/cloud/config/server/resource/GenericResourceRepository.java b/spring-cloud-config-server/src/main/java/org/springframework/cloud/config/server/resource/GenericResourceRepository.java index 91f32089..bbac9731 100644 --- a/spring-cloud-config-server/src/main/java/org/springframework/cloud/config/server/resource/GenericResourceRepository.java +++ b/spring-cloud-config-server/src/main/java/org/springframework/cloud/config/server/resource/GenericResourceRepository.java @@ -51,7 +51,7 @@ public class GenericResourceRepository @Override public synchronized Resource findOne(String application, String profile, String label, String path) { - String[] locations = this.service.getLocations(application, "default", label).getLocations(); + String[] locations = this.service.getLocations(application, profile, label).getLocations(); try { for (int i = locations.length; i-- > 0;) { String location = locations[i]; diff --git a/spring-cloud-config-server/src/test/java/org/springframework/cloud/config/server/resource/GenericResourceRepositoryTests.java b/spring-cloud-config-server/src/test/java/org/springframework/cloud/config/server/resource/GenericResourceRepositoryTests.java index 2f2ff9f4..9a53c25c 100644 --- a/spring-cloud-config-server/src/test/java/org/springframework/cloud/config/server/resource/GenericResourceRepositoryTests.java +++ b/spring-cloud-config-server/src/test/java/org/springframework/cloud/config/server/resource/GenericResourceRepositoryTests.java @@ -24,8 +24,6 @@ import org.junit.Test; import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.cloud.config.server.environment.NativeEnvironmentRepository; import org.springframework.cloud.config.server.environment.NativeEnvironmentRepositoryTests; -import org.springframework.cloud.config.server.resource.GenericResourceRepository; -import org.springframework.cloud.config.server.resource.NoSuchResourceException; import org.springframework.context.ConfigurableApplicationContext; /** @@ -36,6 +34,7 @@ public class GenericResourceRepositoryTests { private GenericResourceRepository repository; private ConfigurableApplicationContext context; + private NativeEnvironmentRepository nativeRepository; @After public void close() { @@ -48,8 +47,9 @@ public class GenericResourceRepositoryTests { public void init() { this.context = new SpringApplicationBuilder( NativeEnvironmentRepositoryTests.class).web(false).run(); + this.nativeRepository = new NativeEnvironmentRepository(this.context.getEnvironment()); this.repository = new GenericResourceRepository( - new NativeEnvironmentRepository(this.context.getEnvironment())); + this.nativeRepository); this.repository.setResourceLoader(this.context); this.context.close(); } @@ -64,6 +64,12 @@ public class GenericResourceRepositoryTests { assertNotNull(this.repository.findOne("blah", "local", "master", "foo.txt")); } + @Test + public void locateProfiledResourceWithPlaceholder() { + this.nativeRepository.setSearchLocations("classpath:/test/{profile}"); + assertNotNull(this.repository.findOne("blah", "local", "master", "foo.txt")); + } + @Test(expected=NoSuchResourceException.class) public void locateMissingResource() { assertNotNull(this.repository.findOne("blah", "default", "master", "foo.txt")); diff --git a/spring-cloud-config-server/src/test/resources/test/local/foo.txt b/spring-cloud-config-server/src/test/resources/test/local/foo.txt new file mode 100644 index 00000000..c9f0304f --- /dev/null +++ b/spring-cloud-config-server/src/test/resources/test/local/foo.txt @@ -0,0 +1 @@ +foo=bar \ No newline at end of file