[jboss-cvs] JBossAS SVN: r107818 - in trunk/weld-int: deployer/src/main/java/org/jboss/weld/integration/deployer/env and 4 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu Aug 26 16:42:11 EDT 2010


Author: flavia.rainone at jboss.com
Date: 2010-08-26 16:42:10 -0400 (Thu, 26 Aug 2010)
New Revision: 107818

Added:
   trunk/weld-int/deployer/src/test/java/org/jboss/test/deployers/support/MockEjbInjectionServices.java
   trunk/weld-int/ejb/src/main/java/org/jboss/weld/integration/ejb/JBossEjbInjectionServices.java
Modified:
   trunk/weld-int/assembly/src/main/assembly/resources/META-INF/weld-services-jboss-beans.xml
   trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/env/BootstrapInfo.java
   trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/env/EjbServicesDeployer.java
   trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/env/WeldBootstrapDeployer.java
   trunk/weld-int/deployer/src/test/java/org/jboss/test/deployers/support/MockEjbServices.java
   trunk/weld-int/deployer/src/test/java/org/jboss/test/deployers/test/DeploymentEnvironmentTestCase.java
   trunk/weld-int/deployer/src/test/java/org/jboss/test/deployers/test/LoadBeanDeploymentArchiveTestCase.java
   trunk/weld-int/deployer/src/test/resources/org/jboss/test/deployers/test/BasicEarJBossDeploymentTestCase.xml
   trunk/weld-int/deployer/src/test/resources/org/jboss/test/deployers/test/DeploymentEnvironmentTestCase.xml
   trunk/weld-int/deployer/src/test/resources/org/jboss/test/deployers/test/FlatDeploymentTestCase.xml
   trunk/weld-int/deployer/src/test/resources/org/jboss/test/deployers/test/LoadBeanDeploymentArchiveTestCase.xml
   trunk/weld-int/ejb/src/main/java/org/jboss/weld/integration/ejb/JBossEjbServices.java
Log:
[JBAS-8364] Split JBossEjBServices into JBossEjbServices (implements EjbServices) and JBossEjbInjectionServices (implements EjbInjectionServices)

Modified: trunk/weld-int/assembly/src/main/assembly/resources/META-INF/weld-services-jboss-beans.xml
===================================================================
--- trunk/weld-int/assembly/src/main/assembly/resources/META-INF/weld-services-jboss-beans.xml	2010-08-26 19:58:12 UTC (rev 107817)
+++ trunk/weld-int/assembly/src/main/assembly/resources/META-INF/weld-services-jboss-beans.xml	2010-08-26 20:42:10 UTC (rev 107818)
@@ -8,11 +8,17 @@
    <!-- EJB Services Utility class -->
    <bean name="WeldJBossEjb" class="org.jboss.weld.integration.util.JBossEjb"/>
 
-   <!-- EJB Services: @EJB-style injection lookup -->
+   <!-- EJB Services: @EJB-style lookup -->
    <beanfactory name="JBossEjbServices" class="org.jboss.weld.integration.ejb.JBossEjbServices">
       <property name="resolver"><inject bean="WeldJBossEjb" property="resolver"/></property>
       <property name="jbossEjb"><inject bean="WeldJBossEjb" /></property>
    </beanfactory>
+   
+   <!-- EJB Injection Services: @EJB-style injection -->
+   <beanfactory name="JBossEjbInjectionServices" class="org.jboss.weld.integration.ejb.JBossEjbInjectionServices">
+      <property name="resolver"><inject bean="WeldJBossEjb" property="resolver"/></property>
+      <property name="jbossEjb"><inject bean="WeldJBossEjb" /></property>
+   </beanfactory>
   
    <!-- JPA Services: @PersistenceContext-style and @PersistenceUnit-style lookup -->
    <beanfactory name="JBossJpaServices" class="org.jboss.weld.integration.persistence.JBossJpaServices">

Modified: trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/env/BootstrapInfo.java
===================================================================
--- trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/env/BootstrapInfo.java	2010-08-26 19:58:12 UTC (rev 107817)
+++ trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/env/BootstrapInfo.java	2010-08-26 20:42:10 UTC (rev 107818)
@@ -34,6 +34,9 @@
    private ValueMetaData ejbServices;
    public static final String EJB_SERVICES = BootstrapInfo.class.getSimpleName() + "EJB_SERVICES";
 
