diff --git a/handling-spring-static-resources/.classpath b/handling-spring-static-resources/.classpath index ceb436dc82..71a1c1e0b5 100644 --- a/handling-spring-static-resources/.classpath +++ b/handling-spring-static-resources/.classpath @@ -19,11 +19,9 @@ - - - + - + diff --git a/handling-spring-static-resources/.project b/handling-spring-static-resources/.project index 3d1ebc3a95..a16def8042 100644 --- a/handling-spring-static-resources/.project +++ b/handling-spring-static-resources/.project @@ -31,17 +31,18 @@ - org.eclipse.m2e.core.maven2Builder + org.hibernate.eclipse.console.hibernateBuilder - org.hibernate.eclipse.console.hibernateBuilder + org.eclipse.m2e.core.maven2Builder + org.eclipse.jem.workbench.JavaEMFNature org.springframework.ide.eclipse.core.springnature org.eclipse.jdt.core.javanature org.eclipse.m2e.core.maven2Nature diff --git a/handling-spring-static-resources/pom.xml b/handling-spring-static-resources/pom.xml index fb29bf1a3d..2a78e4cc98 100644 --- a/handling-spring-static-resources/pom.xml +++ b/handling-spring-static-resources/pom.xml @@ -1,84 +1,91 @@ - + 4.0.0 org.baeldung handling-spring-static-resources handling-spring-static-resources + 0.1-SNAPSHOT war - 1.0.0-BUILD-SNAPSHOT - - 1.7 - 4.1.0.RELEASE - 3.2.0.RELEASE - 1.8.1 - 1.6.1 - - 2.3.2-b01 - + + + + + org.springframework.security + spring-security-web + ${org.springframework.security.version} + + + org.springframework.security + spring-security-config + ${org.springframework.security.version} + + + org.springframework.security + spring-security-taglibs + ${org.springframework.security.version} + + org.springframework - spring-context - 4.1.0.RELEASE + spring-core + ${org.springframework.version} - - commons-logging commons-logging + commons-logging org.springframework - spring-webmvc - ${org.springframework-version} - - - org.springframework.security - spring-security-config - 3.2.5.RELEASE - runtime + spring-context + ${org.springframework.version} org.springframework - spring-context-support - 4.1.0.RELEASE + spring-jdbc + ${org.springframework.version} - + + org.springframework + spring-beans + ${org.springframework.version} + + + org.springframework + spring-aop + ${org.springframework.version} + + + org.springframework + spring-tx + ${org.springframework.version} + + + org.springframework + spring-expression + ${org.springframework.version} + + + + org.springframework + spring-web + ${org.springframework.version} + + + org.springframework + spring-webmvc + ${org.springframework.version} + + + org.aspectj aspectjrt ${org.aspectj-version} - - - - org.slf4j - slf4j-api - ${org.slf4j-version} - - - org.slf4j - jcl-over-slf4j - ${org.slf4j-version} - runtime - - - org.slf4j - slf4j-log4j12 - ${org.slf4j-version} - runtime - - - log4j - log4j - 1.2.16 - runtime - - - javax.inject javax.inject @@ -101,31 +108,15 @@ jstl 1.2 - - - org.springframework.security - spring-security-taglibs - 3.2.5.RELEASE - - com.fasterxml.jackson.core jackson-databind - 2.4.1 - - - - - - - javax.validation - validation-api - 1.0.0.GA + ${jackson.version} org.hibernate hibernate-validator - 4.1.0.Final + ${hibernate-validator.version} @@ -141,13 +132,31 @@ handlebars 1.3.2 - - - org.springframework.security - spring-security-web - ${org.springframework.security-version} - + + + + org.slf4j + slf4j-api + ${org.slf4j.version} + + + ch.qos.logback + logback-classic + ${logback.version} + + + + org.slf4j + jcl-over-slf4j + ${org.slf4j.version} + + + + org.slf4j + log4j-over-slf4j + ${org.slf4j.version} + @@ -160,4 +169,54 @@ + + + 1.7 + 4.1.0.RELEASE + 3.2.0.RELEASE + 1.8.1 + 1.6.1 + 2.3.2-b01 + + + 4.1.1.RELEASE + 3.2.5.RELEASE + + + 4.3.7.Final + 5.1.32 + 1.6.2.RELEASE + + + + 2.4.2 + + + 1.7.7 + 1.1.2 + + + 5.1.3.Final + + + 18.0 + 3.3.2 + + + 1.3 + 4.11 + 1.10.8 + + 4.3.3 + 4.3.5 + + 2.3.4 + + + 3.2 + 2.5 + 2.17 + 1.4.10 + + \ No newline at end of file diff --git a/handling-spring-static-resources/src/main/java/org/baeldung/security/MySimpleUrlAuthenticationSuccessHandler.java b/handling-spring-static-resources/src/main/java/org/baeldung/security/MySimpleUrlAuthenticationSuccessHandler.java index 45ce91adc8..316642ab6f 100644 --- a/handling-spring-static-resources/src/main/java/org/baeldung/security/MySimpleUrlAuthenticationSuccessHandler.java +++ b/handling-spring-static-resources/src/main/java/org/baeldung/security/MySimpleUrlAuthenticationSuccessHandler.java @@ -17,8 +17,7 @@ public class MySimpleUrlAuthenticationSuccessHandler implements AuthenticationSu private RedirectStrategy redirectStrategy = new DefaultRedirectStrategy(); - @Override - public void onAuthenticationSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication) throws IOException { + public void onAuthenticationSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication) throws IOException { handle(request, response, authentication); HttpSession session = request.getSession(false); if (session != null) { @@ -39,9 +38,9 @@ public class MySimpleUrlAuthenticationSuccessHandler implements AuthenticationSu } protected String determineTargetUrl(Authentication authentication) { - - return "/home.html"; - + + return "/home.html"; + } protected void clearAuthenticationAttributes(HttpServletRequest request) { diff --git a/handling-spring-static-resources/src/main/java/org/baeldung/spring/MvcConfig.java b/handling-spring-static-resources/src/main/java/org/baeldung/spring/MvcConfig.java index bd874a6e67..4a198cf195 100644 --- a/handling-spring-static-resources/src/main/java/org/baeldung/spring/MvcConfig.java +++ b/handling-spring-static-resources/src/main/java/org/baeldung/spring/MvcConfig.java @@ -1,9 +1,7 @@ package org.baeldung.spring; - import java.util.Locale; - import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.MessageSource; import org.springframework.context.annotation.Bean; @@ -42,9 +40,9 @@ public class MvcConfig extends WebMvcConfigurerAdapter { @Override public void addViewControllers(final ViewControllerRegistry registry) { super.addViewControllers(registry); - registry.addViewController("/login.html"); + registry.addViewController("/login.html"); registry.addViewController("/home.html"); - + } @Bean @@ -55,23 +53,21 @@ public class MvcConfig extends WebMvcConfigurerAdapter { bean.setSuffix(".jsp"); return bean; } - + @Override - public void addResourceHandlers(ResourceHandlerRegistry registry) { - //For examples using Spring 4.1.0 - if((env.getProperty("resource.handler.conf")).equals("4.1.0")){ + public void addResourceHandlers(ResourceHandlerRegistry registry) { + // For examples using Spring 4.1.0 + if ((env.getProperty("resource.handler.conf")).equals("4.1.0")) { registry.addResourceHandler("/js/**").addResourceLocations("/js/").setCachePeriod(3600).resourceChain(true).addResolver(new GzipResourceResolver()).addResolver(new PathResourceResolver()); registry.addResourceHandler("/resources/**").addResourceLocations("/resources/", "classpath:/other-resources/").setCachePeriod(3600).resourceChain(true).addResolver(new PathResourceResolver()); registry.addResourceHandler("/files/**").addResourceLocations("file:/Users/Elena/").setCachePeriod(3600).resourceChain(true).addResolver(new PathResourceResolver()); - registry.addResourceHandler("/other-files/**").addResourceLocations("file:/Users/Elena/"). - setCachePeriod(3600).resourceChain(true).addResolver(new GzipResourceResolver()); - } - //For examples using Spring 4.0.7 - else if ((env.getProperty("resource.handler.conf")).equals("4.0.7")){ + registry.addResourceHandler("/other-files/**").addResourceLocations("file:/Users/Elena/").setCachePeriod(3600).resourceChain(true).addResolver(new GzipResourceResolver()); + } + // For examples using Spring 4.0.7 + else if ((env.getProperty("resource.handler.conf")).equals("4.0.7")) { registry.addResourceHandler("/resources/**").addResourceLocations("/", "/resources/", "classpath:/other-resources/"); - registry.addResourceHandler("/files/**") - .addResourceLocations("file:/Users/Elena/"); - + registry.addResourceHandler("/files/**").addResourceLocations("file:/Users/Elena/"); + } } diff --git a/handling-spring-static-resources/src/main/java/org/baeldung/spring/SecSecurityConfig.java b/handling-spring-static-resources/src/main/java/org/baeldung/spring/SecSecurityConfig.java index d51d0e9a50..4da114c78b 100644 --- a/handling-spring-static-resources/src/main/java/org/baeldung/spring/SecSecurityConfig.java +++ b/handling-spring-static-resources/src/main/java/org/baeldung/spring/SecSecurityConfig.java @@ -7,7 +7,7 @@ import org.springframework.context.annotation.ImportResource; @ImportResource({ "classpath:webSecurityConfig.xml" }) public class SecSecurityConfig { - public SecSecurityConfig() { + public SecSecurityConfig() { super(); } diff --git a/handling-spring-static-resources/src/main/java/org/baeldung/web/controller/HomeController.java b/handling-spring-static-resources/src/main/java/org/baeldung/web/controller/HomeController.java index aa2b9f63fc..44645a1471 100644 --- a/handling-spring-static-resources/src/main/java/org/baeldung/web/controller/HomeController.java +++ b/handling-spring-static-resources/src/main/java/org/baeldung/web/controller/HomeController.java @@ -14,22 +14,19 @@ import org.springframework.web.context.request.WebRequest; @Controller public class HomeController { - - - + @Autowired Environment env; - @RequestMapping(value = "/home", method = RequestMethod.GET) public String showHome(WebRequest request, Model model, Locale locale) throws IOException { - + Date date = new Date(); DateFormat dateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG, locale); - + String formattedDate = dateFormat.format(date); - model.addAttribute("serverTime", formattedDate ); + model.addAttribute("serverTime", formattedDate); return "home"; } - + } diff --git a/spring-all/src/main/java/org/baeldung/profiles/DatasourceConfig.java b/spring-all/src/main/java/org/baeldung/profiles/DatasourceConfig.java new file mode 100644 index 0000000000..80cb060c7e --- /dev/null +++ b/spring-all/src/main/java/org/baeldung/profiles/DatasourceConfig.java @@ -0,0 +1,5 @@ +package org.baeldung.profiles; + +public interface DatasourceConfig { + public void setup(); +} diff --git a/spring-all/src/main/java/org/baeldung/profiles/DevDatasourceConfig.java b/spring-all/src/main/java/org/baeldung/profiles/DevDatasourceConfig.java new file mode 100644 index 0000000000..e357280c43 --- /dev/null +++ b/spring-all/src/main/java/org/baeldung/profiles/DevDatasourceConfig.java @@ -0,0 +1,15 @@ +package org.baeldung.profiles; + +import org.springframework.context.annotation.Profile; +import org.springframework.stereotype.Component; + +@Component +@Profile("dev") +public class DevDatasourceConfig implements DatasourceConfig { + + @Override + public void setup() { + System.out.println("Setting up datasource for DEV environment. "); + } + +} diff --git a/spring-all/src/main/java/org/baeldung/profiles/ProductionDatasourceConfig.java b/spring-all/src/main/java/org/baeldung/profiles/ProductionDatasourceConfig.java new file mode 100644 index 0000000000..f1adff9c96 --- /dev/null +++ b/spring-all/src/main/java/org/baeldung/profiles/ProductionDatasourceConfig.java @@ -0,0 +1,15 @@ +package org.baeldung.profiles; + +import org.springframework.context.annotation.Profile; +import org.springframework.stereotype.Component; + +@Component +@Profile("production") +public class ProductionDatasourceConfig implements DatasourceConfig { + + @Override + public void setup() { + System.out.println("Setting up datasource for PRODUCTION environment. "); + } + +} diff --git a/spring-all/src/main/java/org/baeldung/profiles/SpringProfilesConfig.java b/spring-all/src/main/java/org/baeldung/profiles/SpringProfilesConfig.java new file mode 100644 index 0000000000..eb5543e3db --- /dev/null +++ b/spring-all/src/main/java/org/baeldung/profiles/SpringProfilesConfig.java @@ -0,0 +1,10 @@ +package org.baeldung.profiles; + +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; + +@Configuration +@ComponentScan("org.baeldung.profiles") +public class SpringProfilesConfig { + +} diff --git a/spring-all/src/main/java/org/baeldung/springevents/asynchronous/AsynchronousSpringEventsConfig.java b/spring-all/src/main/java/org/baeldung/springevents/asynchronous/AsynchronousSpringEventsConfig.java new file mode 100644 index 0000000000..082a986974 --- /dev/null +++ b/spring-all/src/main/java/org/baeldung/springevents/asynchronous/AsynchronousSpringEventsConfig.java @@ -0,0 +1,21 @@ +package org.baeldung.springevents.asynchronous; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.event.ApplicationEventMulticaster; +import org.springframework.context.event.SimpleApplicationEventMulticaster; +import org.springframework.core.task.SimpleAsyncTaskExecutor; + +@Configuration +@ComponentScan("org.baeldung.springevents.synchronous") +public class AsynchronousSpringEventsConfig { + + @Bean(name = "applicationEventMulticaster") + public ApplicationEventMulticaster simpleApplicationEventMulticaster() { + final SimpleApplicationEventMulticaster simpleApplicationEventMulticaster = new SimpleApplicationEventMulticaster(); + simpleApplicationEventMulticaster.setTaskExecutor(new SimpleAsyncTaskExecutor()); + return simpleApplicationEventMulticaster; + } + +} diff --git a/spring-all/src/main/java/org/baeldung/springevents/synchronous/ContextRefreshedListener.java b/spring-all/src/main/java/org/baeldung/springevents/synchronous/ContextRefreshedListener.java new file mode 100644 index 0000000000..052437e555 --- /dev/null +++ b/spring-all/src/main/java/org/baeldung/springevents/synchronous/ContextRefreshedListener.java @@ -0,0 +1,15 @@ +package org.baeldung.springevents.synchronous; + +import org.springframework.context.ApplicationListener; +import org.springframework.context.event.ContextRefreshedEvent; +import org.springframework.stereotype.Component; + +@Component +public class ContextRefreshedListener implements ApplicationListener { + + @Override + public void onApplicationEvent(final ContextRefreshedEvent cse) { + System.out.println("Handling context re-freshed event. "); + } + +} \ No newline at end of file diff --git a/spring-all/src/main/java/org/baeldung/springevents/synchronous/CustomSpringEvent.java b/spring-all/src/main/java/org/baeldung/springevents/synchronous/CustomSpringEvent.java new file mode 100644 index 0000000000..1631801ffe --- /dev/null +++ b/spring-all/src/main/java/org/baeldung/springevents/synchronous/CustomSpringEvent.java @@ -0,0 +1,19 @@ +package org.baeldung.springevents.synchronous; + +import org.springframework.context.ApplicationEvent; + +public class CustomSpringEvent extends ApplicationEvent { + private static final long serialVersionUID = -8053143381029977953L; + + private String message; + + public CustomSpringEvent(final Object source, final String message) { + super(source); + this.message = message; + } + + public String getMessage() { + return message; + } + +} diff --git a/spring-all/src/main/java/org/baeldung/springevents/synchronous/CustomSpringEventListener.java b/spring-all/src/main/java/org/baeldung/springevents/synchronous/CustomSpringEventListener.java new file mode 100644 index 0000000000..69f96966ec --- /dev/null +++ b/spring-all/src/main/java/org/baeldung/springevents/synchronous/CustomSpringEventListener.java @@ -0,0 +1,14 @@ +package org.baeldung.springevents.synchronous; + +import org.springframework.context.ApplicationListener; +import org.springframework.stereotype.Component; + +@Component +public class CustomSpringEventListener implements ApplicationListener { + + @Override + public void onApplicationEvent(final CustomSpringEvent event) { + System.out.println("Received spring custom event - " + event.getMessage()); + } + +} \ No newline at end of file diff --git a/spring-all/src/main/java/org/baeldung/springevents/synchronous/CustomSpringEventPublisher.java b/spring-all/src/main/java/org/baeldung/springevents/synchronous/CustomSpringEventPublisher.java new file mode 100644 index 0000000000..4569de1d5e --- /dev/null +++ b/spring-all/src/main/java/org/baeldung/springevents/synchronous/CustomSpringEventPublisher.java @@ -0,0 +1,19 @@ +package org.baeldung.springevents.synchronous; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.ApplicationEventPublisher; +import org.springframework.stereotype.Component; + +@Component +public class CustomSpringEventPublisher { + + @Autowired + private ApplicationEventPublisher applicationEventPublisher; + + public void publishEvent(final String message) { + System.out.println("Publishing custom event. "); + final CustomSpringEvent customSpringEvent = new CustomSpringEvent(this, message); + applicationEventPublisher.publishEvent(customSpringEvent); + } + +} diff --git a/spring-all/src/main/java/org/baeldung/springevents/synchronous/SynchronousSpringEventsConfig.java b/spring-all/src/main/java/org/baeldung/springevents/synchronous/SynchronousSpringEventsConfig.java new file mode 100644 index 0000000000..fff8a7e4b5 --- /dev/null +++ b/spring-all/src/main/java/org/baeldung/springevents/synchronous/SynchronousSpringEventsConfig.java @@ -0,0 +1,10 @@ +package org.baeldung.springevents.synchronous; + +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; + +@Configuration +@ComponentScan("org.baeldung.springevents.synchronous") +public class SynchronousSpringEventsConfig { + +} diff --git a/spring-all/src/main/resources/springProfiles-config.xml b/spring-all/src/main/resources/springProfiles-config.xml new file mode 100644 index 0000000000..a290f83b26 --- /dev/null +++ b/spring-all/src/main/resources/springProfiles-config.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/spring-all/src/test/java/org/baeldung/profiles/DevProfileWithAnnotationTest.java b/spring-all/src/test/java/org/baeldung/profiles/DevProfileWithAnnotationTest.java new file mode 100644 index 0000000000..2b65928da8 --- /dev/null +++ b/spring-all/src/test/java/org/baeldung/profiles/DevProfileWithAnnotationTest.java @@ -0,0 +1,23 @@ +package org.baeldung.profiles; + +import org.junit.Assert; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.test.context.ActiveProfiles; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; +import org.springframework.test.context.support.AnnotationConfigContextLoader; + +@RunWith(SpringJUnit4ClassRunner.class) +@ActiveProfiles("dev") +@ContextConfiguration(classes = { SpringProfilesConfig.class }, loader = AnnotationConfigContextLoader.class) +public class DevProfileWithAnnotationTest { + @Autowired + DatasourceConfig datasourceConfig; + + @Test + public void testSpringProfiles() { + Assert.assertTrue(datasourceConfig instanceof DevDatasourceConfig); + } +} \ No newline at end of file diff --git a/spring-all/src/test/java/org/baeldung/profiles/ProductionProfileWithAnnotationTest.java b/spring-all/src/test/java/org/baeldung/profiles/ProductionProfileWithAnnotationTest.java new file mode 100644 index 0000000000..551636bd31 --- /dev/null +++ b/spring-all/src/test/java/org/baeldung/profiles/ProductionProfileWithAnnotationTest.java @@ -0,0 +1,32 @@ +package org.baeldung.profiles; + +import org.junit.Assert; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.core.env.Environment; +import org.springframework.test.context.ActiveProfiles; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; +import org.springframework.test.context.support.AnnotationConfigContextLoader; + +@RunWith(SpringJUnit4ClassRunner.class) +@ActiveProfiles("production") +@ContextConfiguration(classes = { SpringProfilesConfig.class }, loader = AnnotationConfigContextLoader.class) +public class ProductionProfileWithAnnotationTest { + + @Autowired + DatasourceConfig datasourceConfig; + + @Autowired + Environment environment; + + @Test + public void testSpringProfiles() { + for (final String profileName : environment.getActiveProfiles()) { + System.out.println("Currently active profile - " + profileName); + } + Assert.assertEquals("production", environment.getActiveProfiles()[0]); + Assert.assertTrue(datasourceConfig instanceof ProductionDatasourceConfig); + } +} \ No newline at end of file diff --git a/spring-all/src/test/java/org/baeldung/profiles/SpringProfilesWithXMLTest.java b/spring-all/src/test/java/org/baeldung/profiles/SpringProfilesWithXMLTest.java new file mode 100644 index 0000000000..15c9265a13 --- /dev/null +++ b/spring-all/src/test/java/org/baeldung/profiles/SpringProfilesWithXMLTest.java @@ -0,0 +1,33 @@ +package org.baeldung.profiles; + +import org.junit.Assert; +import org.junit.Test; +import org.springframework.context.support.ClassPathXmlApplicationContext; +import org.springframework.core.env.ConfigurableEnvironment; + +public class SpringProfilesWithXMLTest { + + private ClassPathXmlApplicationContext classPathXmlApplicationContext; + + @Test + public void testSpringProfilesForDevEnvironment() { + classPathXmlApplicationContext = new ClassPathXmlApplicationContext("classpath:springProfiles-config.xml"); + final ConfigurableEnvironment configurableEnvironment = classPathXmlApplicationContext.getEnvironment(); + configurableEnvironment.setActiveProfiles("dev"); + classPathXmlApplicationContext.refresh(); + final DatasourceConfig datasourceConfig = classPathXmlApplicationContext.getBean("devDatasourceConfig", DatasourceConfig.class); + + Assert.assertTrue(datasourceConfig instanceof DevDatasourceConfig); + } + + @Test + public void testSpringProfilesForProdEnvironment() { + classPathXmlApplicationContext = new ClassPathXmlApplicationContext("classpath:springProfiles-config.xml"); + final ConfigurableEnvironment configurableEnvironment = classPathXmlApplicationContext.getEnvironment(); + configurableEnvironment.setActiveProfiles("production"); + classPathXmlApplicationContext.refresh(); + final DatasourceConfig datasourceConfig = classPathXmlApplicationContext.getBean("productionDatasourceConfig", DatasourceConfig.class); + + Assert.assertTrue(datasourceConfig instanceof ProductionDatasourceConfig); + } +} diff --git a/spring-all/src/test/java/org/baeldung/springevents/asynchronous/AsynchronousCustomSpringEventsTest.java b/spring-all/src/test/java/org/baeldung/springevents/asynchronous/AsynchronousCustomSpringEventsTest.java new file mode 100644 index 0000000000..2b45ae4e68 --- /dev/null +++ b/spring-all/src/test/java/org/baeldung/springevents/asynchronous/AsynchronousCustomSpringEventsTest.java @@ -0,0 +1,23 @@ +package org.baeldung.springevents.asynchronous; + +import org.baeldung.springevents.synchronous.CustomSpringEventPublisher; +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 org.springframework.test.context.support.AnnotationConfigContextLoader; + +@RunWith(SpringJUnit4ClassRunner.class) +@ContextConfiguration(classes = { AsynchronousSpringEventsConfig.class }, loader = AnnotationConfigContextLoader.class) +public class AsynchronousCustomSpringEventsTest { + + @Autowired + private CustomSpringEventPublisher publisher; + + @Test + public void testCustomSpringEvents() throws InterruptedException { + publisher.publishEvent("Hello world!!"); + System.out.println("Done publishing asynchronous custom event. "); + } +} diff --git a/spring-all/src/test/java/org/baeldung/springevents/synchronous/ContextRefreshedListenerTest.java b/spring-all/src/test/java/org/baeldung/springevents/synchronous/ContextRefreshedListenerTest.java new file mode 100644 index 0000000000..d971698e3f --- /dev/null +++ b/spring-all/src/test/java/org/baeldung/springevents/synchronous/ContextRefreshedListenerTest.java @@ -0,0 +1,18 @@ +package org.baeldung.springevents.synchronous; + +import org.baeldung.springevents.synchronous.SynchronousSpringEventsConfig; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; +import org.springframework.test.context.support.AnnotationConfigContextLoader; + +@RunWith(SpringJUnit4ClassRunner.class) +@ContextConfiguration(classes = { SynchronousSpringEventsConfig.class }, loader = AnnotationConfigContextLoader.class) +public class ContextRefreshedListenerTest { + + @Test + public void testContextRefreshedListener() throws InterruptedException { + System.out.println("Test context re-freshed listener."); + } +} \ No newline at end of file diff --git a/spring-all/src/test/java/org/baeldung/springevents/synchronous/SynchronousCustomSpringEventsTest.java b/spring-all/src/test/java/org/baeldung/springevents/synchronous/SynchronousCustomSpringEventsTest.java new file mode 100644 index 0000000000..b559ca9fc9 --- /dev/null +++ b/spring-all/src/test/java/org/baeldung/springevents/synchronous/SynchronousCustomSpringEventsTest.java @@ -0,0 +1,22 @@ +package org.baeldung.springevents.synchronous; + +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 org.springframework.test.context.support.AnnotationConfigContextLoader; + +@RunWith(SpringJUnit4ClassRunner.class) +@ContextConfiguration(classes = { SynchronousSpringEventsConfig.class }, loader = AnnotationConfigContextLoader.class) +public class SynchronousCustomSpringEventsTest { + + @Autowired + private CustomSpringEventPublisher publisher; + + @Test + public void testCustomSpringEvents() throws InterruptedException { + publisher.publishEvent("Hello world!!"); + System.out.println("Done publishing synchronous custom event. "); + } +}