[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