@Override protected WebApplicationContext initWebAppContext() { ServletContext servletContext = this.webAppContext.getServletContext(); Assert.state(servletContext != null, "No ServletContext"); ApplicationContext rootWac = WebApplicationContextUtils.getWebApplicationContext(servletContext); if (rootWac == null) { rootWac = this.webAppContext; ApplicationContext parent = this.webAppContext.getParent(); while (parent != null) { if (parent instanceof WebApplicationContext && !(parent.getParent() instanceof WebApplicationContext)) { rootWac = parent; break; } parent = parent.getParent(); } servletContext.setAttribute(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE, rootWac); } return this.webAppContext; }
@Override public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { ContextHierarchyDirtiesContextTests.context = applicationContext; ContextHierarchyDirtiesContextTests.baz = applicationContext.getBean("bean", String.class); ContextHierarchyDirtiesContextTests.bar = applicationContext.getParent().getBean("bean", String.class); ContextHierarchyDirtiesContextTests.foo = applicationContext.getParent().getParent().getBean("bean", String.class); } }
@Test public void loadContextHierarchy() { assertNotNull("child ApplicationContext", context); assertNotNull("parent ApplicationContext", context.getParent()); assertNull("grandparent ApplicationContext", context.getParent().getParent()); assertEquals("parent", parent); assertEquals("parent + user", user); assertEquals("from UserConfig", beanFromUserConfig); }
@Test public void loadContextHierarchy() { assertNotNull("child ApplicationContext", context); assertNotNull("parent ApplicationContext", context.getParent()); assertNull("grandparent ApplicationContext", context.getParent().getParent()); assertEquals("foo", foo); assertEquals("bar", bar); assertEquals("baz-child", baz); }
@Test public void loadContextHierarchy() { assertNotNull("child ApplicationContext", context); assertNotNull("parent ApplicationContext", context.getParent()); assertNull("grandparent ApplicationContext", context.getParent().getParent()); assertEquals("foo", foo); assertEquals("bar", bar); assertEquals("baz-child", baz); }
@Test @Override public void loadContextHierarchy() { assertNotNull("child ApplicationContext", context); assertNotNull("parent ApplicationContext", context.getParent()); assertNull("grandparent ApplicationContext", context.getParent().getParent()); assertEquals("foo-level-2", foo); assertEquals("bar", bar); assertEquals("baz", baz); }
@Test @Override public void loadContextHierarchy() { assertNotNull("child ApplicationContext", context); assertNotNull("parent ApplicationContext", context.getParent()); assertNull("grandparent ApplicationContext", context.getParent().getParent()); assertEquals("foo-level-2", foo); assertEquals("bar", bar); assertEquals("baz", baz); }
@Test public void loadContextHierarchy() { assertNotNull("child ApplicationContext", context); assertNotNull("parent ApplicationContext", context.getParent()); assertNull("grandparent ApplicationContext", context.getParent().getParent()); assertEquals("foo", foo); assertEquals("bar", bar); assertEquals("baz-child", baz); }
@Test @Override public void loadContextHierarchy() { assertNotNull("child ApplicationContext", context); assertNotNull("parent ApplicationContext", context.getParent()); assertNull("grandparent ApplicationContext", context.getParent().getParent()); assertEquals("foo-level-2", foo); assertEquals("bar", bar); assertEquals("baz", baz); }
@Test @Override public void loadContextHierarchy() { assertNotNull("child ApplicationContext", context); assertNotNull("parent ApplicationContext", context.getParent()); assertNull("grandparent ApplicationContext", context.getParent().getParent()); assertEquals("parent", parent); assertEquals("parent + test user", user); assertEquals("from TestUserConfig", beanFromTestUserConfig); assertNull("Bean from UserConfig should not be present.", beanFromUserConfig); }
@Test public void grandparentNull() { assertTrue("grandparent is null", applicationContext.getParent().getParent() == null); }
@Test public void loadContextHierarchy() { assertNotNull("child ApplicationContext", context); assertNull("parent ApplicationContext", context.getParent()); assertEquals("foo", foo); }
@Test public void verifyEarConfig() { assertFalse(context instanceof WebApplicationContext); assertNull(context.getParent()); assertEquals("ear", ear); }
@Test public void loadContextHierarchy() { assertNotNull("child ApplicationContext", context); assertNull("parent ApplicationContext", context.getParent()); assertEquals("foo-level-1", foo); assertEquals("bar", bar); }
@Test public void loadContextHierarchy() { assertNotNull("child ApplicationContext", context); assertNull("parent ApplicationContext", context.getParent()); assertEquals("foo-level-1", foo); assertEquals("bar", bar); }
@Test public void loadContextHierarchy() { assertNotNull("child ApplicationContext", context); assertNull("parent ApplicationContext", context.getParent()); assertEquals("foo-level-1", foo); assertEquals("bar", bar); }
@Test @Override public void loadContextHierarchy() { assertNotNull("child ApplicationContext", context); assertNotNull("parent ApplicationContext", context.getParent()); assertEquals("foo-level-2", foo); assertEquals("bar", bar); assertEquals("baz", baz); }
/** * See SPR-12553 and SPR-13075. */ @Test public void rootWacServletContainerAttributeNotPreviouslySetWithContextHierarchy() { StaticApplicationContext ear = new StaticApplicationContext(); StaticWebApplicationContext root = new StaticWebApplicationContext(); root.setParent(ear); root.setServletContext(this.servletContext); StaticWebApplicationContext dispatcher = new StaticWebApplicationContext(); dispatcher.setParent(root); dispatcher.setServletContext(this.servletContext); DefaultMockMvcBuilder builder = webAppContextSetup(dispatcher); WebApplicationContext wac = builder.initWebAppContext(); assertSame(dispatcher, wac); assertSame(root, wac.getParent()); assertSame(ear, wac.getParent().getParent()); assertSame(root, WebApplicationContextUtils.getRequiredWebApplicationContext(this.servletContext)); }