Search in sources :

Example 1 with MockServletContext

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;
}
Also used : AppModule(org.apache.openejb.config.AppModule) WebContext(org.apache.openejb.core.WebContext) SessionManager(org.apache.openejb.server.httpd.session.SessionManager) HttpSession(javax.servlet.http.HttpSession) MockHttpSession(org.apache.webbeans.web.lifecycle.test.MockHttpSession) Closeable(java.io.Closeable) AppContext(org.apache.openejb.AppContext) WebModule(org.apache.openejb.config.WebModule) IOException(java.io.IOException) LightweightWebAppBuilder(org.apache.openejb.web.LightweightWebAppBuilder) WebAppBuilder(org.apache.openejb.assembler.classic.WebAppBuilder) MockServletContext(org.apache.webbeans.web.lifecycle.test.MockServletContext) NamingException(javax.naming.NamingException) LifecycleException(org.jboss.arquillian.container.spi.client.container.LifecycleException) IOException(java.io.IOException) OpenEJBRuntimeException(org.apache.openejb.OpenEJBRuntimeException) DeploymentException(org.jboss.arquillian.container.spi.client.container.DeploymentException) WebAppInfo(org.apache.openejb.assembler.classic.WebAppInfo) AppInfo(org.apache.openejb.assembler.classic.AppInfo) LightweightWebAppBuilder(org.apache.openejb.web.LightweightWebAppBuilder) MockServletContext(org.apache.webbeans.web.lifecycle.test.MockServletContext) ServletContext(javax.servlet.ServletContext) MockHttpSession(org.apache.webbeans.web.lifecycle.test.MockHttpSession) DeploymentException(org.jboss.arquillian.container.spi.client.container.DeploymentException)

Example 2 with MockServletContext

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);
}
Also used : MockHttpSession(org.apache.webbeans.web.lifecycle.test.MockHttpSession) MockServletContext(org.apache.webbeans.web.lifecycle.test.MockServletContext)

Aggregations

MockHttpSession (org.apache.webbeans.web.lifecycle.test.MockHttpSession)2 MockServletContext (org.apache.webbeans.web.lifecycle.test.MockServletContext)2 Closeable (java.io.Closeable)1 IOException (java.io.IOException)1 NamingException (javax.naming.NamingException)1 ServletContext (javax.servlet.ServletContext)1 HttpSession (javax.servlet.http.HttpSession)1 AppContext (org.apache.openejb.AppContext)1 OpenEJBRuntimeException (org.apache.openejb.OpenEJBRuntimeException)1 AppInfo (org.apache.openejb.assembler.classic.AppInfo)1 WebAppBuilder (org.apache.openejb.assembler.classic.WebAppBuilder)1 WebAppInfo (org.apache.openejb.assembler.classic.WebAppInfo)1 AppModule (org.apache.openejb.config.AppModule)1 WebModule (org.apache.openejb.config.WebModule)1 WebContext (org.apache.openejb.core.WebContext)1 SessionManager (org.apache.openejb.server.httpd.session.SessionManager)1 LightweightWebAppBuilder (org.apache.openejb.web.LightweightWebAppBuilder)1 DeploymentException (org.jboss.arquillian.container.spi.client.container.DeploymentException)1 LifecycleException (org.jboss.arquillian.container.spi.client.container.LifecycleException)1