Add version to environment response
Users see it logged by the config client, and it appears in the Environment response from the config server. It's hard to add it to the /env endpoint without some extension points in Boot. Fixes gh-244, fixes gh-245
This commit is contained in:
@@ -17,6 +17,8 @@
|
||||
package org.springframework.cloud.config.server.environment;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
import static org.junit.Assert.assertNull;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
import static org.mockito.Matchers.any;
|
||||
import static org.mockito.Matchers.anyString;
|
||||
@@ -34,7 +36,6 @@ import org.eclipse.jgit.util.FileUtils;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.springframework.cloud.config.environment.Environment;
|
||||
import org.springframework.cloud.config.server.environment.JGitEnvironmentRepository;
|
||||
import org.springframework.cloud.config.server.test.ConfigServerTestUtils;
|
||||
import org.springframework.core.env.StandardEnvironment;
|
||||
|
||||
@@ -64,8 +65,9 @@ public class JGitEnvironmentRepositoryTests {
|
||||
this.repository.findOne("bar", "staging", "master");
|
||||
Environment environment = this.repository.findOne("bar", "staging", "master");
|
||||
assertEquals(2, environment.getPropertySources().size());
|
||||
assertEquals(this.repository.getUri() + "/bar.properties", environment
|
||||
.getPropertySources().get(0).getName());
|
||||
assertEquals(this.repository.getUri() + "/bar.properties",
|
||||
environment.getPropertySources().get(0).getName());
|
||||
assertVersion(environment);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -76,8 +78,15 @@ public class JGitEnvironmentRepositoryTests {
|
||||
this.repository.findOne("bar", "staging", "master");
|
||||
Environment environment = this.repository.findOne("bar", "staging", "master");
|
||||
assertEquals(2, environment.getPropertySources().size());
|
||||
assertEquals(this.repository.getUri() + "/sub/application.yml", environment
|
||||
.getPropertySources().get(0).getName());
|
||||
assertEquals(this.repository.getUri() + "/sub/application.yml",
|
||||
environment.getPropertySources().get(0).getName());
|
||||
assertVersion(environment);
|
||||
}
|
||||
|
||||
private void assertVersion(Environment environment) {
|
||||
String version = environment.getVersion();
|
||||
assertNotNull("version was null", version);
|
||||
assertTrue("version length was wrong", version.length() >= 40 && version.length() <= 64);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -88,8 +97,9 @@ public class JGitEnvironmentRepositoryTests {
|
||||
this.repository.findOne("bar", "staging", "master");
|
||||
Environment environment = this.repository.findOne("bar", "staging", "master");
|
||||
assertEquals(2, environment.getPropertySources().size());
|
||||
assertEquals(this.repository.getUri() + "/sub/application.yml", environment
|
||||
.getPropertySources().get(0).getName());
|
||||
assertEquals(this.repository.getUri() + "/sub/application.yml",
|
||||
environment.getPropertySources().get(0).getName());
|
||||
assertVersion(environment);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -97,8 +107,9 @@ public class JGitEnvironmentRepositoryTests {
|
||||
this.repository.setBasedir(this.basedir);
|
||||
Environment environment = this.repository.findOne("bar", "staging", "raw");
|
||||
assertEquals(2, environment.getPropertySources().size());
|
||||
assertEquals(this.repository.getUri() + "/bar.properties", environment
|
||||
.getPropertySources().get(0).getName());
|
||||
assertEquals(this.repository.getUri() + "/bar.properties",
|
||||
environment.getPropertySources().get(0).getName());
|
||||
assertVersion(environment);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -108,6 +119,8 @@ public class JGitEnvironmentRepositoryTests {
|
||||
assertEquals(2, environment.getPropertySources().size());
|
||||
assertEquals(this.repository.getUri() + "/bar.properties", environment
|
||||
.getPropertySources().get(0).getName());
|
||||
//TODO: why is the version null in tag?
|
||||
assertNull("version was not null", environment.getVersion());
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -116,8 +129,9 @@ public class JGitEnvironmentRepositoryTests {
|
||||
this.repository.findOne("bar", "staging", "master");
|
||||
Environment environment = this.repository.findOne("bar", "staging", "master");
|
||||
assertEquals(2, environment.getPropertySources().size());
|
||||
assertEquals(this.repository.getUri() + "/bar.properties", environment
|
||||
.getPropertySources().get(0).getName());
|
||||
assertEquals(this.repository.getUri() + "/bar.properties",
|
||||
environment.getPropertySources().get(0).getName());
|
||||
assertVersion(environment);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -128,8 +142,9 @@ public class JGitEnvironmentRepositoryTests {
|
||||
this.repository.findOne("bar", "staging", "master");
|
||||
Environment environment = this.repository.findOne("bar", "staging", "master");
|
||||
assertEquals(2, environment.getPropertySources().size());
|
||||
assertEquals(this.repository.getUri() + "/bar.properties", environment
|
||||
.getPropertySources().get(0).getName());
|
||||
assertEquals(this.repository.getUri() + "/bar.properties",
|
||||
environment.getPropertySources().get(0).getName());
|
||||
assertVersion(environment);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
@@ -16,6 +16,9 @@
|
||||
package org.springframework.cloud.config.server.environment;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
import static org.junit.Assert.assertNull;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.HashMap;
|
||||
@@ -24,14 +27,15 @@ import java.util.Map;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.springframework.cloud.config.environment.Environment;
|
||||
import org.springframework.cloud.config.server.environment.MultipleJGitEnvironmentRepository;
|
||||
import org.springframework.cloud.config.server.environment.MultipleJGitEnvironmentRepository.PatternMatchingJGitEnvironmentRepository;
|
||||
import org.springframework.cloud.config.server.test.ConfigServerTestUtils;
|
||||
import org.springframework.cloud.config.server.environment.MultipleJGitEnvironmentRepository.PatternMatchingJGitEnvironmentRepository;
|
||||
|
||||
import org.springframework.core.env.StandardEnvironment;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Andy Chan (iceycake)
|
||||
* @author Dave Syer
|
||||
* @author Spencer Gibb
|
||||
*
|
||||
*/
|
||||
public class MultipleJGitEnvironmentRepositoryTests {
|
||||
@@ -42,20 +46,18 @@ public class MultipleJGitEnvironmentRepositoryTests {
|
||||
@Before
|
||||
public void init() throws Exception {
|
||||
String defaultUri = ConfigServerTestUtils.prepareLocalRepo("config-repo");
|
||||
|
||||
repository.setUri(defaultUri);
|
||||
repository.setRepos(createRepositories());
|
||||
}
|
||||
|
||||
|
||||
private Map<String, PatternMatchingJGitEnvironmentRepository> createRepositories() throws Exception {
|
||||
String test1Uri = ConfigServerTestUtils.prepareLocalRepo("test1-config-repo");
|
||||
|
||||
Map<String, PatternMatchingJGitEnvironmentRepository> repos = new HashMap<String, PatternMatchingJGitEnvironmentRepository>();
|
||||
Map<String, PatternMatchingJGitEnvironmentRepository> repos = new HashMap<>();
|
||||
repos.put("test1", createRepository("test1", "*test1*", test1Uri));
|
||||
|
||||
return repos;
|
||||
}
|
||||
|
||||
|
||||
private PatternMatchingJGitEnvironmentRepository createRepository(String name, String pattern, String uri) {
|
||||
PatternMatchingJGitEnvironmentRepository repo = new PatternMatchingJGitEnvironmentRepository();
|
||||
repo.setEnvironment(environment);
|
||||
@@ -69,9 +71,16 @@ public class MultipleJGitEnvironmentRepositoryTests {
|
||||
public void defaultRepo() {
|
||||
Environment environment = repository.findOne("bar", "staging", "master");
|
||||
assertEquals(2, environment.getPropertySources().size());
|
||||
assertEquals(repository.getUri() + "/bar.properties", environment
|
||||
.getPropertySources().get(0).getName());
|
||||
}
|
||||
assertEquals(repository.getUri() + "/bar.properties",
|
||||
environment.getPropertySources().get(0).getName());
|
||||
assertVersion(environment);
|
||||
}
|
||||
|
||||
private void assertVersion(Environment environment) {
|
||||
String version = environment.getVersion();
|
||||
assertNotNull("version was null", version);
|
||||
assertTrue("version length was wrong", version.length() >= 40 && version.length() <= 64);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void defaultRepoNested() throws IOException {
|
||||
@@ -81,16 +90,18 @@ public class MultipleJGitEnvironmentRepositoryTests {
|
||||
repository.findOne("bar", "staging", "master");
|
||||
Environment environment = repository.findOne("bar", "staging", "master");
|
||||
assertEquals(2, environment.getPropertySources().size());
|
||||
assertEquals(repository.getUri() + "/sub/application.yml", environment
|
||||
.getPropertySources().get(0).getName());
|
||||
assertEquals(repository.getUri() + "/sub/application.yml",
|
||||
environment.getPropertySources().get(0).getName());
|
||||
assertVersion(environment);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void defaultRepoBranch() {
|
||||
Environment environment = repository.findOne("bar", "staging", "raw");
|
||||
assertEquals(2, environment.getPropertySources().size());
|
||||
assertEquals(repository.getUri() + "/bar.properties", environment
|
||||
.getPropertySources().get(0).getName());
|
||||
assertEquals(repository.getUri() + "/bar.properties",
|
||||
environment.getPropertySources().get(0).getName());
|
||||
assertVersion(environment);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -99,6 +110,7 @@ public class MultipleJGitEnvironmentRepositoryTests {
|
||||
assertEquals(2, environment.getPropertySources().size());
|
||||
assertEquals(repository.getUri() + "/bar.properties", environment
|
||||
.getPropertySources().get(0).getName());
|
||||
assertNull("version was not null", environment.getVersion());
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -106,23 +118,25 @@ public class MultipleJGitEnvironmentRepositoryTests {
|
||||
repository.findOne("bar", "staging", "master");
|
||||
Environment environment = repository.findOne("bar", "staging", "master");
|
||||
assertEquals(2, environment.getPropertySources().size());
|
||||
assertEquals(repository.getUri() + "/bar.properties", environment
|
||||
.getPropertySources().get(0).getName());
|
||||
assertEquals(repository.getUri() + "/bar.properties",
|
||||
environment.getPropertySources().get(0).getName());
|
||||
assertVersion(environment);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void mappingRepo() {
|
||||
Environment environment = repository.findOne("test1-svc", "staging", "master");
|
||||
assertEquals(2, environment.getPropertySources().size());
|
||||
assertEquals(getUri("*test1*") + "/test1-svc.properties", environment
|
||||
.getPropertySources().get(0).getName());
|
||||
}
|
||||
assertEquals(getUri("*test1*") + "/test1-svc.properties",
|
||||
environment.getPropertySources().get(0).getName());
|
||||
assertVersion(environment);
|
||||
}
|
||||
|
||||
private String getUri(String pattern) {
|
||||
String uri = null;
|
||||
|
||||
|
||||
Map<String, PatternMatchingJGitEnvironmentRepository> repoMappings = repository.getRepos();
|
||||
|
||||
|
||||
for (PatternMatchingJGitEnvironmentRepository repo : repoMappings.values()) {
|
||||
String[] mappingPattern = repo.getPattern();
|
||||
if (mappingPattern != null && mappingPattern.length!=0) {
|
||||
@@ -130,7 +144,7 @@ public class MultipleJGitEnvironmentRepositoryTests {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return uri;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,11 +21,11 @@ import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.springframework.boot.builder.SpringApplicationBuilder;
|
||||
import org.springframework.cloud.config.environment.Environment;
|
||||
import org.springframework.cloud.config.server.environment.NativeEnvironmentRepository;
|
||||
import org.springframework.context.ConfigurableApplicationContext;
|
||||
|
||||
/**
|
||||
* @author Dave Syer
|
||||
* @author Spencer Gibb
|
||||
*
|
||||
*/
|
||||
public class NativeEnvironmentRepositoryTests {
|
||||
@@ -37,6 +37,7 @@ public class NativeEnvironmentRepositoryTests {
|
||||
ConfigurableApplicationContext context = new SpringApplicationBuilder(
|
||||
NativeEnvironmentRepositoryTests.class).web(false).run();
|
||||
this.repository = new NativeEnvironmentRepository(context.getEnvironment());
|
||||
this.repository.setVersion("myversion");
|
||||
context.close();
|
||||
}
|
||||
|
||||
@@ -44,6 +45,7 @@ public class NativeEnvironmentRepositoryTests {
|
||||
public void vanilla() {
|
||||
Environment environment = this.repository.findOne("foo", "development", "master");
|
||||
assertEquals(2, environment.getPropertySources().size());
|
||||
assertEquals("version was wrong", "myversion", environment.getVersion());
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -51,6 +53,7 @@ public class NativeEnvironmentRepositoryTests {
|
||||
System.setProperty("spring.profiles.active", "cloud");
|
||||
Environment environment = this.repository.findOne("foo", "main", "master");
|
||||
assertEquals(1, environment.getPropertySources().size());
|
||||
assertEquals("version was wrong", "myversion", environment.getVersion());
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -58,6 +61,7 @@ public class NativeEnvironmentRepositoryTests {
|
||||
this.repository.setSearchLocations("classpath:/test");
|
||||
Environment environment = this.repository.findOne("foo", "development", "master");
|
||||
assertEquals(2, environment.getPropertySources().size());
|
||||
assertEquals("version was wrong", "myversion", environment.getVersion());
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -65,6 +69,7 @@ public class NativeEnvironmentRepositoryTests {
|
||||
this.repository.setSearchLocations("file:./src/test/resources/test");
|
||||
Environment environment = this.repository.findOne("foo", "development", "master");
|
||||
assertEquals(2, environment.getPropertySources().size());
|
||||
assertEquals("version was wrong", "myversion", environment.getVersion());
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -76,6 +81,7 @@ public class NativeEnvironmentRepositoryTests {
|
||||
// foo-development.properties
|
||||
assertEquals("dev_bar",
|
||||
environment.getPropertySources().get(1).getSource().get("foo"));
|
||||
assertEquals("version was wrong", "myversion", environment.getVersion());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user