List of usage examples for org.springframework.context ConfigurableApplicationContext isRunning
boolean isRunning();
From source file:org.springframework.data.gemfire.support.SpringContextBootstrappingInitializer.java
/** * Initializes a Spring ApplicationContext with the given parameters specified with a GemFire <initializer> * block in cache.xml.// w ww . ja v a2 s .co m * * @param parameters a Properties object containing the configuration parameters and settings defined in the * GemFire cache.xml <initializer> block for the declared SpringContextBootstrappingInitializer * GemFire Declarable object. * @throws org.springframework.context.ApplicationContextException if the Spring ApplicationContext could not be * successfully created, configured and initialized. * @see #createApplicationContext(String[], String[]) * @see #initApplicationContext(org.springframework.context.ConfigurableApplicationContext) * @see #refreshApplicationContext(org.springframework.context.ConfigurableApplicationContext) * @see java.util.Properties */ @Override public void init(final Properties parameters) { try { synchronized (SpringContextBootstrappingInitializer.class) { if (applicationContext == null || !applicationContext.isActive()) { String basePackages = parameters.getProperty(BASE_PACKAGES_PARAMETER); String contextConfigLocations = parameters.getProperty(CONTEXT_CONFIG_LOCATIONS_PARAMETER); String[] basePackagesArray = StringUtils.delimitedListToStringArray( StringUtils.trimWhitespace(basePackages), COMMA_DELIMITER, CHARS_TO_DELETE); String[] contextConfigLocationsArray = StringUtils.delimitedListToStringArray( StringUtils.trimWhitespace(contextConfigLocations), COMMA_DELIMITER, CHARS_TO_DELETE); ConfigurableApplicationContext localApplicationContext = refreshApplicationContext( initApplicationContext( createApplicationContext(basePackagesArray, contextConfigLocationsArray))); Assert.state(localApplicationContext.isRunning(), String.format( "The Spring ApplicationContext (%1$s) failed to be properly initialized with the context config files (%2$s) or base packages (%3$s)!", nullSafeGetApplicationContextId(localApplicationContext), Arrays.toString(contextConfigLocationsArray), Arrays.toString(basePackagesArray))); applicationContext = localApplicationContext; } } } catch (Throwable cause) { String message = "Failed to bootstrap the Spring ApplicationContext!"; logger.error(message, cause); throw new ApplicationContextException(message, cause); } }
From source file:org.springframework.data.gemfire.support.SpringContextBootstrappingInitializerTest.java
@Test public void testInitWhenApplicationContextIsNull() { assertNull(SpringContextBootstrappingInitializer.applicationContext); final ConfigurableApplicationContext mockApplicationContext = mock(ConfigurableApplicationContext.class, "testInitWhenApplicationContextIsNull"); when(mockApplicationContext.getId()).thenReturn("testInitWhenApplicationContextIsNull"); when(mockApplicationContext.isRunning()).thenReturn(true); SpringContextBootstrappingInitializer initializer = new SpringContextBootstrappingInitializer() { @Override/*from w ww .java2 s . co m*/ protected ConfigurableApplicationContext createApplicationContext(final String[] basePackages, final String[] configLocations) { return mockApplicationContext; } }; initializer.init(createParameters(SpringContextBootstrappingInitializer.CONTEXT_CONFIG_LOCATIONS_PARAMETER, "/path/to/spring/application/context.xml")); verify(mockApplicationContext, times(1)).addApplicationListener(same(initializer)); verify(mockApplicationContext, times(1)).registerShutdownHook(); verify(mockApplicationContext, times(1)).refresh(); assertSame(mockApplicationContext, SpringContextBootstrappingInitializer.getApplicationContext()); }
From source file:org.springframework.data.gemfire.support.SpringContextBootstrappingInitializerTest.java
@Test public void testInitWhenApplicationContextIsInactive() { ConfigurableApplicationContext mockInactiveApplicationContext = mock(ConfigurableApplicationContext.class, "testInitWhenApplicationContextIsInactive.Inactive"); when(mockInactiveApplicationContext.isActive()).thenReturn(false); SpringContextBootstrappingInitializer.applicationContext = mockInactiveApplicationContext; assertSame(mockInactiveApplicationContext, SpringContextBootstrappingInitializer.getApplicationContext()); final ConfigurableApplicationContext mockNewApplicationContext = mock(ConfigurableApplicationContext.class, "testInitWhenApplicationContextIsInactive.New"); when(mockNewApplicationContext.getId()).thenReturn("testInitWhenApplicationContextIsInactive.New"); when(mockNewApplicationContext.isRunning()).thenReturn(true); SpringContextBootstrappingInitializer initializer = new SpringContextBootstrappingInitializer() { @Override// ww w . j a va2 s . c o m protected ConfigurableApplicationContext createApplicationContext(final String[] basePackages, final String[] configLocations) { return mockNewApplicationContext; } }; initializer.init( createParameters(SpringContextBootstrappingInitializer.BASE_PACKAGES_PARAMETER, "org.example.app")); verify(mockNewApplicationContext, times(1)).addApplicationListener(same(initializer)); verify(mockNewApplicationContext, times(1)).registerShutdownHook(); verify(mockNewApplicationContext, times(1)).refresh(); assertSame(mockNewApplicationContext, SpringContextBootstrappingInitializer.getApplicationContext()); }
From source file:org.springframework.data.gemfire.support.SpringContextBootstrappingInitializerTest.java
@Test(expected = IllegalStateException.class) public void testInitWhenApplicationContextIsNotRunning() { assertNull(SpringContextBootstrappingInitializer.applicationContext); final ConfigurableApplicationContext mockApplicationContext = mock(ConfigurableApplicationContext.class, "testInitWhenApplicationContextIsNotRunning"); when(mockApplicationContext.getId()).thenReturn("testInitWhenApplicationContextIsNotRunning"); when(mockApplicationContext.isRunning()).thenReturn(false); SpringContextBootstrappingInitializer initializer = new SpringContextBootstrappingInitializer() { @Override/* w ww . ja va2s . co m*/ protected ConfigurableApplicationContext createApplicationContext(final String[] basePackages, final String[] configLocations) { return mockApplicationContext; } }; try { initializer.init(createParameters(SpringContextBootstrappingInitializer.BASE_PACKAGES_PARAMETER, "org.example.app, org.example.plugins")); SpringContextBootstrappingInitializer.getApplicationContext(); } catch (ApplicationContextException expected) { assertTrue(expected.getMessage().contains("Failed to bootstrap the Spring ApplicationContext!")); assertTrue(expected.getCause() instanceof IllegalStateException); assertEquals( "The Spring ApplicationContext (testInitWhenApplicationContextIsNotRunning) failed to be properly initialized with the context config files ([]) or base packages ([org.example.app, org.example.plugins])!", expected.getCause().getMessage()); throw (IllegalStateException) expected.getCause(); } finally { verify(mockApplicationContext, times(1)).addApplicationListener(same(initializer)); verify(mockApplicationContext, times(1)).registerShutdownHook(); verify(mockApplicationContext, times(1)).refresh(); assertNull(SpringContextBootstrappingInitializer.applicationContext); } }