From 29cbf08314dd7db21263343241234ef0d1a51bcf Mon Sep 17 00:00:00 2001 From: John Thompson Date: Sat, 7 May 2016 12:49:09 -0400 Subject: [PATCH 1/5] Add Property Source Example --- .../external/props/PropertySourceTest.java | 30 ++++++++++++ .../test/jms/FakeJmsBroker.java | 44 +++++++++++++++++ ...ExternalPropsPropertySourceTestConfig.java | 48 +++++++++++++++++++ src/test/resources/testing.properties | 4 ++ 4 files changed, 126 insertions(+) create mode 100644 src/test/java/guru/springframework/test/external/props/PropertySourceTest.java create mode 100644 src/test/java/guru/springframework/test/jms/FakeJmsBroker.java create mode 100644 src/test/java/guru/test/config/external/props/ExternalPropsPropertySourceTestConfig.java create mode 100644 src/test/resources/testing.properties diff --git a/src/test/java/guru/springframework/test/external/props/PropertySourceTest.java b/src/test/java/guru/springframework/test/external/props/PropertySourceTest.java new file mode 100644 index 00000000..2787613a --- /dev/null +++ b/src/test/java/guru/springframework/test/external/props/PropertySourceTest.java @@ -0,0 +1,30 @@ +package guru.springframework.test.external.props; + +import guru.springframework.test.jms.FakeJmsBroker; +import guru.test.config.external.props.ExternalPropsPropertySourceTestConfig; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; + +import static org.junit.Assert.assertEquals; + +/** + * Created by jt on 5/7/16. + */ +@RunWith(SpringJUnit4ClassRunner.class) +@ContextConfiguration(classes = ExternalPropsPropertySourceTestConfig.class) +public class PropertySourceTest { + + @Autowired + FakeJmsBroker fakeJmsBroker; + + @Test + public void testPropsSet() throws Exception { + assertEquals("10.10.10.123", fakeJmsBroker.getUrl()); + assertEquals(3330, fakeJmsBroker.getPort().intValue()); + assertEquals("Ron", fakeJmsBroker.getUser()); + assertEquals("Burgundy", fakeJmsBroker.getPassword()); + } +} diff --git a/src/test/java/guru/springframework/test/jms/FakeJmsBroker.java b/src/test/java/guru/springframework/test/jms/FakeJmsBroker.java new file mode 100644 index 00000000..7631d87f --- /dev/null +++ b/src/test/java/guru/springframework/test/jms/FakeJmsBroker.java @@ -0,0 +1,44 @@ +package guru.springframework.test.jms; + +/** + * Created by jt on 5/7/16. + */ +public class FakeJmsBroker { + + private String url; + private Integer port; + private String user; + private String password; + + public String getUrl() { + return url; + } + + public void setUrl(String url) { + this.url = url; + } + + public Integer getPort() { + return port; + } + + public void setPort(Integer port) { + this.port = port; + } + + public String getUser() { + return user; + } + + public void setUser(String user) { + this.user = user; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } +} diff --git a/src/test/java/guru/test/config/external/props/ExternalPropsPropertySourceTestConfig.java b/src/test/java/guru/test/config/external/props/ExternalPropsPropertySourceTestConfig.java new file mode 100644 index 00000000..023108f0 --- /dev/null +++ b/src/test/java/guru/test/config/external/props/ExternalPropsPropertySourceTestConfig.java @@ -0,0 +1,48 @@ +package guru.test.config.external.props; + +import guru.springframework.test.jms.FakeJmsBroker; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.PropertySource; +import org.springframework.context.support.PropertySourcesPlaceholderConfigurer; + +/** + * + * since Spring 3.1 + * Created by jt on 5/7/16. + */ +@Configuration +@PropertySource("classpath:testing.properties") +public class ExternalPropsPropertySourceTestConfig { + + @Value("${guru.jms.server}") + String jmsServer; + + @Value("${guru.jms.port}") + String jmsPort; + + @Value("${guru.jms.user}") + String jmsUser; + + @Value("${guru.jms.password}") + String jmsPassword; + + + @Bean + public static PropertySourcesPlaceholderConfigurer properties() { + PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer + = new PropertySourcesPlaceholderConfigurer(); + return propertySourcesPlaceholderConfigurer; + } + + @Bean + public FakeJmsBroker fakeJmsBroker(){ + FakeJmsBroker fakeJmsBroker = new FakeJmsBroker(); + fakeJmsBroker.setUrl(jmsServer); + // fakeJmsBroker.setPort(jmsPort); + fakeJmsBroker.setUser(jmsUser); + fakeJmsBroker.setPassword(jmsPassword); + return fakeJmsBroker; + } +} diff --git a/src/test/resources/testing.properties b/src/test/resources/testing.properties new file mode 100644 index 00000000..0975f028 --- /dev/null +++ b/src/test/resources/testing.properties @@ -0,0 +1,4 @@ +guru.jms.server=10.10.10.123 +guru.jms.port=3330 +guru.jms.user=Ron +guru.jms.password=Burgundy \ No newline at end of file From fed3b2a92b7c4c4fcba5131aa212b1325c558549 Mon Sep 17 00:00:00 2001 From: John Thompson Date: Sat, 7 May 2016 12:49:47 -0400 Subject: [PATCH 2/5] fixed type --- .../external/props/ExternalPropsPropertySourceTestConfig.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/test/java/guru/test/config/external/props/ExternalPropsPropertySourceTestConfig.java b/src/test/java/guru/test/config/external/props/ExternalPropsPropertySourceTestConfig.java index 023108f0..bd548d48 100644 --- a/src/test/java/guru/test/config/external/props/ExternalPropsPropertySourceTestConfig.java +++ b/src/test/java/guru/test/config/external/props/ExternalPropsPropertySourceTestConfig.java @@ -20,7 +20,7 @@ public class ExternalPropsPropertySourceTestConfig { String jmsServer; @Value("${guru.jms.port}") - String jmsPort; + Integer jmsPort; @Value("${guru.jms.user}") String jmsUser; @@ -40,7 +40,7 @@ public static PropertySourcesPlaceholderConfigurer properties() { public FakeJmsBroker fakeJmsBroker(){ FakeJmsBroker fakeJmsBroker = new FakeJmsBroker(); fakeJmsBroker.setUrl(jmsServer); - // fakeJmsBroker.setPort(jmsPort); + fakeJmsBroker.setPort(jmsPort); fakeJmsBroker.setUser(jmsUser); fakeJmsBroker.setPassword(jmsPassword); return fakeJmsBroker; From 5b8797a9da3fcf23b1c0e5b37da4c1ba4a77733c Mon Sep 17 00:00:00 2001 From: John Thompson Date: Sat, 7 May 2016 13:29:22 -0400 Subject: [PATCH 3/5] added env example --- .../external/props/PropertySourceEnvTest.java | 31 +++++++++++++++++++ .../props/ExternalPropsEnvironment.java | 29 +++++++++++++++++ 2 files changed, 60 insertions(+) create mode 100644 src/test/java/guru/springframework/test/external/props/PropertySourceEnvTest.java create mode 100644 src/test/java/guru/test/config/external/props/ExternalPropsEnvironment.java diff --git a/src/test/java/guru/springframework/test/external/props/PropertySourceEnvTest.java b/src/test/java/guru/springframework/test/external/props/PropertySourceEnvTest.java new file mode 100644 index 00000000..0bd867f9 --- /dev/null +++ b/src/test/java/guru/springframework/test/external/props/PropertySourceEnvTest.java @@ -0,0 +1,31 @@ +package guru.springframework.test.external.props; + +import guru.springframework.test.jms.FakeJmsBroker; +import guru.test.config.external.props.ExternalPropsEnvironment; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; + +import static org.junit.Assert.assertEquals; + +/** + * Created by jt on 5/7/16. + */ +@RunWith(SpringJUnit4ClassRunner.class) +@ContextConfiguration(classes = ExternalPropsEnvironment.class) +public class PropertySourceEnvTest { + + @Autowired + FakeJmsBroker fakeJmsBroker; + + @Test + public void testPropsSet() throws Exception { + assertEquals("10.10.10.123", fakeJmsBroker.getUrl()); + assertEquals(3330, fakeJmsBroker.getPort().intValue()); + assertEquals("Ron", fakeJmsBroker.getUser()); + assertEquals("Burgundy", fakeJmsBroker.getPassword()); + } + +} diff --git a/src/test/java/guru/test/config/external/props/ExternalPropsEnvironment.java b/src/test/java/guru/test/config/external/props/ExternalPropsEnvironment.java new file mode 100644 index 00000000..9efe643e --- /dev/null +++ b/src/test/java/guru/test/config/external/props/ExternalPropsEnvironment.java @@ -0,0 +1,29 @@ +package guru.test.config.external.props; + +import guru.springframework.test.jms.FakeJmsBroker; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.PropertySource; +import org.springframework.core.env.Environment; + +/** + * Created by jt on 5/7/16. + */ +@Configuration +@PropertySource("classpath:testing.properties") +public class ExternalPropsEnvironment { + + @Autowired + Environment env; //also from Spring 3.1 + + @Bean + public FakeJmsBroker fakeJmsBrokerEnv(){ + FakeJmsBroker fakeJmsBroker = new FakeJmsBroker(); + fakeJmsBroker.setUrl(env.getProperty("guru.jms.server")); + fakeJmsBroker.setPort(env.getRequiredProperty("guru.jms.port", Integer.class)); + fakeJmsBroker.setUser(env.getProperty("guru.jms.user")); + fakeJmsBroker.setPassword(env.getProperty("guru.jms.password")); + return fakeJmsBroker; + } +} From d9cbbeb23eee36f54b7c74c21be5f5cfd1565bd7 Mon Sep 17 00:00:00 2001 From: John Thompson Date: Sat, 7 May 2016 15:01:13 -0400 Subject: [PATCH 4/5] added multi file example --- .../props/PropertySourceMultiFileS4Test.java | 30 +++++++++++++++++ .../props/PropertySourceMultiFileTest.java | 30 +++++++++++++++++ .../props/ExternalPropsMultiFile.java | 29 ++++++++++++++++ .../props/ExternalPropsMultiFileS4.java | 33 +++++++++++++++++++ .../resources/encrypted-testing.properties | 1 + 5 files changed, 123 insertions(+) create mode 100644 src/test/java/guru/springframework/test/external/props/PropertySourceMultiFileS4Test.java create mode 100644 src/test/java/guru/springframework/test/external/props/PropertySourceMultiFileTest.java create mode 100644 src/test/java/guru/test/config/external/props/ExternalPropsMultiFile.java create mode 100644 src/test/java/guru/test/config/external/props/ExternalPropsMultiFileS4.java create mode 100644 src/test/resources/encrypted-testing.properties diff --git a/src/test/java/guru/springframework/test/external/props/PropertySourceMultiFileS4Test.java b/src/test/java/guru/springframework/test/external/props/PropertySourceMultiFileS4Test.java new file mode 100644 index 00000000..50fb2d74 --- /dev/null +++ b/src/test/java/guru/springframework/test/external/props/PropertySourceMultiFileS4Test.java @@ -0,0 +1,30 @@ +package guru.springframework.test.external.props; + +import guru.springframework.test.jms.FakeJmsBroker; +import guru.test.config.external.props.ExternalPropsMultiFileS4; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; + +import static org.junit.Assert.assertEquals; + +/** + * Created by jt on 5/7/16. + */ +@RunWith(SpringJUnit4ClassRunner.class) +@ContextConfiguration(classes = ExternalPropsMultiFileS4.class) +public class PropertySourceMultiFileS4Test { + + @Autowired + FakeJmsBroker fakeJmsBroker; + + @Test + public void testPropsSet() throws Exception { + assertEquals("10.10.10.123", fakeJmsBroker.getUrl()); + assertEquals(3330, fakeJmsBroker.getPort().intValue()); + assertEquals("Ron", fakeJmsBroker.getUser()); + assertEquals("&%$)(*&#^!@!@#$", fakeJmsBroker.getPassword()); + } +} diff --git a/src/test/java/guru/springframework/test/external/props/PropertySourceMultiFileTest.java b/src/test/java/guru/springframework/test/external/props/PropertySourceMultiFileTest.java new file mode 100644 index 00000000..df0b64c9 --- /dev/null +++ b/src/test/java/guru/springframework/test/external/props/PropertySourceMultiFileTest.java @@ -0,0 +1,30 @@ +package guru.springframework.test.external.props; + +import guru.springframework.test.jms.FakeJmsBroker; +import guru.test.config.external.props.ExternalPropsMultiFile; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; + +import static org.junit.Assert.assertEquals; + +/** + * Created by jt on 5/7/16. + */ +@RunWith(SpringJUnit4ClassRunner.class) +@ContextConfiguration(classes = ExternalPropsMultiFile.class) +public class PropertySourceMultiFileTest { + + @Autowired + FakeJmsBroker fakeJmsBroker; + + @Test + public void testPropsSet() throws Exception { + assertEquals("10.10.10.123", fakeJmsBroker.getUrl()); + assertEquals(3330, fakeJmsBroker.getPort().intValue()); + assertEquals("Ron", fakeJmsBroker.getUser()); + assertEquals("&%$)(*&#^!@!@#$", fakeJmsBroker.getPassword()); + } +} diff --git a/src/test/java/guru/test/config/external/props/ExternalPropsMultiFile.java b/src/test/java/guru/test/config/external/props/ExternalPropsMultiFile.java new file mode 100644 index 00000000..89dce1aa --- /dev/null +++ b/src/test/java/guru/test/config/external/props/ExternalPropsMultiFile.java @@ -0,0 +1,29 @@ +package guru.test.config.external.props; + +import guru.springframework.test.jms.FakeJmsBroker; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.PropertySource; +import org.springframework.core.env.Environment; + +/** + * Created by jt on 5/7/16. + */ +@Configuration +@PropertySource({"classpath:testing.properties", "classpath:encrypted-testing.properties"}) +public class ExternalPropsMultiFile { + + @Autowired + Environment env; + + @Bean + public FakeJmsBroker fakeJmsBrokerMulti(){ + FakeJmsBroker fakeJmsBroker = new FakeJmsBroker(); + fakeJmsBroker.setUrl(env.getProperty("guru.jms.server")); + fakeJmsBroker.setPort(env.getRequiredProperty("guru.jms.port", Integer.class)); + fakeJmsBroker.setUser(env.getProperty("guru.jms.user")); + fakeJmsBroker.setPassword(env.getProperty("guru.jms.encrypted.password")); + return fakeJmsBroker; + } +} diff --git a/src/test/java/guru/test/config/external/props/ExternalPropsMultiFileS4.java b/src/test/java/guru/test/config/external/props/ExternalPropsMultiFileS4.java new file mode 100644 index 00000000..81024ff3 --- /dev/null +++ b/src/test/java/guru/test/config/external/props/ExternalPropsMultiFileS4.java @@ -0,0 +1,33 @@ +package guru.test.config.external.props; + +import guru.springframework.test.jms.FakeJmsBroker; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.PropertySource; +import org.springframework.context.annotation.PropertySources; +import org.springframework.core.env.Environment; + +/** + * Created by jt on 5/7/16. + */ +@Configuration +@PropertySources({ + @PropertySource("classpath:testing.properties"), + @PropertySource("classpath:encrypted-testing.properties") +}) +public class ExternalPropsMultiFileS4 { + + @Autowired + Environment env; + + @Bean + public FakeJmsBroker fakeJmsBrokerMultiS4(){ + FakeJmsBroker fakeJmsBroker = new FakeJmsBroker(); + fakeJmsBroker.setUrl(env.getProperty("guru.jms.server")); + fakeJmsBroker.setPort(env.getRequiredProperty("guru.jms.port", Integer.class)); + fakeJmsBroker.setUser(env.getProperty("guru.jms.user")); + fakeJmsBroker.setPassword(env.getProperty("guru.jms.encrypted.password")); + return fakeJmsBroker; + } +} diff --git a/src/test/resources/encrypted-testing.properties b/src/test/resources/encrypted-testing.properties new file mode 100644 index 00000000..bbf3ff72 --- /dev/null +++ b/src/test/resources/encrypted-testing.properties @@ -0,0 +1 @@ +guru.jms.encrypted.password=&%$)(*&#^!@!@#$ \ No newline at end of file From e0c1fafb1591a8b60d68fdf822f3d965c07e6c56 Mon Sep 17 00:00:00 2001 From: John Thompson Date: Mon, 16 May 2016 12:33:31 -0400 Subject: [PATCH 5/5] Sprring Boot Properties --- src/main/resources/application.properties | 6 +++- .../test/config/SpringBootJavaConfig.java | 34 +++++++++++++++++++ .../props/SpringBootPropertiesTest.java | 34 +++++++++++++++++++ 3 files changed, 73 insertions(+), 1 deletion(-) create mode 100644 src/test/java/guru/springframework/test/config/SpringBootJavaConfig.java create mode 100644 src/test/java/guru/springframework/test/external/props/SpringBootPropertiesTest.java diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index e6f67126..b9a151db 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -1,2 +1,6 @@ spring.activemq.in-memory=true -spring.activemq.pooled=false \ No newline at end of file +spring.activemq.pooled=false +guru.jms.server=10.10.10.123 +guru.jms.port=3330 +guru.jms.user=Ron +guru.jms.password=Burgundy \ No newline at end of file diff --git a/src/test/java/guru/springframework/test/config/SpringBootJavaConfig.java b/src/test/java/guru/springframework/test/config/SpringBootJavaConfig.java new file mode 100644 index 00000000..8765e18f --- /dev/null +++ b/src/test/java/guru/springframework/test/config/SpringBootJavaConfig.java @@ -0,0 +1,34 @@ +package guru.springframework.test.config; + +import guru.springframework.test.jms.FakeJmsBroker; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +/** + * Created by jt on 5/7/16. + */ +@Configuration +public class SpringBootJavaConfig { + @Value("${guru.jms.server}") + String jmsServer; + + @Value("${guru.jms.port}") + Integer jmsPort; + + @Value("${guru.jms.user}") + String jmsUser; + + @Value("${guru.jms.password}") + String jmsPassword; + + @Bean + public FakeJmsBroker fakeJmsBroker(){ + FakeJmsBroker fakeJmsBroker = new FakeJmsBroker(); + fakeJmsBroker.setUrl(jmsServer); + fakeJmsBroker.setPort(jmsPort); + fakeJmsBroker.setUser(jmsUser); + fakeJmsBroker.setPassword(jmsPassword); + return fakeJmsBroker; + } +} diff --git a/src/test/java/guru/springframework/test/external/props/SpringBootPropertiesTest.java b/src/test/java/guru/springframework/test/external/props/SpringBootPropertiesTest.java new file mode 100644 index 00000000..0b1ead73 --- /dev/null +++ b/src/test/java/guru/springframework/test/external/props/SpringBootPropertiesTest.java @@ -0,0 +1,34 @@ +package guru.springframework.test.external.props; + +import guru.springframework.SpringCoreDevOpsApplication; +import guru.springframework.test.jms.FakeJmsBroker; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.SpringApplicationConfiguration; +import org.springframework.boot.test.WebIntegrationTest; +import org.springframework.test.context.TestPropertySource; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; + +import static org.junit.Assert.assertEquals; + +/** + * Created by jt on 5/7/16. + */ +@RunWith(SpringJUnit4ClassRunner.class) +@SpringApplicationConfiguration(SpringCoreDevOpsApplication.class) +@WebIntegrationTest +@TestPropertySource("/application.properties") +public class SpringBootPropertiesTest { + @Autowired + FakeJmsBroker fakeJmsBroker; + + @Test + public void testPropsSet() throws Exception { + assertEquals("10.10.10.123", fakeJmsBroker.getUrl()); + assertEquals(3330, fakeJmsBroker.getPort().intValue()); + assertEquals("Ron", fakeJmsBroker.getUser()); + assertEquals("Burgundy", fakeJmsBroker.getPassword()); + } + +}