You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2015/06/16 10:34:49 UTC
[1/2] tomee git commit: skipping cdi if not used at all (resources
apps for instance)
Repository: tomee
Updated Branches:
refs/heads/master 43581f489 -> 60a2e64f6
skipping cdi if not used at all (resources apps for instance)
Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/60a2e64f
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/60a2e64f
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/60a2e64f
Branch: refs/heads/master
Commit: 60a2e64f600938561182969868440e74f223adba
Parents: ac8c659
Author: Romain Manni-Bucau <rm...@apache.org>
Authored: Tue Jun 16 10:34:01 2015 +0200
Committer: Romain Manni-Bucau <rm...@apache.org>
Committed: Tue Jun 16 10:34:38 2015 +0200
----------------------------------------------------------------------
.../common/enrichment/OpenEJBEnricher.java | 24 ++++++----
.../openejb/OpenEJBDeployableContainer.java | 4 +-
.../openejb/OpenEJBInjectionEnricher.java | 3 ++
.../embedded/EmbeddedTomEEContainer.java | 4 +-
.../main/java/org/apache/openejb/Injector.java | 14 +++---
.../org/apache/openejb/OpenEjbContainer.java | 28 ++++++-----
.../openejb/assembler/classic/Assembler.java | 30 ++++++++----
.../openejb/testing/ApplicationComposers.java | 13 ++++--
.../tomee/catalina/OpenEJBContextConfig.java | 49 +++++++++++---------
.../tomee/catalina/TomcatJndiBuilder.java | 6 ++-
.../tomee/catalina/TomcatWebAppBuilder.java | 1 +
11 files changed, 109 insertions(+), 67 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tomee/blob/60a2e64f/arquillian/arquillian-common/src/main/java/org/apache/openejb/arquillian/common/enrichment/OpenEJBEnricher.java
----------------------------------------------------------------------
diff --git a/arquillian/arquillian-common/src/main/java/org/apache/openejb/arquillian/common/enrichment/OpenEJBEnricher.java b/arquillian/arquillian-common/src/main/java/org/apache/openejb/arquillian/common/enrichment/OpenEJBEnricher.java
index aa7eb7e..446482d 100644
--- a/arquillian/arquillian-common/src/main/java/org/apache/openejb/arquillian/common/enrichment/OpenEJBEnricher.java
+++ b/arquillian/arquillian-common/src/main/java/org/apache/openejb/arquillian/common/enrichment/OpenEJBEnricher.java
@@ -76,11 +76,14 @@ public final class OpenEJBEnricher {
final BeanContext context = SystemInstance.get().getComponent(ContainerSystem.class).getBeanContext(ctx.getId() + "_" + testInstance.getClass().getName());
final WebBeansContext appWBC = ctx.getWebBeansContext();
- final BeanManagerImpl bm = appWBC.getBeanManagerImpl();
+ final BeanManagerImpl bm = appWBC == null ? null : appWBC.getBeanManagerImpl();
boolean ok = false;
for (final WebContext web : ctx.getWebContexts()) {
final WebBeansContext webBeansContext = web.getWebBeansContext();
+ if (webBeansContext == null) {
+ continue;
+ }
final BeanManagerImpl webAppBm = webBeansContext.getBeanManagerImpl();
if (webBeansContext != appWBC && webAppBm.isInUse()) {
try {
@@ -130,6 +133,9 @@ public final class OpenEJBEnricher {
private static BeanManagerImpl findBeanManager(final AppContext ctx) {
if (ctx != null) {
+ if (ctx.getWebBeansContext() == null) {
+ return null;
+ }
return ctx.getWebBeansContext().getBeanManagerImpl();
}
@@ -152,13 +158,15 @@ public final class OpenEJBEnricher {
final List<BeanManager> beanManagers = new ArrayList<>();
final BeanManager bm = findBeanManager(appContext);
if (bm != null) {
- if (appContext != null) { // then add web bean manager first, TODO: selection of the webapp containing the test?
- for (final WebContext web : appContext.getWebContexts()) {
- final WebBeansContext webBeansContext = web.getWebBeansContext();
- final BeanManagerImpl webAppBm = webBeansContext.getBeanManagerImpl();
- if (bm != webAppBm) {
- beanManagers.add(webAppBm);
- }
+ // then add web bean manager first, TODO: selection of the webapp containing the test?
+ for (final WebContext web : appContext.getWebContexts()) {
+ final WebBeansContext webBeansContext = web.getWebBeansContext();
+ if (webBeansContext == null) {
+ continue;
+ }
+ final BeanManagerImpl webAppBm = webBeansContext.getBeanManagerImpl();
+ if (bm != webAppBm) {
+ beanManagers.add(webAppBm);
}
}
beanManagers.add(bm);
http://git-wip-us.apache.org/repos/asf/tomee/blob/60a2e64f/arquillian/arquillian-openejb-embedded/src/main/java/org/apache/openejb/arquillian/openejb/OpenEJBDeployableContainer.java
----------------------------------------------------------------------
diff --git a/arquillian/arquillian-openejb-embedded/src/main/java/org/apache/openejb/arquillian/openejb/OpenEJBDeployableContainer.java b/arquillian/arquillian-openejb-embedded/src/main/java/org/apache/openejb/arquillian/openejb/OpenEJBDeployableContainer.java
index f999c20..a267c99 100644
--- a/arquillian/arquillian-openejb-embedded/src/main/java/org/apache/openejb/arquillian/openejb/OpenEJBDeployableContainer.java
+++ b/arquillian/arquillian-openejb-embedded/src/main/java/org/apache/openejb/arquillian/openejb/OpenEJBDeployableContainer.java
@@ -334,7 +334,7 @@ public class OpenEJBDeployableContainer implements DeployableContainer<OpenEJBCo
final ServletContext appServletContext = new MockServletContext();
final HttpSession appSession = new MockHttpSession();
- if (configuration.isStartDefaultScopes()) {
+ if (configuration.isStartDefaultScopes() && appCtx.getWebBeansContext() != null) {
startContexts(appCtx.getWebBeansContext().getContextsService(), appServletContext, appSession);
}
@@ -375,7 +375,7 @@ public class OpenEJBDeployableContainer implements DeployableContainer<OpenEJBCo
if (!configuration.isSingleDeploymentByArchiveName(archive.getName())) {
assembler.destroyApplication(info.get().path);
}
- if (configuration.isStartDefaultScopes()) {
+ if (configuration.isStartDefaultScopes() && ctx.getWebBeansContext() != null) {
stopContexts(ctx.getWebBeansContext().getContextsService(), servletContext.get(), session.get());
}
} catch (final Exception e) {
http://git-wip-us.apache.org/repos/asf/tomee/blob/60a2e64f/arquillian/arquillian-openejb-embedded/src/main/java/org/apache/openejb/arquillian/openejb/OpenEJBInjectionEnricher.java
----------------------------------------------------------------------
diff --git a/arquillian/arquillian-openejb-embedded/src/main/java/org/apache/openejb/arquillian/openejb/OpenEJBInjectionEnricher.java b/arquillian/arquillian-openejb-embedded/src/main/java/org/apache/openejb/arquillian/openejb/OpenEJBInjectionEnricher.java
index a571381..c60aaff 100644
--- a/arquillian/arquillian-openejb-embedded/src/main/java/org/apache/openejb/arquillian/openejb/OpenEJBInjectionEnricher.java
+++ b/arquillian/arquillian-openejb-embedded/src/main/java/org/apache/openejb/arquillian/openejb/OpenEJBInjectionEnricher.java
@@ -55,6 +55,9 @@ public class OpenEJBInjectionEnricher implements TestEnricher {
final List<AppContext> appContexts = SystemInstance.get().getComponent(ContainerSystem.class).getAppContexts();
final Class<?> clazz = testInstance.getClass();
for (final AppContext appContext : appContexts) {
+ if (appContext.getWebBeansContext() == null) {
+ continue;
+ }
try {
final BeanManager bm = appContext.getWebBeansContext().getBeanManagerImpl();
final AnnotatedType<?> at = bm.createAnnotatedType(clazz);
http://git-wip-us.apache.org/repos/asf/tomee/blob/60a2e64f/arquillian/arquillian-tomee-embedded/src/main/java/org/apache/openejb/arquillian/embedded/EmbeddedTomEEContainer.java
----------------------------------------------------------------------
diff --git a/arquillian/arquillian-tomee-embedded/src/main/java/org/apache/openejb/arquillian/embedded/EmbeddedTomEEContainer.java b/arquillian/arquillian-tomee-embedded/src/main/java/org/apache/openejb/arquillian/embedded/EmbeddedTomEEContainer.java
index 3478732..4428d1e 100644
--- a/arquillian/arquillian-tomee-embedded/src/main/java/org/apache/openejb/arquillian/embedded/EmbeddedTomEEContainer.java
+++ b/arquillian/arquillian-tomee-embedded/src/main/java/org/apache/openejb/arquillian/embedded/EmbeddedTomEEContainer.java
@@ -196,7 +196,7 @@ public class EmbeddedTomEEContainer extends TomEEContainer<EmbeddedTomEEConfigur
private void startCdiContexts(final String name) {
final WebBeansContext wbc = this.container.getAppContexts(name).getWebBeansContext();
- if (wbc.getBeanManagerImpl().isInUse()) {
+ if (wbc != null && wbc.getBeanManagerImpl().isInUse()) {
final MockHttpSession session = new MockHttpSession();
wbc.getContextsService().startContext(RequestScoped.class, null);
wbc.getContextsService().startContext(SessionScoped.class, session);
@@ -211,7 +211,7 @@ public class EmbeddedTomEEContainer extends TomEEContainer<EmbeddedTomEEConfigur
final HttpSession session = SESSIONS.remove(name);
if (session != null) {
final WebBeansContext wbc = container.getAppContexts(container.getInfo(name).appId).getWebBeansContext();
- if (wbc.getBeanManagerImpl().isInUse()) {
+ if (wbc != null && wbc.getBeanManagerImpl().isInUse()) {
wbc.getContextsService().startContext(RequestScoped.class, null);
wbc.getContextsService().startContext(SessionScoped.class, session);
wbc.getContextsService().startContext(ConversationScoped.class, null);
http://git-wip-us.apache.org/repos/asf/tomee/blob/60a2e64f/container/openejb-core/src/main/java/org/apache/openejb/Injector.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/Injector.java b/container/openejb-core/src/main/java/org/apache/openejb/Injector.java
index b00e99e..db44d9e 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/Injector.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/Injector.java
@@ -64,19 +64,19 @@ public class Injector {
}
private static <T> void cdiInjections(final BeanContext context, final T object) {
- ThreadContext oldContext = null;
- if (context != null) {
- final ThreadContext callContext = new ThreadContext(context, null, Operation.INJECTION);
- oldContext = ThreadContext.enter(callContext);
+ if (context.getWebBeansContext() == null) {
+ return;
}
+
+ ThreadContext oldContext = null;
+ final ThreadContext callContext = new ThreadContext(context, null, Operation.INJECTION);
+ oldContext = ThreadContext.enter(callContext);
try {
OWBInjector.inject(context.getWebBeansContext().getBeanManagerImpl(), object, null);
} catch (final Throwable t) {
logger().warning("an error occured while injecting the class '" + object.getClass().getName() + "': " + t.getMessage());
} finally {
- if (context != null) {
- ThreadContext.exit(oldContext);
- }
+ ThreadContext.exit(oldContext);
}
}
http://git-wip-us.apache.org/repos/asf/tomee/blob/60a2e64f/container/openejb-core/src/main/java/org/apache/openejb/OpenEjbContainer.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/OpenEjbContainer.java b/container/openejb-core/src/main/java/org/apache/openejb/OpenEjbContainer.java
index 99aaba3..8039dce 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/OpenEjbContainer.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/OpenEjbContainer.java
@@ -118,8 +118,8 @@ public final class OpenEjbContainer extends EJBContainer {
private final Options options;
private final OpenEjbContainer.GlobalContext globalJndiContext;
private final WebBeansContext webBeanContext;
- private final ServletContext servletContext;
- private final HttpSession session;
+ private volatile ServletContext servletContext;
+ private volatile HttpSession session;
private OpenEjbContainer(final Map<?, ?> map, final AppContext appContext) {
webBeanContext = appContext.getWebBeansContext();
@@ -132,12 +132,14 @@ public final class OpenEjbContainer extends EJBContainer {
startNetworkServices();
- servletContext = new MockServletContext();
- session = new MockHttpSession();
- try {
- startContexts(webBeanContext.getContextsService(), servletContext, session);
- } catch (final Exception e) {
- logger().warning("can't start all CDI contexts", e);
+ if (webBeanContext != null) {
+ servletContext = new MockServletContext();
+ session = new MockHttpSession();
+ try {
+ startContexts(webBeanContext.getContextsService(), servletContext, session);
+ } catch (final Exception e) {
+ logger().warning("can't start all CDI contexts", e);
+ }
}
}
@@ -178,10 +180,12 @@ public final class OpenEjbContainer extends EJBContainer {
}
}
- try {
- stopContexts(webBeanContext.getContextsService(), servletContext, session);
- } catch (final Exception e) {
- logger().warning("can't stop all CDI contexts", e);
+ if (webBeanContext != null) {
+ try {
+ stopContexts(webBeanContext.getContextsService(), servletContext, session);
+ } catch (final Exception e) {
+ logger().warning("can't stop all CDI contexts", e);
+ }
}
logger().info("Destroying OpenEJB container");
http://git-wip-us.apache.org/repos/asf/tomee/blob/60a2e64f/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java b/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
index e495f68..be712b4 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
@@ -886,11 +886,13 @@ public class Assembler extends AssemblerTool implements org.apache.openejb.spi.A
propagateApplicationExceptions(appInfo, classLoader, allDeployments);
}
- if ("true".equalsIgnoreCase(appInfo.properties.getProperty("openejb.cdi.activated", "true"))) {
+ if (shouldStartCdi(appInfo)) {
new CdiBuilder().build(appInfo, appContext, allDeployments);
ensureWebBeansContext(appContext);
appJndiContext.bind("app/BeanManager", appContext.getBeanManager());
appContext.getBindings().put("app/BeanManager", appContext.getBeanManager());
+ } else { // ensure we can reuse it in tomcat to remove OWB filters
+ appInfo.properties.setProperty("openejb.cdi.activated", "false");
}
// now cdi is started we can try to bind real validator factory and validator
@@ -1005,9 +1007,7 @@ public class Assembler extends AssemblerTool implements org.apache.openejb.spi.A
logger.info("createApplication.success", appInfo.path);
return appContext;
- } catch (final ValidationException ve) {
- throw ve;
- } catch (final DeploymentException ve) {
+ } catch (final ValidationException | DeploymentException ve) {
throw ve;
} catch (final Throwable t) {
try {
@@ -1019,7 +1019,22 @@ public class Assembler extends AssemblerTool implements org.apache.openejb.spi.A
}
}
+ private boolean shouldStartCdi(final AppInfo appInfo) {
+ if (!"true".equalsIgnoreCase(appInfo.properties.getProperty("openejb.cdi.activated", "true"))) {
+ return false;
+ }
+ for (final EjbJarInfo ejbJarInfo : appInfo.ejbJars) {
+ if (ejbJarInfo.beans != null && !ejbJarInfo.beans.bdas.isEmpty()) {
+ return true;
+ }
+ }
+ return false;
+ }
+
private void validateCdiResourceProducers(final AppContext appContext, final AppInfo info) {
+ if (appContext.getWebBeansContext() == null) {
+ return;
+ }
// validate @Produces @Resource/@PersistenceX/@EJB once all is bound to JNDI - best case - or with our model
if (appContext.isStandaloneModule() && !appContext.getProperties().containsKey("openejb.cdi.skip-resource-validation")) {
final Map<String, Object> bindings =
@@ -1159,7 +1174,7 @@ public class Assembler extends AssemblerTool implements org.apache.openejb.spi.A
try {
// wire up CDI
- if (appContext != null) {
+ if (appContext != null && appContext.getWebBeansContext() != null) {
final BeanManagerImpl beanManager = appContext.getWebBeansContext().getBeanManagerImpl();
if (beanManager.isInUse()) {
creationalContext = beanManager.createCreationalContext(null);
@@ -1614,10 +1629,9 @@ public class Assembler extends AssemblerTool implements org.apache.openejb.spi.A
if (webBeansContext == null) {
webBeansContext = appContext.getWebBeansContext();
}else{
- if(null == appContext.getWebBeansContext()){
+ if (null == appContext.getWebBeansContext()){
appContext.setWebBeansContext(webBeansContext);
- }
-
+ }
return;
}
http://git-wip-us.apache.org/repos/asf/tomee/blob/60a2e64f/container/openejb-core/src/main/java/org/apache/openejb/testing/ApplicationComposers.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/testing/ApplicationComposers.java b/container/openejb-core/src/main/java/org/apache/openejb/testing/ApplicationComposers.java
index 495e7e9..8c6f1a0 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/testing/ApplicationComposers.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/testing/ApplicationComposers.java
@@ -710,7 +710,7 @@ public class ApplicationComposers {
appInfo = SystemInstance.get().getComponent(ConfigurationFactory.class).configureApplication(appModule);
appContext = assembler.createApplication(appInfo);
- if (mockCdiContexts()) {
+ if (mockCdiContexts() && appContext.getWebBeansContext() != null) {
ScopeHelper.startContexts(appContext.getWebBeansContext().getContextsService(), servletContext, session);
}
@@ -899,11 +899,16 @@ public class ApplicationComposers {
Throwable error = null;
try {
- OWBInjector.inject(appContext.getBeanManager(), inputTestInstance, null);
+ if (appContext.getBeanManager() != null) {
+ OWBInjector.inject(appContext.getBeanManager(), inputTestInstance, null);
+ }
} catch (final Throwable t) {
error = t;
}
for (final WebContext web : appContext.getWebContexts()) {
+ if (web.getWebBeansContext() == null) {
+ continue;
+ }
try {
OWBInjector.inject(web.getWebBeansContext().getBeanManagerImpl(), inputTestInstance, null);
// hourra, we enriched correctly the test then cleanup error state and quit
@@ -1036,7 +1041,7 @@ public class ApplicationComposers {
}
public void stopApplication() throws NamingException {
- if (appContext != null) {
+ if (appContext != null && appContext.getWebBeansContext() != null) {
final ContextsService contextsService = appContext.getWebBeansContext().getContextsService();
// No need to stop the ConversationContext manually as it gets stored inside the SessionContext as Bean
contextsService.endContext(SessionScoped.class, session);
@@ -1063,7 +1068,7 @@ public class ApplicationComposers {
globalJndiEntries.clear();
- if (mockCdiContexts() && appContext != null) {
+ if (mockCdiContexts() && appContext != null && appContext.getWebBeansContext() != null) {
try {
ScopeHelper.stopContexts(appContext.getWebBeansContext().getContextsService(), servletContext, session);
} catch (final Exception e) {
http://git-wip-us.apache.org/repos/asf/tomee/blob/60a2e64f/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java
----------------------------------------------------------------------
diff --git a/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java b/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java
index c9169d3..e5c163a 100644
--- a/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java
+++ b/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java
@@ -351,29 +351,32 @@ public class OpenEJBContextConfig extends ContextConfig {
}
}
- {
- final FilterDef filter = new FilterDef();
- filter.setAsyncSupported("true");
- filter.setDescription("OpenEJB CDI Filter - to propagate @RequestScoped in async tasks");
- filter.setDisplayName("OpenEJB CDI");
- filter.setFilterClass(WebBeansFilter.class.getName());
- filter.setFilterName(WebBeansFilter.class.getName());
- webXml.addFilter(filter);
-
- final FilterMap mapping = new FilterMap();
- mapping.setFilterName(filter.getFilterName());
- mapping.addURLPattern("/*");
- webXml.addFilterMapping(mapping);
- }
-
- {
- final FilterDef filter = new FilterDef();
- filter.setAsyncSupported("true");
- filter.setDescription("CDI Conversation Filter");
- filter.setDisplayName("CDI Conversation Filter");
- filter.setFilterName("CDI Conversation Filter");
- filter.setFilterClass(WebConversationFilter.class.getName());
- webXml.addFilter(filter);
+ final AppInfo app = info.app();
+ if (app == null || !"false".equals(app.properties.getProperty("openejb.cdi.activated"))) {
+ {
+ final FilterDef filter = new FilterDef();
+ filter.setAsyncSupported("true");
+ filter.setDescription("OpenEJB CDI Filter - to propagate @RequestScoped in async tasks");
+ filter.setDisplayName("OpenEJB CDI");
+ filter.setFilterClass(WebBeansFilter.class.getName());
+ filter.setFilterName(WebBeansFilter.class.getName());
+ webXml.addFilter(filter);
+
+ final FilterMap mapping = new FilterMap();
+ mapping.setFilterName(filter.getFilterName());
+ mapping.addURLPattern("/*");
+ webXml.addFilterMapping(mapping);
+ }
+
+ {
+ final FilterDef filter = new FilterDef();
+ filter.setAsyncSupported("true");
+ filter.setDescription("CDI Conversation Filter");
+ filter.setDisplayName("CDI Conversation Filter");
+ filter.setFilterName("CDI Conversation Filter");
+ filter.setFilterClass(WebConversationFilter.class.getName());
+ webXml.addFilter(filter);
+ }
}
return webXml;
http://git-wip-us.apache.org/repos/asf/tomee/blob/60a2e64f/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatJndiBuilder.java
----------------------------------------------------------------------
diff --git a/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatJndiBuilder.java b/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatJndiBuilder.java
index cb8c774..35b8adb 100644
--- a/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatJndiBuilder.java
+++ b/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatJndiBuilder.java
@@ -65,6 +65,7 @@ import org.apache.tomee.common.ResourceFactory;
import org.apache.tomee.common.SystemComponentFactory;
import org.apache.tomee.common.UserTransactionFactory;
import org.apache.tomee.common.WsFactory;
+import org.apache.webbeans.config.WebBeansContext;
import org.apache.webbeans.container.InjectableBeanManager;
import org.omg.CORBA.ORB;
@@ -273,7 +274,10 @@ public class TomcatJndiBuilder {
if (webContext != null && webContext.getWebbeansContext() != null) {
comp.rebind("BeanManager", new InjectableBeanManager(webContext.getWebbeansContext().getBeanManagerImpl()));
} else if (contextInfo != null) {
- comp.rebind("BeanManager", new InjectableBeanManager(cs.getAppContext(contextInfo.appInfo.appId).getWebBeansContext().getBeanManagerImpl()));
+ final WebBeansContext webBeansContext = cs.getAppContext(contextInfo.appInfo.appId).getWebBeansContext();
+ if (webBeansContext != null) { // can be null if cdi is inhibited
+ comp.rebind("BeanManager", new InjectableBeanManager(webBeansContext.getBeanManagerImpl()));
+ }
}
} catch (final Exception ignored) {
ignored.printStackTrace();
http://git-wip-us.apache.org/repos/asf/tomee/blob/60a2e64f/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java
----------------------------------------------------------------------
diff --git a/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java b/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java
index 847f4f6..329106c 100644
--- a/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java
+++ b/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java
@@ -1183,6 +1183,7 @@ public class TomcatWebAppBuilder implements WebAppBuilder, ContextListener, Pare
contextInfo.standardContext = standardContext; // ensure to do it before an exception can be thrown
contextInfo.appInfo = configurationFactory.configureApplication(appModule);
+
final Boolean autoDeploy = DeployerEjb.AUTO_DEPLOY.get();
contextInfo.appInfo.autoDeploy = autoDeploy == null || autoDeploy;
DeployerEjb.AUTO_DEPLOY.remove();
[2/2] tomee git commit: adding HttpSessionIdListener in web component
Posted by rm...@apache.org.
adding HttpSessionIdListener in web component
Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/ac8c6590
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/ac8c6590
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/ac8c6590
Branch: refs/heads/master
Commit: ac8c65906b658cf87087f4274cd90c39a7deee79
Parents: 43581f4
Author: Romain Manni-Bucau <rm...@apache.org>
Authored: Tue Jun 16 09:53:36 2015 +0200
Committer: Romain Manni-Bucau <rm...@apache.org>
Committed: Tue Jun 16 10:34:38 2015 +0200
----------------------------------------------------------------------
.../src/main/java/org/apache/openejb/core/WebContext.java | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tomee/blob/ac8c6590/container/openejb-core/src/main/java/org/apache/openejb/core/WebContext.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/core/WebContext.java b/container/openejb-core/src/main/java/org/apache/openejb/core/WebContext.java
index 4811751..8674bfa 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/core/WebContext.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/core/WebContext.java
@@ -39,6 +39,7 @@ import javax.servlet.ServletContextListener;
import javax.servlet.ServletRequestAttributeListener;
import javax.servlet.ServletRequestListener;
import javax.servlet.http.HttpSessionAttributeListener;
+import javax.servlet.http.HttpSessionIdListener;
import java.lang.annotation.Annotation;
import java.util.ArrayList;
import java.util.Collection;
@@ -173,9 +174,9 @@ public class WebContext {
if (beanDefinition == null) {
final AnnotatedType annotatedType = webBeansContext.getAnnotatedElementFactory().newAnnotatedType(beanClass);
if (isWeb(beanClass)) {
- beanDefinition = new ConstructorInjectionBean<Object>(webBeansContext, beanClass, annotatedType, false);
+ beanDefinition = new ConstructorInjectionBean<>(webBeansContext, beanClass, annotatedType, false);
} else {
- beanDefinition = new ConstructorInjectionBean<Object>(webBeansContext, beanClass, annotatedType);
+ beanDefinition = new ConstructorInjectionBean<>(webBeansContext, beanClass, annotatedType);
}
constructorInjectionBeanCache.put(beanClass, beanDefinition);
@@ -193,6 +194,7 @@ public class WebContext {
|| HttpSessionAttributeListener.class.isAssignableFrom(beanClass)
|| ServletRequestListener.class.isAssignableFrom(beanClass)
|| ServletContextAttributeListener.class.isAssignableFrom(beanClass)
+ || HttpSessionIdListener.class.isAssignableFrom(beanClass)
|| ServletRequestAttributeListener.class.isAssignableFrom(beanClass);
}