[jboss-cvs] JBossAS SVN: r92799 - in trunk/tomcat/src/main/org/jboss/web/tomcat/service: deployers and 1 other directory.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Tue Aug 25 12:21:17 EDT 2009
Author: marius.bogoevici
Date: 2009-08-25 12:21:15 -0400 (Tue, 25 Aug 2009)
New Revision: 92799
Modified:
trunk/tomcat/src/main/org/jboss/web/tomcat/service/TomcatInjectionContainer.java
trunk/tomcat/src/main/org/jboss/web/tomcat/service/deployers/TomcatDeployment.java
Log:
Merging Servlet/WebBeans integration into trunk
Modified: trunk/tomcat/src/main/org/jboss/web/tomcat/service/TomcatInjectionContainer.java
===================================================================
--- trunk/tomcat/src/main/org/jboss/web/tomcat/service/TomcatInjectionContainer.java 2009-08-25 16:18:04 UTC (rev 92798)
+++ trunk/tomcat/src/main/org/jboss/web/tomcat/service/TomcatInjectionContainer.java 2009-08-25 16:21:15 UTC (rev 92799)
@@ -21,6 +21,13 @@
*/
package org.jboss.web.tomcat.service;
+import javax.naming.Context;
+import javax.naming.InitialContext;
+import javax.naming.NameNotFoundException;
+import javax.naming.NamingException;
+import javax.servlet.Filter;
+import javax.servlet.Servlet;
+
import java.io.IOException;
import java.io.InputStream;
import java.lang.annotation.Annotation;
@@ -36,14 +43,8 @@
import java.util.Map;
import java.util.Properties;
import java.util.Set;
+import java.util.Collections;
-import javax.naming.Context;
-import javax.naming.InitialContext;
-import javax.naming.NameNotFoundException;
-import javax.naming.NamingException;
-import javax.servlet.Filter;
-import javax.servlet.Servlet;
-
import org.apache.InstanceManager;
import org.jboss.deployers.structure.spi.DeploymentUnit;
import org.jboss.deployers.vfs.spi.structure.VFSDeploymentUnit;
@@ -140,7 +141,9 @@
private static final Properties restrictedFilters = new Properties();
private static final Properties restrictedListeners = new Properties();
private static final Properties restrictedServlets = new Properties();
+ private List<Injector> defaultInjectors;
+
static
{
try
@@ -214,6 +217,11 @@
}
+ public void setDefaultInjectors(List<Injector> injectors)
+ {
+ this.defaultInjectors = Collections.unmodifiableList(injectors);
+ }
+
private void checkAccess(Class<?> clazz)
{
if (catalinaContext.getPrivileged())
@@ -348,24 +356,33 @@
*
* @param object the object
*/
- public void processInjectors(Object object)
- {
- final boolean trace = log.isTraceEnabled();
+ public void processInjectors(Object object)
+ {
+ final boolean trace = log.isTraceEnabled();
- Map<AccessibleObject, Injector> injectors = getEncInjectionsForObject(object);
- if (injectors == null || injectors.size() == 0)
- {
+ final ArrayList<Injector> allInjectors = new ArrayList<Injector>();
+ Map<AccessibleObject, Injector> injectors = getEncInjectionsForObject(object);
+ if (injectors != null && injectors.size() > 0)
+ {
+ allInjectors.addAll(injectors.values());
+ }
+ if (defaultInjectors != null && defaultInjectors.size() > 0)
+ {
+ allInjectors.addAll(defaultInjectors);
+ }
+ if (allInjectors.size() == 0)
+ {
+ if (trace)
+ log.trace("-- no injectors found for: " + object);
+ return;
+ }
if (trace)
- log.trace("-- no injectors found for: " + object);
- return;
+ log.trace("-- doing injections for: " + object);
+ for (Injector injector : allInjectors)
+ {
+ injector.inject(object);
+ }
}
- if (trace)
- log.trace("-- doing injections for: " + object);
- for (Injector injector : injectors.values())
- {
- injector.inject(object);
- }
- }
/**
* Process annotations for dynamic beans only.
Modified: trunk/tomcat/src/main/org/jboss/web/tomcat/service/deployers/TomcatDeployment.java
===================================================================
--- trunk/tomcat/src/main/org/jboss/web/tomcat/service/deployers/TomcatDeployment.java 2009-08-25 16:18:04 UTC (rev 92798)
+++ trunk/tomcat/src/main/org/jboss/web/tomcat/service/deployers/TomcatDeployment.java 2009-08-25 16:21:15 UTC (rev 92799)
@@ -21,6 +21,13 @@
*/
package org.jboss.web.tomcat.service.deployers;
+import javax.management.Attribute;
+import javax.management.MBeanServer;
+import javax.management.ObjectName;
+import javax.naming.Context;
+import javax.naming.InitialContext;
+import javax.naming.LinkRef;
+
import java.io.File;
import java.io.IOException;
import java.net.MalformedURLException;
@@ -29,27 +36,24 @@
import java.security.CodeSource;
import java.security.cert.Certificate;
import java.util.ArrayList;
+import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import java.util.zip.ZipFile;
-import javax.management.Attribute;
-import javax.management.MBeanServer;
-import javax.management.ObjectName;
-import javax.naming.Context;
-import javax.naming.InitialContext;
-import javax.naming.LinkRef;
import org.apache.catalina.LifecycleEvent;
import org.apache.catalina.LifecycleListener;
import org.apache.catalina.Loader;
import org.apache.catalina.core.StandardContext;
import org.apache.tomcat.util.modeler.Registry;
+import org.jboss.dependency.spi.ControllerContext;
import org.jboss.deployers.spi.DeploymentException;
import org.jboss.deployers.structure.spi.DeploymentUnit;
import org.jboss.deployers.vfs.spi.structure.VFSDeploymentUnit;
+import org.jboss.injection.Injector;
import org.jboss.logging.Logger;
import org.jboss.metadata.web.jboss.JBossWebMetaData;
import org.jboss.mx.util.MBeanServerLocator;
@@ -170,6 +174,13 @@
DeploymentUnit depUnit = webApp.getDeploymentUnit();
TomcatInjectionContainer injectionContainer = new TomcatInjectionContainer(webApp, depUnit, context, getPersistenceUnitDependencyResolver());
+ if (kernel != null) {
+ ControllerContext injectorControllerContext = kernel.getController().getInstalledContext(unit.getName() + "_WBInjector");
+ if (injectorControllerContext != null) {
+ injectionContainer.setDefaultInjectors(Collections.singletonList((Injector)injectorControllerContext.getTarget()));
+ }
+ }
+
Loader webLoader = depUnit.getAttachment(Loader.class);
if (webLoader == null)
webLoader = getWebLoader(depUnit, metaData, loader, warUrl, injectionContainer);
More information about the jboss-cvs-commits
mailing list