/** * This Source Code Form is subject to the terms of the Mozilla Public License, * v. 2.0. If a copy of the MPL was not distributed with this file, You can * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. * * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS * graphic logo is a trademark of OpenMRS Inc. */ package org.openmrs.web.test; import org.springframework.context.ApplicationContext; import org.springframework.context.ConfigurableApplicationContext; import org.springframework.mock.web.MockServletContext; import org.springframework.test.context.MergedContextConfiguration; import org.springframework.test.context.support.AbstractContextLoader; import org.springframework.web.context.WebApplicationContext; import org.springframework.web.context.support.XmlWebApplicationContext; /** * The only reason why i created this class is to be able to create an application context which can * be refreshed multiple times, unlike the default GenericApplicationContext which can be refreshed * only once. This class is used for @ContextConfiguration in WebModuleActivatorTest */ public class TestContextLoader extends AbstractContextLoader { public TestContextLoader() { } @Override public final ConfigurableApplicationContext loadContext(String... locations) throws Exception { XmlWebApplicationContext context = new XmlWebApplicationContext(); context.setConfigLocations(locations); MockServletContext sc = new MockServletContext(); sc.setAttribute(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE, context); context.setServletContext(sc); context.refresh(); return context; } @Override protected String getResourceSuffix() { return "-context.xml"; } /** * @see org.springframework.test.context.SmartContextLoader#loadContext(org.springframework.test.context.MergedContextConfiguration) */ @Override public ApplicationContext loadContext(MergedContextConfiguration mergedConfig) throws Exception { return null; } }