use of org.apache.webbeans.web.lifecycle.test.MockServletContext in project tomee by apache.
the class OpenEJBDeployableContainer method quickDeploy.
private DeploymentInfo quickDeploy(final Archive<?> archive, final TestClass testClass, final Closeables cls) throws DeploymentException {
final String name = archive.getName();
DeploymentInfo info = DEPLOYMENT_INFO.get(name);
if (info == null) {
try {
final AppModule module = OpenEJBArchiveProcessor.createModule(archive, testClass, cls);
final AppInfo appInfo = configurationFactory.configureApplication(module);
final WebAppBuilder webAppBuilder = SystemInstance.get().getComponent(WebAppBuilder.class);
final boolean isEmbeddedWebAppBuilder = webAppBuilder != null && LightweightWebAppBuilder.class.isInstance(webAppBuilder);
if (isEmbeddedWebAppBuilder) {
// for now we keep the same classloader, open to discussion if we should recreate it, not sure it does worth it
final LightweightWebAppBuilder lightweightWebAppBuilder = LightweightWebAppBuilder.class.cast(webAppBuilder);
for (final WebModule w : module.getWebModules()) {
final String moduleId = w.getModuleId();
lightweightWebAppBuilder.setClassLoader(moduleId, w.getClassLoader());
cls.add(new Closeable() {
@Override
public void close() throws IOException {
lightweightWebAppBuilder.removeClassLoader(moduleId);
}
});
}
}
final AppContext appCtx = assembler.createApplication(appInfo, module.getClassLoader());
if (isEmbeddedWebAppBuilder && PROPERTIES.containsKey(OpenEjbContainer.OPENEJB_EMBEDDED_REMOTABLE) && !appCtx.getWebContexts().isEmpty()) {
cls.add(new Closeable() {
@Override
public void close() throws IOException {
try {
final SessionManager sessionManager = SystemInstance.get().getComponent(SessionManager.class);
if (sessionManager != null) {
for (final WebContext web : appCtx.getWebContexts()) {
sessionManager.destroy(web);
}
}
} catch (final Throwable e) {
// no-op
}
}
});
}
final ServletContext appServletContext = new MockServletContext();
final HttpSession appSession = new MockHttpSession();
if (configuration.isStartDefaultScopes() && appCtx.getWebBeansContext() != null) {
startContexts(appCtx.getWebBeansContext().getContextsService(), appServletContext, appSession);
}
info = new DeploymentInfo(appServletContext, appSession, appInfo, appCtx);
if (configuration.isSingleDeploymentByArchiveName(name)) {
DEPLOYMENT_INFO.putIfAbsent(name, info);
}
} catch (final Exception e) {
throw new DeploymentException("can't deploy " + name, e);
}
}
return info;
}
use of org.apache.webbeans.web.lifecycle.test.MockServletContext in project tomee by apache.
the class ApplicationComposers method before.
@SuppressWarnings("unchecked")
public void before(final Object inputTestInstance) throws Exception {
fixFakeClassFinder(inputTestInstance);
startContainer(inputTestInstance);
servletContext = new MockServletContext();
session = new MockHttpSession();
deployApp(inputTestInstance);
}
Aggregations