Example usage for org.springframework.context ConfigurableApplicationContext isRunning

List of usage examples for org.springframework.context ConfigurableApplicationContext isRunning

Introduction

In this page you can find the example usage for org.springframework.context ConfigurableApplicationContext isRunning.

Prototype

boolean isRunning();

Source Link

Document

Check whether this component is currently running.

Usage

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);
    }
}