[jboss-cvs] JBossAS SVN: r74066 - projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Tue Jun 3 22:47:19 EDT 2008


Author: scott.stark at jboss.org
Date: 2008-06-03 22:47:19 -0400 (Tue, 03 Jun 2008)
New Revision: 74066

Modified:
   projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/EJBContainer.java
   projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/Ejb3Deployment.java
Log:
EJBTHREE-1392, allow the deployment to specify the injection handler collection

Modified: projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/EJBContainer.java
===================================================================
--- projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/EJBContainer.java	2008-06-04 02:38:38 UTC (rev 74065)
+++ projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/EJBContainer.java	2008-06-04 02:47:19 UTC (rev 74066)
@@ -540,14 +540,18 @@
       // XML must be done first so that any annotation overrides are initialized
       
       // todo injection handlers should be pluggable from XML
-      Collection<InjectionHandler<Environment>> handlers = new ArrayList<InjectionHandler<Environment>>();
-      handlers.add(new EJBHandler<Environment>());
-      handlers.add(new DependsHandler<Environment>());
-      handlers.add(new JndiInjectHandler<Environment>());
-      handlers.add(new PersistenceContextHandler<Environment>());
-      handlers.add(new PersistenceUnitHandler<Environment>());
-      handlers.add(new ResourceHandler<Environment>());
-      handlers.add(new WebServiceRefHandler<Environment>());
+      Collection<InjectionHandler<Environment>> handlers = this.deployment.getHandlers();
+      if(handlers == null)
+      {
+         handlers = new ArrayList<InjectionHandler<Environment>>();
+         handlers.add(new EJBHandler<Environment>());
+         handlers.add(new DependsHandler<Environment>());
+         handlers.add(new JndiInjectHandler<Environment>());
+         handlers.add(new PersistenceContextHandler<Environment>());
+         handlers.add(new PersistenceUnitHandler<Environment>());
+         handlers.add(new ResourceHandler<Environment>());
+         handlers.add(new WebServiceRefHandler<Environment>());
+      }
 
       ClassLoader old = Thread.currentThread().getContextClassLoader();
       Thread.currentThread().setContextClassLoader(classloader);

Modified: projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/Ejb3Deployment.java
===================================================================
--- projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/Ejb3Deployment.java	2008-06-04 02:38:38 UTC (rev 74065)
+++ projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/Ejb3Deployment.java	2008-06-04 02:47:19 UTC (rev 74066)
@@ -25,6 +25,7 @@
 import java.io.DataInputStream;
 import java.io.InputStream;
 import java.util.ArrayList;
+import java.util.Collection;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.LinkedHashMap;
@@ -55,6 +56,7 @@
 import org.jboss.ejb3.pool.PoolFactoryRegistry;
 import org.jboss.ejb3.proxy.factory.ProxyFactoryHelper;
 import org.jboss.ejb3.proxy.factory.RemoteProxyFactoryRegistry;
+import org.jboss.injection.InjectionHandler;
 import org.jboss.logging.Logger;
 import org.jboss.metadata.ejb.jboss.JBossEnterpriseBeanMetaData;
 import org.jboss.metadata.ejb.jboss.JBossGenericBeanMetaData;
@@ -62,6 +64,7 @@
 import org.jboss.metadata.ejb.jboss.JBossMessageDrivenBeanMetaData;
 import org.jboss.metadata.ejb.jboss.JBossMetaData;
 import org.jboss.metadata.ejb.jboss.JBossSessionBeanMetaData;
+import org.jboss.metadata.javaee.spec.Environment;
 import org.jboss.metadata.javaee.spec.MessageDestinationsMetaData;
 import org.jboss.metadata.jpa.spec.PersistenceMetaData;
 import org.jboss.metadata.jpa.spec.PersistenceUnitMetaData;
@@ -432,6 +435,17 @@
    protected abstract void putJaccInService(PolicyConfiguration pc, DeploymentUnit unit);
 
    /**
+    * Return the container injection handler collection. If not specified(null)
+    * a default handler collection will be created.
+    * @return the injection handler collection to use, null if the container
+    *    should use a default setup.
+    */
+   protected Collection<InjectionHandler<Environment>> getHandlers()
+   {
+      return null;
+   }
+
+   /**
     * Create all EJB containers and Persistence Units
     * The only things that should be initialized is metadata that does not need access to any
     * other deployment.  This is because we want the entire EAR to be initialized so that we do not




More information about the jboss-cvs-commits mailing list