diff --git a/pom.xml b/pom.xml index 193876b0..ef6166de 100644 --- a/pom.xml +++ b/pom.xml @@ -52,6 +52,8 @@ h2 runtime + + mysql mysql-connector-java diff --git a/src/main/java/guru/springframework/bootstrap/profilesysout/DefaultProfileSysOut.java b/src/main/java/guru/springframework/bootstrap/profilesysout/DefaultProfileSysOut.java new file mode 100644 index 00000000..171d59b5 --- /dev/null +++ b/src/main/java/guru/springframework/bootstrap/profilesysout/DefaultProfileSysOut.java @@ -0,0 +1,24 @@ +package guru.springframework.bootstrap.profilesysout; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Profile; +import org.springframework.stereotype.Component; + +/** + * Created by jt on 5/21/16. + */ +@Component +@Profile("default") +public class DefaultProfileSysOut { + + @Autowired + public DefaultProfileSysOut(@Value("${guru.springframework.profile.message}") String msg) { + System.out.println("##################################"); + System.out.println("##################################"); + System.out.println("## DEFAULT ##"); + System.out.println(msg); + System.out.println("##################################"); + System.out.println("##################################"); + } +} diff --git a/src/main/java/guru/springframework/bootstrap/profilesysout/DevProfileSysOut.java b/src/main/java/guru/springframework/bootstrap/profilesysout/DevProfileSysOut.java new file mode 100644 index 00000000..652f4ea0 --- /dev/null +++ b/src/main/java/guru/springframework/bootstrap/profilesysout/DevProfileSysOut.java @@ -0,0 +1,24 @@ +package guru.springframework.bootstrap.profilesysout; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Profile; +import org.springframework.stereotype.Component; + +/** + * Created by jt on 5/21/16. + */ +@Component +@Profile("dev") +public class DevProfileSysOut { + + @Autowired + public DevProfileSysOut(@Value("${guru.springframework.profile.message}") String msg) { + System.out.println("##################################"); + System.out.println("##################################"); + System.out.println("## DEV ##"); + System.out.println(msg); + System.out.println("##################################"); + System.out.println("##################################"); + } +} diff --git a/src/main/java/guru/springframework/bootstrap/profilesysout/NonProfileBean.java b/src/main/java/guru/springframework/bootstrap/profilesysout/NonProfileBean.java new file mode 100644 index 00000000..2dccdb04 --- /dev/null +++ b/src/main/java/guru/springframework/bootstrap/profilesysout/NonProfileBean.java @@ -0,0 +1,18 @@ +package guru.springframework.bootstrap.profilesysout; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Component; + +/** + * Created by jt on 5/21/16. + */ +@Component +public class NonProfileBean { + + @Autowired + public NonProfileBean(@Value("${guru.springframework.profile.message}") String msg) { + System.out.println("**********" + msg + "************"); + + } +} diff --git a/src/main/java/guru/springframework/bootstrap/profilesysout/ProdProfileSysOut.java b/src/main/java/guru/springframework/bootstrap/profilesysout/ProdProfileSysOut.java new file mode 100644 index 00000000..9f7980c8 --- /dev/null +++ b/src/main/java/guru/springframework/bootstrap/profilesysout/ProdProfileSysOut.java @@ -0,0 +1,24 @@ +package guru.springframework.bootstrap.profilesysout; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Profile; +import org.springframework.stereotype.Component; + +/** + * Created by jt on 5/21/16. + */ +@Component +@Profile("prod") +public class ProdProfileSysOut { + + @Autowired + public ProdProfileSysOut(@Value("${guru.springframework.profile.message}") String msg) { + System.out.println("##################################"); + System.out.println("##################################"); + System.out.println("## PROD ##"); + System.out.println(msg); + System.out.println("##################################"); + System.out.println("##################################"); + } +} diff --git a/src/main/java/guru/springframework/bootstrap/profilesysout/QAProfileSysOut.java b/src/main/java/guru/springframework/bootstrap/profilesysout/QAProfileSysOut.java new file mode 100644 index 00000000..5e05122a --- /dev/null +++ b/src/main/java/guru/springframework/bootstrap/profilesysout/QAProfileSysOut.java @@ -0,0 +1,24 @@ +package guru.springframework.bootstrap.profilesysout; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Profile; +import org.springframework.stereotype.Component; + +/** + * Created by jt on 5/21/16. + */ +@Component +@Profile("qa") +public class QAProfileSysOut { + + @Autowired + public QAProfileSysOut(@Value("${guru.springframework.profile.message}") String msg) { + System.out.println("##################################"); + System.out.println("##################################"); + System.out.println("## QA ##"); + System.out.println(msg); + System.out.println("##################################"); + System.out.println("##################################"); + } +} diff --git a/src/main/resources/application-default.properties b/src/main/resources/application-default.properties new file mode 100644 index 00000000..2d9b3732 --- /dev/null +++ b/src/main/resources/application-default.properties @@ -0,0 +1 @@ +guru.springframework.profile.message=This is a default profile \ No newline at end of file diff --git a/src/main/resources/application-dev.properties b/src/main/resources/application-dev.properties new file mode 100644 index 00000000..e69de29b diff --git a/src/main/resources/application-dev.yaml b/src/main/resources/application-dev.yaml new file mode 100644 index 00000000..d90fe99d --- /dev/null +++ b/src/main/resources/application-dev.yaml @@ -0,0 +1,4 @@ +guru: + springframework: + profile: + message: This is my DEV profile \ No newline at end of file diff --git a/src/main/resources/application-prod.properties b/src/main/resources/application-prod.properties new file mode 100644 index 00000000..329b2205 --- /dev/null +++ b/src/main/resources/application-prod.properties @@ -0,0 +1 @@ +guru.springframework.profile.message=This is my production profile \ No newline at end of file diff --git a/src/main/resources/application-qa.properties b/src/main/resources/application-qa.properties new file mode 100644 index 00000000..b31c8a21 --- /dev/null +++ b/src/main/resources/application-qa.properties @@ -0,0 +1,7 @@ +guru.springframework.profile.message=This is my QA Profile + +spring.datasource.url=jdbc:mysql://localhost:3306/springguru +spring.datasource.username=root +spring.datasource.password= + +spring.jpa.hibernate.ddl-auto=update \ No newline at end of file diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index e6f67126..e69b3533 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -1,2 +1,8 @@ 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 + +spring.profiles.active=dev diff --git a/src/test/java/guru/springframework/test/config/DataSourceConfig.java b/src/test/java/guru/springframework/test/config/DataSourceConfig.java new file mode 100644 index 00000000..f36104f7 --- /dev/null +++ b/src/test/java/guru/springframework/test/config/DataSourceConfig.java @@ -0,0 +1,12 @@ +package guru.springframework.test.config; + +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; + +/** + * Created by jt on 5/21/16. + */ +@Configuration +@ComponentScan("guru.springframework.test.ds") +public class DataSourceConfig { +} 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/ds/DevDataSource.java b/src/test/java/guru/springframework/test/ds/DevDataSource.java new file mode 100644 index 00000000..a30f00d1 --- /dev/null +++ b/src/test/java/guru/springframework/test/ds/DevDataSource.java @@ -0,0 +1,16 @@ +package guru.springframework.test.ds; + +import org.springframework.context.annotation.Profile; +import org.springframework.stereotype.Component; + +/** + * Created by jt on 5/21/16. + */ +@Component +@Profile({"dev", "default"}) +public class DevDataSource implements FakeDataSource { + @Override + public String getConnectionInfo() { + return "I'm the Development DataSource"; + } +} diff --git a/src/test/java/guru/springframework/test/ds/FakeDataSource.java b/src/test/java/guru/springframework/test/ds/FakeDataSource.java new file mode 100644 index 00000000..38c28d08 --- /dev/null +++ b/src/test/java/guru/springframework/test/ds/FakeDataSource.java @@ -0,0 +1,9 @@ +package guru.springframework.test.ds; + +/** + * Created by jt on 5/21/16. + */ +public interface FakeDataSource { + + String getConnectionInfo(); +} diff --git a/src/test/java/guru/springframework/test/ds/ProdDataSource.java b/src/test/java/guru/springframework/test/ds/ProdDataSource.java new file mode 100644 index 00000000..49fbd52a --- /dev/null +++ b/src/test/java/guru/springframework/test/ds/ProdDataSource.java @@ -0,0 +1,16 @@ +package guru.springframework.test.ds; + +import org.springframework.context.annotation.Profile; +import org.springframework.stereotype.Component; + +/** + * Created by jt on 5/21/16. + */ +@Component +@Profile("prod") +public class ProdDataSource implements FakeDataSource { + @Override + public String getConnectionInfo() { + return "I'm the Production Datasource"; + } +} diff --git a/src/test/java/guru/springframework/test/ds/QADataSource.java b/src/test/java/guru/springframework/test/ds/QADataSource.java new file mode 100644 index 00000000..aeb017c9 --- /dev/null +++ b/src/test/java/guru/springframework/test/ds/QADataSource.java @@ -0,0 +1,17 @@ +package guru.springframework.test.ds; + +import org.springframework.context.annotation.Profile; +import org.springframework.stereotype.Component; + +/** + * Created by jt on 5/21/16. + */ +@Component +@Profile("qa") +public class QADataSource implements FakeDataSource { + + @Override + public String getConnectionInfo() { + return "I'm the QA Datasource"; + } +} diff --git a/src/test/java/guru/springframework/test/dstest/DataSourceTest.java b/src/test/java/guru/springframework/test/dstest/DataSourceTest.java new file mode 100644 index 00000000..4cc60f41 --- /dev/null +++ b/src/test/java/guru/springframework/test/dstest/DataSourceTest.java @@ -0,0 +1,34 @@ +package guru.springframework.test.dstest; + +/** + * Created by jt on 5/21/16. + */ + +import guru.springframework.test.config.DataSourceConfig; +import guru.springframework.test.ds.FakeDataSource; +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.test.context.ActiveProfiles; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; + +@RunWith(SpringJUnit4ClassRunner.class) +@SpringApplicationConfiguration(DataSourceConfig.class) +@ActiveProfiles("guru") +public class DataSourceTest { + + private FakeDataSource fakeDataSource; + + @Autowired + public void setFakeDataSource(FakeDataSource fakeDataSource) { + this.fakeDataSource = fakeDataSource; + } + + @Test + public void TestDataSource() throws Exception { + + System.out.println(fakeDataSource.getConnectionInfo()); + + } +} 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/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/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/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()); + } + +} 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/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; + } +} 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/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..bd548d48 --- /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}") + Integer 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/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 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