[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