[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