package org.orienteer.junit; import org.apache.wicket.util.tester.WicketTester; import org.orienteer.core.service.OrienteerModule; import org.orienteer.core.service.OrienteerServletContextListener; import org.orienteer.core.service.OrienteerInitModule; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.google.inject.Guice; import com.google.inject.Injector; import com.google.inject.Provider; import com.google.inject.util.Modules; public class StaticInjectorProvider implements Provider<Injector> { static { System.setProperty(OrienteerInitModule.ORIENTEER_PROPERTIES_QUALIFIER_PROPERTY_NAME, "orienteer-test"); } private static final Logger LOG = LoggerFactory.getLogger(StaticInjectorProvider.class); private static final Injector STATIC_INJECTOR; static { LOG.info("Using embedded mode"); STATIC_INJECTOR = Guice.createInjector(new OrienteerInitModule()); OrienteerServletContextListener.predefinedInjector = STATIC_INJECTOR; Runtime.getRuntime().addShutdownHook(new Thread() { @Override public void run() { WicketTester wicketTester = STATIC_INJECTOR.getInstance(WicketTester.class); wicketTester.destroy(); } }); } public static final StaticInjectorProvider INSTANCE = new StaticInjectorProvider(); @Override public Injector get() { return STATIC_INJECTOR; } }