use of org.apache.openejb.config.WebModule 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.openejb.config.WebModule in project tomee by apache.
the class CheckAnnotations method validate.
@Override
public void validate(final AppModule appModule) {
try {
for (final EjbModule ejbModule : appModule.getEjbModules()) {
module = ejbModule;
findClassesAnnotatedWithWebService(ejbModule);
}
for (final WebModule webModule : appModule.getWebModules()) {
module = webModule;
findClassesAnnotatedWithWebService(webModule);
}
} catch (final Exception e) {
logger.error("Error while validating @WebService annotation", e);
}
}
use of org.apache.openejb.config.WebModule in project tomee by apache.
the class CheckClassLoading method validate.
@Override
public void validate(final AppModule appModule) {
this.appModule = appModule;
module = appModule;
check(appModule.getClassLoader());
for (final WebModule webModule : appModule.getWebModules()) {
module = webModule;
validate(webModule);
}
super.validate(appModule);
}
use of org.apache.openejb.config.WebModule in project tomee by apache.
the class LoggingJAXRSWebAppModuleClassConfigurationTest method service.
@Module
public AppModule service() throws Exception {
final WebModule war = new WebModule(getWebApp(), "/test", Thread.currentThread().getContextClassLoader(), "", "test");
war.getRestApplications().add(LogginTestApplication.class.getName());
final AppModule appModule = new AppModule(getEjbModule(LogginTestApplication.class.getName(), "test"), war);
configureLoggin();
return appModule;
}
use of org.apache.openejb.config.WebModule in project tomee by apache.
the class LoggingJAXRSWebAppModuleTest method service.
@Module
public AppModule service() throws Exception {
final WebModule war = new WebModule(getWebApp(), "/test", Thread.currentThread().getContextClassLoader(), "", "test");
war.getRestApplications().add(LogginTestApplication.class.getName());
final AppModule appModule = new AppModule(getEjbModule("jaxrs-application", "test"), war);
configureLoggin();
return appModule;
}
Aggregations