+   private ValueMetaData ejbInjectionServices;
+   public static final String EJB_INJECTION_SERVICES = BootstrapInfo.class.getSimpleName() + "EJB_INJECTION_SERVICES";
+
    private ValueMetaData deployment;
    public static final String DEPLOYMENT = BootstrapInfo.class.getSimpleName() + "DEPLOYMENT";
 
@@ -60,6 +63,16 @@
       this.ejbServices = ejbServices;
    }
 
+   public ValueMetaData getEjbInjectionServices()
+   {
+      return ejbInjectionServices;
+   }
+
+   public void setEjbInjectionServices(ValueMetaData ejbInjectionServices)
+   {
+      this.ejbInjectionServices = ejbInjectionServices;
+   }
+
    public ValueMetaData getServletServices()
    {
       return servletServices;

Modified: trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/env/EjbServicesDeployer.java
===================================================================
--- trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/env/EjbServicesDeployer.java	2010-08-26 19:58:12 UTC (rev 107817)
+++ trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/env/EjbServicesDeployer.java	2010-08-26 20:42:10 UTC (rev 107818)
@@ -35,6 +35,9 @@
    /** The ejb services class name */
    private String ejbServicesClassName = "org.jboss.weld.integration.ejb.JBossEjbServices";
 
+   /** The ejb injection services class name */
+   private String ejbInjectionServicesClassName = "org.jboss.weld.integration.ejb.JBossEjbInjectionServices";
+
    public EjbServicesDeployer()
    {
       super(true);
@@ -45,6 +48,9 @@
    {
       ValueMetaData ejbServicesValue = createServiceConnector("JBossEjbServices", ejbServicesClassName, unit);
       info.setEjbServices(ejbServicesValue);
+
+      ValueMetaData ejbInjectionServicesValue = createServiceConnector("JBossEjbInjectionServices", ejbInjectionServicesClassName, unit);
+      info.setEjbInjectionServices(ejbInjectionServicesValue);
    }
 
    /**
@@ -56,4 +62,14 @@
    {
       this.ejbServicesClassName = ejbServicesClassName;
    }
+
+   /**
+    * Set ejb injection services class name.
+    *
+    * @param ejbInjectionServicesClassName the ejb injection services classname
+    */
+   public void setEjbInjectionServicesClassName(String ejbInjectionServicesClassName)
+   {
+      this.ejbInjectionServicesClassName = ejbInjectionServicesClassName;
+   }
 }
\ No newline at end of file

Modified: trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/env/WeldBootstrapDeployer.java
===================================================================
--- trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/env/WeldBootstrapDeployer.java	2010-08-26 19:58:12 UTC (rev 107817)
+++ trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/env/WeldBootstrapDeployer.java	2010-08-26 20:42:10 UTC (rev 107818)
@@ -29,6 +29,7 @@
 import org.jboss.deployers.spi.DeploymentException;
 import org.jboss.deployers.structure.spi.DeploymentUnit;
 import org.jboss.weld.bootstrap.api.Bootstrap;
+import org.jboss.weld.bootstrap.spi.Deployment;
 import org.jboss.weld.context.api.BeanStore;
 import org.jboss.weld.context.api.helpers.ConcurrentHashMapBeanStore;
 import org.jboss.weld.integration.deployer.DeployersUtils;
@@ -58,6 +59,10 @@
       if (ejbServicesValue == null)
          throw new DeploymentException("Missing ejb services: " + unit);
 
+      ValueMetaData ejbInjectionServicesValue = info.getEjbInjectionServices();
+      if (ejbInjectionServicesValue == null)
+         throw new DeploymentException("Missing ejb injection services: " + unit);
+
       ValueMetaData deploymentValue = info.getDeployment();
       if (deploymentValue == null)
          throw new DeploymentException("Missing deployment: " + unit);
@@ -68,7 +73,7 @@
       bootstrap.addConstructorParameter(Bootstrap.class.getName(), createBootstrap(unit));
       bootstrap.addConstructorParameter(FlatDeployment.class.getName(), deploymentValue);
       bootstrap.addPropertyMetaData("ejbServices", ejbServicesValue);
-      bootstrap.addPropertyMetaData("ejbInjectionServices", ejbServicesValue);
+      bootstrap.addPropertyMetaData("ejbInjectionServices", ejbInjectionServicesValue);
       bootstrap.addPropertyMetaData("jpaServices", createServiceConnector("JBossJpaServices", "org.jboss.weld.integration.persistence.JBossJpaServices", unit));
       bootstrap.addPropertyMetaData("resourceServices", bootstrap.createInject("JBossResourceServices"));
       bootstrap.addPropertyMetaData("transactionServices", bootstrap.createInject("JBossTransactionServices"));

Added: trunk/weld-int/deployer/src/test/java/org/jboss/test/deployers/support/MockEjbInjectionServices.java
===================================================================
--- trunk/weld-int/deployer/src/test/java/org/jboss/test/deployers/support/MockEjbInjectionServices.java	                        (rev 0)
+++ trunk/weld-int/deployer/src/test/java/org/jboss/test/deployers/support/MockEjbInjectionServices.java	2010-08-26 20:42:10 UTC (rev 107818)
@@ -0,0 +1,92 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.test.deployers.support;
+
+import java.util.Collections;
+
+import javax.enterprise.inject.spi.InjectionPoint;
+
+import org.jboss.deployers.structure.spi.DeploymentUnit;
+import org.jboss.weld.ejb.api.SessionObjectReference;
+import org.jboss.weld.ejb.spi.EjbDescriptor;
+import org.jboss.weld.ejb.spi.EjbServices;
+import org.jboss.weld.ejb.spi.InterceptorBindings;
+import org.jboss.weld.injection.spi.EjbInjectionServices;
+
+/**
+ * @author <a href="mailto:ales.justin at jboss.org">Ales Justin</a>
+ * @author <a href="mailto:flavia.rainone at jboss.com">Flavia Rainone</a>
+ */
+public class MockEjbInjectionServices implements EjbInjectionServices
+{
+   public void setDeploymentUnit(DeploymentUnit unit)
+   {
+   }
+
+   public Object resolveEjb(InjectionPoint injectionPoint)
+   {
+      return null;
+   }
+
+   public Object resolvePersistenceContext(InjectionPoint injectionPoint)
+   {
+      return null;
+   }
+
+   public Object resolveResource(InjectionPoint injectionPoint)
+   {
+      return null;
+   }
+
+   public void removeEjb(Object instance)
+   {
+   }
+
+   public SessionObjectReference resolveEjb(EjbDescriptor<?> descriptor)
+   {
+      return null;
+   }
+
+   public void registerInterceptors(EjbDescriptor<?> ejbDescriptor, InterceptorBindings interceptorBindings)
+   {
+      // do nothing
+   }
+
+   public Iterable<EjbDescriptor<?>> getEjbs()
+   {
+      return Collections.emptySet();
+   }
+
+   public Object resolveRemoteEjb(String jndiName, String mappedName, String ejbLink)
+   {
+      return null;
+   }
+
+   public Iterable<String> getEjbContainerNames()
+   {
+      return Collections.emptySet();
+   }
+   
+   
+   public void cleanup() {}
+
+}
\ No newline at end of file


Property changes on: trunk/weld-int/deployer/src/test/java/org/jboss/test/deployers/support/MockEjbInjectionServices.java
___________________________________________________________________
Name: svn:keywords
   + Author Date Id Revision
Name: svn:eol-style
   + native

Modified: trunk/weld-int/deployer/src/test/java/org/jboss/test/deployers/support/MockEjbServices.java
===================================================================
--- trunk/weld-int/deployer/src/test/java/org/jboss/test/deployers/support/MockEjbServices.java	2010-08-26 19:58:12 UTC (rev 107817)
+++ trunk/weld-int/deployer/src/test/java/org/jboss/test/deployers/support/MockEjbServices.java	2010-08-26 20:42:10 UTC (rev 107818)
@@ -30,22 +30,17 @@
 import org.jboss.weld.ejb.spi.EjbDescriptor;
 import org.jboss.weld.ejb.spi.EjbServices;
 import org.jboss.weld.ejb.spi.InterceptorBindings;
-import org.jboss.weld.injection.spi.EjbInjectionServices;
 
 /**
  * @author <a href="mailto:ales.justin at jboss.org">Ales Justin</a>
+ * @author <a href="mailto:flavia.rainone at jboss.com">Flavia Rainone</a>
  */
-public class MockEjbServices implements EjbServices, EjbInjectionServices
+public class MockEjbServices implements EjbServices
 {
    public void setDeploymentUnit(DeploymentUnit unit)
    {
    }
 
-   public Object resolveEjb(InjectionPoint injectionPoint)
-   {
-      return null;
-   }
-
    public Object resolvePersistenceContext(InjectionPoint injectionPoint)
    {
       return null;

Modified: trunk/weld-int/deployer/src/test/java/org/jboss/test/deployers/test/DeploymentEnvironmentTestCase.java
===================================================================
--- trunk/weld-int/deployer/src/test/java/org/jboss/test/deployers/test/DeploymentEnvironmentTestCase.java	2010-08-26 19:58:12 UTC (rev 107817)
+++ trunk/weld-int/deployer/src/test/java/org/jboss/test/deployers/test/DeploymentEnvironmentTestCase.java	2010-08-26 20:42:10 UTC (rev 107818)
@@ -31,6 +31,7 @@
 import org.jboss.shrinkwrap.api.ShrinkWrap;
 import org.jboss.shrinkwrap.api.spec.JavaArchive;
 import org.jboss.test.deployers.support.CheckableBootstrap;
+import org.jboss.test.deployers.support.MockEjbInjectionServices;
 import org.jboss.test.deployers.support.MockEjbServices;
 import org.jboss.test.deployers.support.MockEmptyEjbServices;
 import org.jboss.test.deployers.support.MockTransactionServices;
@@ -73,6 +74,7 @@
       mockJar.addClass(CheckableBootstrap.class);
       mockJar.addClass(MockEjbServices.class);
       mockJar.addClass(MockEmptyEjbServices.class);
+      mockJar.addClass(MockEjbInjectionServices.class);
       mockJar.addClass(MockTransactionServices.class);
       mockJar.addClass(MockWeldBootstrap.class);
       mockJar.addClass(WeldDEWrapper.class);

Modified: trunk/weld-int/deployer/src/test/java/org/jboss/test/deployers/test/LoadBeanDeploymentArchiveTestCase.java
===================================================================
--- trunk/weld-int/deployer/src/test/java/org/jboss/test/deployers/test/LoadBeanDeploymentArchiveTestCase.java	2010-08-26 19:58:12 UTC (rev 107817)
+++ trunk/weld-int/deployer/src/test/java/org/jboss/test/deployers/test/LoadBeanDeploymentArchiveTestCase.java	2010-08-26 20:42:10 UTC (rev 107818)
@@ -34,6 +34,7 @@
 import org.jboss.shrinkwrap.api.spec.WebArchive;
 import org.jboss.test.deployers.support.CheckableBootstrap;
 import org.jboss.test.deployers.support.MockArchiveManifest;
+import org.jboss.test.deployers.support.MockEjbInjectionServices;
 import org.jboss.test.deployers.support.MockEjbServices;
 import org.jboss.test.deployers.support.MockEmptyEjbServices;
 import org.jboss.test.deployers.support.MockTransactionServices;
@@ -78,6 +79,7 @@
       mockJar.addClass(CheckableBootstrap.class);
       mockJar.addClass(MockEjbServices.class);
       mockJar.addClass(MockEmptyEjbServices.class);
+      mockJar.addClass(MockEjbInjectionServices.class);
       mockJar.addClass(MockTransactionServices.class);
       mockJar.addClass(MockWeldBootstrap.class);
       mockJar.addClass(WeldDEWrapper.class);

Modified: trunk/weld-int/deployer/src/test/resources/org/jboss/test/deployers/test/BasicEarJBossDeploymentTestCase.xml
===================================================================
--- trunk/weld-int/deployer/src/test/resources/org/jboss/test/deployers/test/BasicEarJBossDeploymentTestCase.xml	2010-08-26 19:58:12 UTC (rev 107817)
+++ trunk/weld-int/deployer/src/test/resources/org/jboss/test/deployers/test/BasicEarJBossDeploymentTestCase.xml	2010-08-26 20:42:10 UTC (rev 107818)
@@ -10,9 +10,11 @@
   <bean name="ArchiveDiscoveryDeployer" class="org.jboss.weld.integration.deployer.env.ArchiveDiscoveryDeployer"/>
 
   <beanfactory name="JBossEjbServices" class="org.jboss.test.deployers.support.MockEmptyEjbServices"/>
+  <beanfactory name="JBossEjbInjectionServices" class="org.jboss.test.deployers.support.MockEjbInjectionServices"/>
 
   <bean name="EjbServicesDeployer" class="org.jboss.weld.integration.deployer.env.EjbServicesDeployer">
     <property name="ejbServicesClassName">org.jboss.test.deployers.support.MockEmptyEjbServices</property>
+    <property name="ejbInjectionServicesClassName">org.jboss.test.deployers.support.MockEjbInjectionServices</property>
   </bean>
 
   <!-- Target of the Test -->

Modified: trunk/weld-int/deployer/src/test/resources/org/jboss/test/deployers/test/DeploymentEnvironmentTestCase.xml
===================================================================
--- trunk/weld-int/deployer/src/test/resources/org/jboss/test/deployers/test/DeploymentEnvironmentTestCase.xml	2010-08-26 19:58:12 UTC (rev 107817)
+++ trunk/weld-int/deployer/src/test/resources/org/jboss/test/deployers/test/DeploymentEnvironmentTestCase.xml	2010-08-26 20:42:10 UTC (rev 107818)
@@ -10,9 +10,11 @@
   <bean name="ArchiveDiscoveryDeployer" class="org.jboss.weld.integration.deployer.env.ArchiveDiscoveryDeployer"/>
 
   <beanfactory name="JBossEjbServices" class="org.jboss.test.deployers.support.MockEmptyEjbServices"/>
+  <beanfactory name="JBossEjbInjectionServices" class="org.jboss.test.deployers.support.MockEjbInjectionServices"/>
 
   <bean name="EjbServicesDeployer" class="org.jboss.weld.integration.deployer.env.EjbServicesDeployer">
     <property name="ejbServicesClassName">org.jboss.test.deployers.support.MockEmptyEjbServices</property>
+    <property name="ejbInjectionServicesClassName">org.jboss.test.deployers.support.MockEjbInjectionServices</property>
   </bean>
 
   <!-- Target of the Test -->

Modified: trunk/weld-int/deployer/src/test/resources/org/jboss/test/deployers/test/FlatDeploymentTestCase.xml
===================================================================
--- trunk/weld-int/deployer/src/test/resources/org/jboss/test/deployers/test/FlatDeploymentTestCase.xml	2010-08-26 19:58:12 UTC (rev 107817)
+++ trunk/weld-int/deployer/src/test/resources/org/jboss/test/deployers/test/FlatDeploymentTestCase.xml	2010-08-26 20:42:10 UTC (rev 107818)
@@ -8,9 +8,11 @@
   <bean name="WeldDiscoveryDeployer" class="org.jboss.weld.integration.deployer.env.WeldDiscoveryDeployer"/>
 
   <beanfactory name="JBossEjbServices" class="org.jboss.test.deployers.support.MockEmptyEjbServices"/>
+  <beanfactory name="JBossEjbInjectionServices" class="org.jboss.test.deployers.support.MockEjbInjectionServices"/>
 
   <bean name="EjbServicesDeployer" class="org.jboss.weld.integration.deployer.env.EjbServicesDeployer">
     <property name="ejbServicesClassName">org.jboss.test.deployers.support.MockEmptyEjbServices</property>
+    <property name="ejbInjectionServicesClassName">org.jboss.test.deployers.support.MockEjbInjectionServices</property>
   </bean>
 
   <bean name="DeploymentDeployer" class="org.jboss.weld.integration.deployer.env.FlatDeploymentDeployer"/>

Modified: trunk/weld-int/deployer/src/test/resources/org/jboss/test/deployers/test/LoadBeanDeploymentArchiveTestCase.xml
===================================================================
--- trunk/weld-int/deployer/src/test/resources/org/jboss/test/deployers/test/LoadBeanDeploymentArchiveTestCase.xml	2010-08-26 19:58:12 UTC (rev 107817)
+++ trunk/weld-int/deployer/src/test/resources/org/jboss/test/deployers/test/LoadBeanDeploymentArchiveTestCase.xml	2010-08-26 20:42:10 UTC (rev 107818)
@@ -10,9 +10,11 @@
   <bean name="ArchiveDiscoveryDeployer" class="org.jboss.weld.integration.deployer.env.ArchiveDiscoveryDeployer"/>
 
   <beanfactory name="JBossEjbServices" class="org.jboss.test.deployers.support.MockEmptyEjbServices"/>
+  <beanfactory name="JBossEjbInjectionServices" class="org.jboss.test.deployers.support.MockEjbInjectionServices"/>
 
   <bean name="EjbServicesDeployer" class="org.jboss.weld.integration.deployer.env.EjbServicesDeployer">
     <property name="ejbServicesClassName">org.jboss.test.deployers.support.MockEmptyEjbServices</property>
+    <property name="ejbInjectionServicesClassName">org.jboss.test.deployers.support.MockEjbInjectionServices</property>
   </bean>
 
   <!-- Target of the Test -->

Added: trunk/weld-int/ejb/src/main/java/org/jboss/weld/integration/ejb/JBossEjbInjectionServices.java
===================================================================
--- trunk/weld-int/ejb/src/main/java/org/jboss/weld/integration/ejb/JBossEjbInjectionServices.java	                        (rev 0)
+++ trunk/weld-int/ejb/src/main/java/org/jboss/weld/integration/ejb/JBossEjbInjectionServices.java	2010-08-26 20:42:10 UTC (rev 107818)
@@ -0,0 +1,88 @@
+package org.jboss.weld.integration.ejb;
+
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+
+import javax.ejb.EJB;
+import javax.enterprise.inject.spi.InjectionPoint;
+import javax.naming.NamingException;
+
+import org.jboss.ejb3.common.resolvers.spi.EjbReference;
+import org.jboss.ejb3.common.resolvers.spi.EjbReferenceResolver;
+import org.jboss.weld.injection.spi.EjbInjectionServices;
+import org.jboss.weld.integration.util.AbstractJBossServices;
+import org.jboss.weld.integration.vdf.DeploymentUnitAware;
+
+/**
+ * An implementation of EjbInjectionServices for JBoss EJB3
+ *
+ * @author Pete Muir
+ * @author ales.justin at jboss.org
+ * @author Marius Bogoevici
+ * @author <a href="mailto:flavia.rainone at jboss.com">Flavia Rainone </a>
+ */
+public class JBossEjbInjectionServices extends AbstractJBossServices implements EjbInjectionServices, DeploymentUnitAware
+{
+
+   protected EjbReferenceResolver resolver;
+
+   public JBossEjbInjectionServices() throws NamingException
+   {
+      super();
+   }
+
+   public void setResolver(EjbReferenceResolver resolver)
+   {
+      this.resolver = resolver;
+   }
+
+   public Object resolveEjb(InjectionPoint injectionPoint)
+   {
+      if (!injectionPoint.getAnnotated().isAnnotationPresent(EJB.class))
+      {
+         throw new IllegalArgumentException("No @EJB annotation found on injection point " + injectionPoint);
+      }
+      if (injectionPoint.getMember() instanceof Method && ((Method) injectionPoint.getMember()).getParameterTypes().length != 1)
+      {
+         throw new IllegalArgumentException("Injection point represents a method which doesn't follow JavaBean conventions (must have exactly one parameter) " + injectionPoint);
+      }
+      EJB annotation = injectionPoint.getAnnotated().getAnnotation(EJB.class);
+      // Get properties from the annotation
+      String beanName = annotation.beanName();
+      String beanInterface = annotation.beanInterface().getName();
+
+      // Supply beanInterface from reflection if not explicitly-defined
+      if (beanInterface == null || beanInterface.equals(Object.class.getName()))
+      {
+         if (injectionPoint.getMember() instanceof Field && injectionPoint.getType() instanceof Class<?>)
+         {
+            beanInterface = ((Class<?>) injectionPoint.getType()).getName();
+         }
+         else if (injectionPoint.getMember() instanceof Method)
+         {
+            Method method = (Method) injectionPoint.getMember();
+            beanInterface = method.getParameterTypes()[0].getName();
+         }
+      }
+
+      String jndiName = resolver.resolveEjb(topLevelDeploymentUnit, new EjbReference(beanName, beanInterface, null));
+      if (jndiName == null)
+      {
+         throw new IllegalStateException("No EJBs available which can be injected into " + injectionPoint);
+      }
+      try
+      {
+         return context.lookup(jndiName);
+      }
+      catch (NamingException e)
+      {
+         throw new RuntimeException("Error retreiving EJB from JNDI for injection point " + injectionPoint, e);
+      }
+   }
+
+   @Override
+   public void cleanup()
+   {
+      resolver = null;
+   }
+}
\ No newline at end of file


Property changes on: trunk/weld-int/ejb/src/main/java/org/jboss/weld/integration/ejb/JBossEjbInjectionServices.java
___________________________________________________________________
Name: svn:keywords
   + Author Date Id Revision
Name: svn:eol-style
   + native

Modified: trunk/weld-int/ejb/src/main/java/org/jboss/weld/integration/ejb/JBossEjbServices.java
===================================================================
--- trunk/weld-int/ejb/src/main/java/org/jboss/weld/integration/ejb/JBossEjbServices.java	2010-08-26 19:58:12 UTC (rev 107817)
+++ trunk/weld-int/ejb/src/main/java/org/jboss/weld/integration/ejb/JBossEjbServices.java	2010-08-26 20:42:10 UTC (rev 107818)
@@ -25,7 +25,6 @@
 import org.jboss.weld.ejb.spi.EjbDescriptor;
 import org.jboss.weld.ejb.spi.EjbServices;
 import org.jboss.weld.ejb.spi.InterceptorBindings;
-import org.jboss.weld.injection.spi.EjbInjectionServices;
 import org.jboss.weld.integration.util.AbstractJBossServices;
 import org.jboss.weld.integration.vdf.DeploymentUnitAware;
 
@@ -35,14 +34,15 @@
  * @author Pete Muir
  * @author ales.justin at jboss.org
  * @author Marius Bogoevici
+ * @author <a href="mailto:flavia.rainone at jboss.com">Flavia Rainone</a>
  */
-public class JBossEjbServices extends AbstractJBossServices implements EjbServices, EjbInjectionServices, DeploymentUnitAware
+public class JBossEjbServices extends AbstractJBossServices implements EjbServices, DeploymentUnitAware
 {
 
    protected EjbReferenceResolver resolver;
    private final List<EjbDescriptor<?>> ejbs = new ArrayList<EjbDescriptor<?>>();
    private final List<String> ejbContainerNames = new ArrayList<String>();
-   private Map<EjbDescriptor, InterceptorBindings> interceptorBindings = new ConcurrentHashMap<EjbDescriptor, InterceptorBindings>();
+   private Map<EjbDescriptor<?>, InterceptorBindings> interceptorBindings = new ConcurrentHashMap<EjbDescriptor<?>, InterceptorBindings>();
 
    public JBossEjbServices() throws NamingException
    {
@@ -61,50 +61,6 @@
       discoverEjbs(du.getTopLevel());
    }
 
-   public Object resolveEjb(InjectionPoint injectionPoint)
-   {
-      if (!injectionPoint.getAnnotated().isAnnotationPresent(EJB.class))
-      {
-         throw new IllegalArgumentException("No @EJB annotation found on injection point " + injectionPoint);
-      }
-      if (injectionPoint.getMember() instanceof Method && ((Method) injectionPoint.getMember()).getParameterTypes().length != 1)
-      {
-         throw new IllegalArgumentException("Injection point represents a method which doesn't follow JavaBean conventions (must have exactly one parameter) " + injectionPoint);
-      }
-      EJB annotation = injectionPoint.getAnnotated().getAnnotation(EJB.class);
-      // Get properties from the annotation
-      String beanName = annotation.beanName();
-      String beanInterface = annotation.beanInterface().getName();
-
-      // Supply beanInterface from reflection if not explicitly-defined
-      if (beanInterface == null || beanInterface.equals(Object.class.getName()))
-      {
-         if (injectionPoint.getMember() instanceof Field && injectionPoint.getType() instanceof Class)
-         {
-            beanInterface = ((Class<?>) injectionPoint.getType()).getName();
-         }
-         else if (injectionPoint.getMember() instanceof Method)
-         {
-            Method method = (Method) injectionPoint.getMember();
-            beanInterface = method.getParameterTypes()[0].getName();
-         }
-      }
-
-      String jndiName = resolver.resolveEjb(topLevelDeploymentUnit, new EjbReference(beanName, beanInterface, null));
-      if (jndiName == null)
-      {
-         throw new IllegalStateException("No EJBs available which can be injected into " + injectionPoint);
-      }
-      try
-      {
-         return context.lookup(jndiName);
-      }
-      catch (NamingException e)
-      {
-         throw new RuntimeException("Error retreiving EJB from JNDI for injection point " + injectionPoint, e);
-      }
-   }
-
    public SessionObjectReference resolveEjb(EjbDescriptor<?> ejbDescriptor)
    {
       try
@@ -216,7 +172,7 @@
     */
    public Iterable<String> getEjbContainerNames()
    {
-	   return Collections.unmodifiableCollection(ejbContainerNames);
+      return Collections.unmodifiableCollection(ejbContainerNames);
    }
 
    public InterceptorBindings getInterceptorBindings(EjbDescriptor<?> ejbDescriptor)



More information about the jboss-cvs-commits mailing list