[jboss-cvs] JBossAS SVN: r82914 - in projects/webbeans-ri-int/trunk: ejb and 21 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Thu Jan 15 11:24:46 EST 2009
Author: petemuir
Date: 2009-01-15 11:24:46 -0500 (Thu, 15 Jan 2009)
New Revision: 82914
Added:
projects/webbeans-ri-int/trunk/ejb/
projects/webbeans-ri-int/trunk/ejb/pom.xml
projects/webbeans-ri-int/trunk/ejb/src/
projects/webbeans-ri-int/trunk/ejb/src/main/
projects/webbeans-ri-int/trunk/ejb/src/main/java/
projects/webbeans-ri-int/trunk/ejb/src/main/java/org/
projects/webbeans-ri-int/trunk/ejb/src/main/java/org/jboss/
projects/webbeans-ri-int/trunk/ejb/src/main/java/org/jboss/webbeans/
projects/webbeans-ri-int/trunk/ejb/src/main/java/org/jboss/webbeans/integration/
projects/webbeans-ri-int/trunk/ejb/src/main/java/org/jboss/webbeans/integration/ejb/
projects/webbeans-ri-int/trunk/ejb/src/main/java/org/jboss/webbeans/integration/ejb/JBossBussinessInterfaceDescriptorAdaptor.java
projects/webbeans-ri-int/trunk/ejb/src/main/java/org/jboss/webbeans/integration/ejb/JBossEJBDescriptorAdaptor.java
projects/webbeans-ri-int/trunk/ejb/src/main/java/org/jboss/webbeans/integration/ejb/JBossEjbDiscovery.java
projects/webbeans-ri-int/trunk/ejb/src/main/java/org/jboss/webbeans/integration/ejb/JBossEjbResolver.java
projects/webbeans-ri-int/trunk/ejb/src/main/java/org/jboss/webbeans/integration/ejb/JBossMessageDrivenBeanDescriptorAdaptor.java
projects/webbeans-ri-int/trunk/ejb/src/main/java/org/jboss/webbeans/integration/ejb/JBossSessionBeanDescriptorAdaptor.java
projects/webbeans-ri-int/trunk/ejb/src/main/java/org/jboss/webbeans/integration/jbossas/
projects/webbeans-ri-int/trunk/ejb/src/main/java/org/jboss/webbeans/integration/jbossas/bootstrap/
projects/webbeans-ri-int/trunk/ejb/src/main/java/org/jboss/webbeans/integration/jbossas/util/
projects/webbeans-ri-int/trunk/ejb/src/main/java/org/jboss/webbeans/integration/jbossas/util/JBossEjb.java
projects/webbeans-ri-int/trunk/ejb/src/main/java/org/jboss/webbeans/integration/jbossas/util/Reflections.java
projects/webbeans-ri-int/trunk/ejb/src/main/java/org/jboss/webbeans/integration/jbossas/vdf/
projects/webbeans-ri-int/trunk/ejb/src/main/resources/
projects/webbeans-ri-int/trunk/ejb/src/main/resources/META-INF/
projects/webbeans-ri-int/trunk/ejb/src/test/
projects/webbeans-ri-int/trunk/ejb/src/test/java/
projects/webbeans-ri-int/trunk/ejb/src/test/java/org/
projects/webbeans-ri-int/trunk/ejb/src/test/java/org/jboss/
projects/webbeans-ri-int/trunk/ejb/src/test/java/org/jboss/test/
projects/webbeans-ri-int/trunk/jbossas/src/main/java/org/jboss/webbeans/integration/jbossas/bootstrap/ServletJBossWebBeanDiscovery.java
Removed:
projects/webbeans-ri-int/trunk/jbossas/src/main/java/org/jboss/webbeans/integration/jbossas/bootstrap/WebBeanDiscoveryImpl.java
projects/webbeans-ri-int/trunk/jbossas/src/main/java/org/jboss/webbeans/integration/jbossas/ejb/EjbDiscoveryEnvironment.java
projects/webbeans-ri-int/trunk/jbossas/src/main/java/org/jboss/webbeans/integration/jbossas/ejb/JBossBussinessInterfaceDescriptorAdaptor.java
projects/webbeans-ri-int/trunk/jbossas/src/main/java/org/jboss/webbeans/integration/jbossas/ejb/JBossEJBDescriptorAdaptor.java
projects/webbeans-ri-int/trunk/jbossas/src/main/java/org/jboss/webbeans/integration/jbossas/ejb/JBossEjbResolver.java
projects/webbeans-ri-int/trunk/jbossas/src/main/java/org/jboss/webbeans/integration/jbossas/ejb/JBossMessageDrivenBeanDescriptorAdaptor.java
projects/webbeans-ri-int/trunk/jbossas/src/main/java/org/jboss/webbeans/integration/jbossas/ejb/JBossSessionBeanDescriptorAdaptor.java
projects/webbeans-ri-int/trunk/jbossas/src/main/java/org/jboss/webbeans/integration/jbossas/util/
Modified:
projects/webbeans-ri-int/trunk/jbossas/pom.xml
projects/webbeans-ri-int/trunk/jbossas/src/main/resources/META-INF/web-beans-ri.properties
projects/webbeans-ri-int/trunk/microcontainer/src/main/java/org/jboss/webbeans/integration/microcontainer/deployer/cl/WebBeansUrlIntegrationDeployer.java
projects/webbeans-ri-int/trunk/pom.xml
Log:
split out ejb integration into a separate module and alter jbossas integration for spi change
Added: projects/webbeans-ri-int/trunk/ejb/pom.xml
===================================================================
--- projects/webbeans-ri-int/trunk/ejb/pom.xml (rev 0)
+++ projects/webbeans-ri-int/trunk/ejb/pom.xml 2009-01-15 16:24:46 UTC (rev 82914)
@@ -0,0 +1,91 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <parent>
+ <groupId>org.jboss.webbeans.integration</groupId>
+ <artifactId>webbeans-ri-int</artifactId>
+ <version>5.2.0-SNAPSHOT</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <artifactId>webbeans-ri-int-jboss-ejb</artifactId>
+ <version>5.2.0-SNAPSHOT</version>
+ <packaging>jar</packaging>
+ <name>Web Beans RI Int JBoss EJB3</name>
+ <description>Web Beans RI Int JBoss EJB3</description>
+
+ <!-- Do not add version information here, use ../pom.xml instead -->
+ <dependencies>
+
+ <!-- Global dependencies -->
+
+ <dependency>
+ <groupId>org.jboss.webbeans</groupId>
+ <artifactId>webbeans-ri-spi</artifactId>
+ <scope>provided</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.jboss.ejb3</groupId>
+ <artifactId>jboss-ejb3-common</artifactId>
+ <scope>provided</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.jboss.jpa</groupId>
+ <artifactId>jboss-jpa-deployers</artifactId>
+ <scope>provided</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.jboss.logging</groupId>
+ <artifactId>jboss-logging-spi</artifactId>
+ <scope>provided</scope>
+ </dependency>
+
+ <!-- Test dependencies -->
+ <dependency>
+ <groupId>org.jboss.test</groupId>
+ <artifactId>jboss-test</artifactId>
+ <scope>test</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>org.jboss</groupId>
+ <artifactId>jboss-common-core</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.jboss.logging</groupId>
+ <artifactId>jboss-logging-spi</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.jboss.logging</groupId>
+ <artifactId>jboss-logging-log4j</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>jboss.profiler.jvmti</groupId>
+ <artifactId>jboss-profiler-jvmti</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>log4j</groupId>
+ <artifactId>log4j</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.apache.ant</groupId>
+ <artifactId>ant</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.apache.ant</groupId>
+ <artifactId>ant-junit</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <scope>test</scope>
+ </dependency>
+
+ </dependencies>
+</project>
Added: projects/webbeans-ri-int/trunk/ejb/src/main/java/org/jboss/webbeans/integration/ejb/JBossBussinessInterfaceDescriptorAdaptor.java
===================================================================
--- projects/webbeans-ri-int/trunk/ejb/src/main/java/org/jboss/webbeans/integration/ejb/JBossBussinessInterfaceDescriptorAdaptor.java (rev 0)
+++ projects/webbeans-ri-int/trunk/ejb/src/main/java/org/jboss/webbeans/integration/ejb/JBossBussinessInterfaceDescriptorAdaptor.java 2009-01-15 16:24:46 UTC (rev 82914)
@@ -0,0 +1,46 @@
+package org.jboss.webbeans.integration.ejb;
+
+import org.jboss.deployers.structure.spi.DeploymentUnit;
+import org.jboss.ejb3.common.resolvers.spi.EjbReference;
+import org.jboss.ejb3.common.resolvers.spi.EjbReferenceResolver;
+import org.jboss.webbeans.ejb.spi.BusinessInterfaceDescriptor;
+import org.jboss.webbeans.integration.jbossas.util.Reflections;
+
+public class JBossBussinessInterfaceDescriptorAdaptor<T> implements BusinessInterfaceDescriptor<T>
+{
+ private Class<T> type;
+ private String jndiName;
+
+ public JBossBussinessInterfaceDescriptorAdaptor(String interfaceName, String ejbName, DeploymentUnit deploymentUnit, EjbReferenceResolver resolver)
+ {
+ try
+ {
+ type = (Class<T>) Reflections.classForName(interfaceName, deploymentUnit.getClassLoader());
+ }
+ catch (ClassCastException e)
+ {
+ throw new IllegalStateException("Error loading EJB Session bean interface", e);
+ }
+ catch (ClassNotFoundException e)
+ {
+ throw new IllegalStateException("Cannot load EJB Session bean interface", e);
+ }
+ jndiName = resolver.resolveEjb(deploymentUnit, new EjbReference(ejbName, interfaceName, null));
+ }
+
+ public Class<T> getInterface()
+ {
+ return type;
+ }
+
+ public String getJndiName()
+ {
+ return jndiName;
+ }
+
+ @Override
+ public String toString()
+ {
+ return getInterface() + " jndi name: " + getJndiName();
+ }
+}
Added: projects/webbeans-ri-int/trunk/ejb/src/main/java/org/jboss/webbeans/integration/ejb/JBossEJBDescriptorAdaptor.java
===================================================================
--- projects/webbeans-ri-int/trunk/ejb/src/main/java/org/jboss/webbeans/integration/ejb/JBossEJBDescriptorAdaptor.java (rev 0)
+++ projects/webbeans-ri-int/trunk/ejb/src/main/java/org/jboss/webbeans/integration/ejb/JBossEJBDescriptorAdaptor.java 2009-01-15 16:24:46 UTC (rev 82914)
@@ -0,0 +1,86 @@
+package org.jboss.webbeans.integration.ejb;
+
+import org.jboss.deployers.structure.spi.DeploymentUnit;
+import org.jboss.ejb3.common.resolvers.spi.EjbReferenceResolver;
+import org.jboss.metadata.ejb.jboss.JBossEnterpriseBeanMetaData;
+import org.jboss.webbeans.ejb.spi.EjbDescriptor;
+import org.jboss.webbeans.integration.jbossas.util.Reflections;
+
+public abstract class JBossEJBDescriptorAdaptor<T> implements EjbDescriptor<T>
+{
+ private final Class<T> type;
+ private final String ejbName;
+
+ public JBossEJBDescriptorAdaptor(JBossEnterpriseBeanMetaData enterpriseBeanMetaData, DeploymentUnit deploymentUnit, EjbReferenceResolver resolver)
+ {
+ try
+ {
+ this.type = (Class<T>) Reflections.classForName(enterpriseBeanMetaData.getEjbClass(), deploymentUnit.getClassLoader());
+ }
+ catch (ClassCastException e)
+ {
+ throw new IllegalStateException("Error loading EJB Session bean class", e);
+ }
+ catch (ClassNotFoundException e)
+ {
+ throw new IllegalStateException("Cannot load EJB Session bean class", e);
+ }
+
+ this.ejbName = enterpriseBeanMetaData.getEjbName();
+ }
+
+ public Class<T> getType()
+ {
+ return type;
+ }
+
+ public String getEjbName()
+ {
+ return ejbName;
+ }
+
+ @Override
+ public String toString()
+ {
+ StringBuilder builder = new StringBuilder();
+ builder.append(getEjbName());
+ if (isStateful())
+ {
+ builder.append(" (SFSB)");
+ }
+ if (isStateless())
+ {
+ builder.append(" (SLSB)");
+ }
+ if (isSingleton())
+ {
+ builder.append(" (Singleton)");
+ }
+ if (isMessageDriven())
+ {
+ builder.append(" (MDB)");
+ }
+ builder.append("; BeanClass: " + getType() + "; Local Business Interfaces: " + getLocalBusinessInterfaces());
+ return builder.toString();
+ }
+
+ @Override
+ public boolean equals(Object other)
+ {
+ if (other instanceof EjbDescriptor)
+ {
+ EjbDescriptor<T> that = (EjbDescriptor<T>) other;
+ return this.getEjbName().equals(that.getEjbName());
+ }
+ else
+ {
+ return false;
+ }
+ }
+
+ @Override
+ public int hashCode()
+ {
+ return getEjbName().hashCode();
+ }
+}
\ No newline at end of file
Added: projects/webbeans-ri-int/trunk/ejb/src/main/java/org/jboss/webbeans/integration/ejb/JBossEjbDiscovery.java
===================================================================
--- projects/webbeans-ri-int/trunk/ejb/src/main/java/org/jboss/webbeans/integration/ejb/JBossEjbDiscovery.java (rev 0)
+++ projects/webbeans-ri-int/trunk/ejb/src/main/java/org/jboss/webbeans/integration/ejb/JBossEjbDiscovery.java 2009-01-15 16:24:46 UTC (rev 82914)
@@ -0,0 +1,81 @@
+package org.jboss.webbeans.integration.ejb;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.jboss.deployers.structure.spi.DeploymentUnit;
+import org.jboss.ejb3.common.deployers.spi.AttachmentNames;
+import org.jboss.ejb3.common.resolvers.spi.EjbReferenceResolver;
+import org.jboss.kernel.spi.dependency.KernelController;
+import org.jboss.metadata.ejb.jboss.JBossEnterpriseBeanMetaData;
+import org.jboss.metadata.ejb.jboss.JBossMessageDrivenBeanMetaData;
+import org.jboss.metadata.ejb.jboss.JBossMetaData;
+import org.jboss.metadata.ejb.jboss.JBossSessionBeanMetaData;
+import org.jboss.webbeans.bootstrap.spi.EjbDiscovery;
+import org.jboss.webbeans.ejb.spi.EjbDescriptor;
+import org.jboss.webbeans.integration.jbossas.util.JBossEjb;
+
+/**
+ * EjbDiscoveryEnvironment.
+ *
+ * @author <a href="mailto:alr at jboss.com">ALR</a>
+ * @author Pete Muir
+ * @author <a href="mailto:ales.justin at jboss.com">Ales Justin</a>
+ */
+public class JBossEjbDiscovery implements EjbDiscovery
+{
+
+ private final Iterable<EjbDescriptor<?>> ejbs;
+
+
+
+ public JBossEjbDiscovery(DeploymentUnit topLevelDeploymentUnit, KernelController controller)
+ {
+ EjbReferenceResolver resolver = JBossEjb.lookupEjbReferenceResolver(controller);
+ this.ejbs = discoverEjbs(topLevelDeploymentUnit, resolver);
+ }
+
+ /**
+ * Discover ejbs.
+ *
+ * @param du the deployment unit
+ */
+ protected List<EjbDescriptor<?>> discoverEjbs(DeploymentUnit du, EjbReferenceResolver resolver)
+ {
+ List<EjbDescriptor<?>> ejbs = new ArrayList<EjbDescriptor<?>>();
+ // Ensure it's an EJB3 DU (by looking for the processed metadata)
+ if (du.getAttachment(AttachmentNames.PROCESSED_METADATA, JBossMetaData.class) != null && du.getAttachment(JBossMetaData.class).isEJB3x())
+ {
+ for (JBossEnterpriseBeanMetaData enterpriseBeanMetaData : du.getAttachment(JBossMetaData.class).getEnterpriseBeans())
+ {
+ if (enterpriseBeanMetaData.isSession())
+ {
+ JBossSessionBeanMetaData sessionBeanMetaData = (JBossSessionBeanMetaData) enterpriseBeanMetaData;
+ EjbDescriptor<?> ejbDescriptor = new JBossSessionBeanDescriptorAdaptor<Object>(sessionBeanMetaData, du, resolver);
+ ejbs.add(ejbDescriptor);
+ }
+ else if (enterpriseBeanMetaData.isMessageDriven())
+ {
+ JBossMessageDrivenBeanMetaData messageDrivenBeanMetaData = (JBossMessageDrivenBeanMetaData) enterpriseBeanMetaData;
+ EjbDescriptor<?> ejbDescriptor = new JBossMessageDrivenBeanDescriptorAdaptor<Object>(messageDrivenBeanMetaData, du, resolver);
+ ejbs.add(ejbDescriptor);
+ }
+ }
+ }
+
+ List<DeploymentUnit> children = du.getChildren();
+ if (children != null && children.isEmpty() == false)
+ {
+ for (DeploymentUnit childDu : children)
+ {
+ ejbs.addAll(discoverEjbs(childDu, resolver));
+ }
+ }
+ return ejbs;
+ }
+
+ public Iterable<EjbDescriptor<?>> discoverEjbs()
+ {
+ return ejbs;
+ }
+}
Added: projects/webbeans-ri-int/trunk/ejb/src/main/java/org/jboss/webbeans/integration/ejb/JBossEjbResolver.java
===================================================================
--- projects/webbeans-ri-int/trunk/ejb/src/main/java/org/jboss/webbeans/integration/ejb/JBossEjbResolver.java (rev 0)
+++ projects/webbeans-ri-int/trunk/ejb/src/main/java/org/jboss/webbeans/integration/ejb/JBossEjbResolver.java 2009-01-15 16:24:46 UTC (rev 82914)
@@ -0,0 +1,188 @@
+package org.jboss.webbeans.integration.ejb;
+
+import java.lang.annotation.Annotation;
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+
+import javax.annotation.Resource;
+import javax.ejb.EJB;
+import javax.persistence.PersistenceContext;
+import javax.webbeans.InjectionPoint;
+
+import org.jboss.deployers.structure.spi.DeploymentUnit;
+import org.jboss.ejb3.common.deployers.spi.AttachmentNames;
+import org.jboss.ejb3.common.resolvers.spi.EjbReference;
+import org.jboss.jpa.deployment.ManagedEntityManagerFactory;
+import org.jboss.jpa.deployment.PersistenceUnitDeployment;
+import org.jboss.jpa.injection.InjectedEntityManagerFactory;
+import org.jboss.jpa.resolvers.PersistenceUnitDependencyResolver;
+import org.jboss.kernel.spi.dependency.KernelController;
+import org.jboss.metadata.ejb.jboss.JBossMetaData;
+import org.jboss.metadata.web.jboss.JBossWebMetaData;
+import org.jboss.webbeans.ejb.spi.EjbResolver;
+import org.jboss.webbeans.integration.jbossas.util.JBossEjb;
+import org.jboss.webbeans.integration.jbossas.util.Reflections;
+import org.jboss.webbeans.resources.spi.Naming;
+
+public class JBossEjbResolver implements EjbResolver
+{
+
+ private static final String RESOURCE_LOOKUP_PREFIX = "java:/comp/env";
+ protected final DeploymentUnit topLevelDeploymentUnit;
+ protected final KernelController controller;
+
+ public JBossEjbResolver(DeploymentUnit topLevelDeploymentUnit, KernelController controller)
+ {
+ super();
+ this.topLevelDeploymentUnit = topLevelDeploymentUnit;
+ this.controller = controller;
+ }
+
+ private static String getPersistenceUnitSupplier(DeploymentUnit deploymentUnit, PersistenceUnitDependencyResolver persistenceUnitDependencyResolver, String persistenceUnitName)
+ {
+ if ((deploymentUnit.getAttachment(AttachmentNames.PROCESSED_METADATA, JBossMetaData.class) != null && deploymentUnit.getAttachment(JBossMetaData.class).isEJB3x()) || (deploymentUnit.getAttachment(JBossWebMetaData.class) != null))
+ {
+ try
+ {
+ return persistenceUnitDependencyResolver.resolvePersistenceUnitSupplier(deploymentUnit, persistenceUnitName);
+ }
+ catch (IllegalArgumentException e)
+ {
+ // No-op, means we can't find the PU in this DU
+ }
+ }
+ for (DeploymentUnit child : deploymentUnit.getChildren())
+ {
+ String beanName = getPersistenceUnitSupplier(child, persistenceUnitDependencyResolver, persistenceUnitName);
+ if (beanName != null)
+ {
+ return beanName;
+ }
+ }
+ return null;
+ }
+
+ public Object resolveEjb(InjectionPoint injectionPoint, Naming naming)
+ {
+ if (!injectionPoint.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.getAnnotation(EJB.class);
+ // Get properties from the annotation
+ String beanName = annotation.beanName();
+ String beanInterface = annotation.beanInterface().getName();
+ String mappedName = annotation.mappedName();
+
+ // 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 = JBossEjb.lookupEjbReferenceResolver(controller).resolveEjb(topLevelDeploymentUnit, new EjbReference(beanName, beanInterface, mappedName));
+ if (jndiName == null)
+ {
+ throw new IllegalStateException("No EJBs available which can be injected into " + injectionPoint);
+ }
+ return naming.lookup(jndiName, Object.class);
+ }
+
+ public Object resolvePersistenceContext(InjectionPoint injectionPoint, Naming naming)
+ {
+ if (!injectionPoint.isAnnotationPresent(PersistenceContext.class))
+ {
+ throw new IllegalArgumentException("No @PersistenceContext 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);
+ }
+ String persistenceUnitName = injectionPoint.getAnnotation(PersistenceContext.class).unitName();
+ PersistenceUnitDependencyResolver persistenceUnitDependencyResolver = JBossEjb.lookupPersistenceUnitDependencyResolver(controller);
+ String beanName = getPersistenceUnitSupplier(topLevelDeploymentUnit, persistenceUnitDependencyResolver, persistenceUnitName);
+ if (beanName == null)
+ {
+ throw new IllegalStateException("No persistence unit available which can be injected into " + injectionPoint);
+ }
+ PersistenceUnitDeployment deployment = JBossEjb.lookupPersistenceUnitDeployment(beanName, controller);
+ ManagedEntityManagerFactory managedFactory = deployment.getManagedFactory();
+ return new InjectedEntityManagerFactory(managedFactory).createEntityManager();
+ }
+
+ public Object resolveResource(InjectionPoint injectionPoint, Naming naming)
+ {
+ if (!injectionPoint.isAnnotationPresent(Resource.class))
+ {
+ throw new IllegalArgumentException("No @Resource 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);
+ }
+ String name = getResourceName(injectionPoint);
+ return naming.lookup(name, Object.class);
+ }
+
+ public Class<? extends Annotation> getEJBAnnotation()
+ {
+ return EJB.class;
+ }
+
+ public Class<? extends Annotation> getPersistenceContextAnnotation()
+ {
+ return PersistenceContext.class;
+ }
+
+ public Class<? extends Annotation> getResourceAnnotation()
+ {
+ return Resource.class;
+ }
+
+ private static String getResourceName(InjectionPoint injectionPoint)
+ {
+ Resource resource = injectionPoint.getAnnotation(Resource.class);
+ String mappedName = resource.mappedName();
+ if (!mappedName.equals(""))
+ {
+ return mappedName;
+ }
+ String name = resource.name();
+ if (!name.equals(""))
+ {
+ return RESOURCE_LOOKUP_PREFIX + "/" + name;
+ }
+ String propertyName;
+ if (injectionPoint.getMember() instanceof Field)
+ {
+ propertyName = injectionPoint.getMember().getName();
+ }
+ else if (injectionPoint.getMember() instanceof Method)
+ {
+ propertyName = Reflections.getPropertyName((Method) injectionPoint.getMember());
+ if (propertyName == null)
+ {
+ throw new IllegalArgumentException("Injection point represents a method which doesn't follow JavaBean conventions (unable to determine property name) " + injectionPoint);
+ }
+ }
+ else
+ {
+ throw new AssertionError("Unable to inject into " + injectionPoint);
+ }
+ String className = injectionPoint.getMember().getDeclaringClass().getName();
+ return RESOURCE_LOOKUP_PREFIX + "/" + className + "/" + propertyName;
+ }
+
+}
\ No newline at end of file
Added: projects/webbeans-ri-int/trunk/ejb/src/main/java/org/jboss/webbeans/integration/ejb/JBossMessageDrivenBeanDescriptorAdaptor.java
===================================================================
--- projects/webbeans-ri-int/trunk/ejb/src/main/java/org/jboss/webbeans/integration/ejb/JBossMessageDrivenBeanDescriptorAdaptor.java (rev 0)
+++ projects/webbeans-ri-int/trunk/ejb/src/main/java/org/jboss/webbeans/integration/ejb/JBossMessageDrivenBeanDescriptorAdaptor.java 2009-01-15 16:24:46 UTC (rev 82914)
@@ -0,0 +1,55 @@
+package org.jboss.webbeans.integration.ejb;
+
+import java.lang.reflect.Method;
+
+import org.jboss.deployers.structure.spi.DeploymentUnit;
+import org.jboss.ejb3.common.resolvers.spi.EjbReferenceResolver;
+import org.jboss.metadata.ejb.jboss.JBossMessageDrivenBeanMetaData;
+import org.jboss.webbeans.ejb.spi.BusinessInterfaceDescriptor;
+
+public class JBossMessageDrivenBeanDescriptorAdaptor<T> extends JBossEJBDescriptorAdaptor<T>
+{
+ public JBossMessageDrivenBeanDescriptorAdaptor(JBossMessageDrivenBeanMetaData messageDrivenBeanMetaData, DeploymentUnit deploymentUnit, EjbReferenceResolver resolver)
+ {
+ super(messageDrivenBeanMetaData, deploymentUnit, resolver);
+ }
+
+ public Iterable<BusinessInterfaceDescriptor<?>> getLocalBusinessInterfaces()
+ {
+ // Not relevant for MDBs
+ return null;
+ }
+
+ public Iterable<BusinessInterfaceDescriptor<?>> getRemoteBusinessInterfaces()
+ {
+ // Not relevant for MDBs
+ return null;
+ }
+
+ public Iterable<Method> getRemoveMethods()
+ {
+ // Not relevant for MDBs
+ return null;
+ }
+
+ public boolean isSingleton()
+ {
+ return false;
+ }
+
+ public boolean isStateful()
+ {
+ return false;
+ }
+
+ public boolean isStateless()
+ {
+ return false;
+ }
+
+ public boolean isMessageDriven()
+ {
+ return true;
+ }
+
+}
Added: projects/webbeans-ri-int/trunk/ejb/src/main/java/org/jboss/webbeans/integration/ejb/JBossSessionBeanDescriptorAdaptor.java
===================================================================
--- projects/webbeans-ri-int/trunk/ejb/src/main/java/org/jboss/webbeans/integration/ejb/JBossSessionBeanDescriptorAdaptor.java (rev 0)
+++ projects/webbeans-ri-int/trunk/ejb/src/main/java/org/jboss/webbeans/integration/ejb/JBossSessionBeanDescriptorAdaptor.java 2009-01-15 16:24:46 UTC (rev 82914)
@@ -0,0 +1,110 @@
+package org.jboss.webbeans.integration.ejb;
+
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.jboss.deployers.structure.spi.DeploymentUnit;
+import org.jboss.ejb3.common.resolvers.spi.EjbReferenceResolver;
+import org.jboss.metadata.ejb.jboss.JBossSessionBeanMetaData;
+import org.jboss.metadata.ejb.spec.RemoveMethodMetaData;
+import org.jboss.webbeans.ejb.spi.BusinessInterfaceDescriptor;
+import org.jboss.webbeans.ejb.spi.EjbDescriptor;
+
+public class JBossSessionBeanDescriptorAdaptor<T> extends JBossEJBDescriptorAdaptor<T> implements EjbDescriptor<T>
+{
+ private final List<BusinessInterfaceDescriptor<?>> localBusinessInterfaces;
+ private final List<BusinessInterfaceDescriptor<?>> remoteBusinessInterfaces;
+ private final List<Method> removeMethods;
+ private final boolean stateful;
+ private final boolean stateless;
+ private final boolean singleton;
+ private final String localJndiName;
+
+ public JBossSessionBeanDescriptorAdaptor(JBossSessionBeanMetaData sessionBeanMetaData, DeploymentUnit deploymentUnit, EjbReferenceResolver resolver)
+ {
+ super(sessionBeanMetaData, deploymentUnit, resolver);
+ this.localBusinessInterfaces = new ArrayList<BusinessInterfaceDescriptor<?>>();
+ if (sessionBeanMetaData.getBusinessLocals() != null)
+ {
+ for (String interfaceName : sessionBeanMetaData.getBusinessLocals())
+ {
+ this.localBusinessInterfaces.add(new JBossBussinessInterfaceDescriptorAdaptor<Object>(interfaceName, getEjbName(), deploymentUnit, resolver));
+ }
+ }
+
+ remoteBusinessInterfaces = new ArrayList<BusinessInterfaceDescriptor<?>>();
+ if (sessionBeanMetaData.getBusinessRemotes() != null)
+ {
+ for (String interfaceName : sessionBeanMetaData.getBusinessRemotes())
+ {
+ this.remoteBusinessInterfaces.add(new JBossBussinessInterfaceDescriptorAdaptor<Object>(interfaceName, getEjbName(), deploymentUnit, resolver));
+ }
+ }
+
+ this.removeMethods = new ArrayList<Method>();
+
+ if (sessionBeanMetaData.getRemoveMethods() != null)
+ {
+ for (RemoveMethodMetaData removeMethodMetaData : sessionBeanMetaData.getRemoveMethods())
+ {
+ Method removeMethod;
+ try
+ {
+ removeMethod = getType().getMethod(removeMethodMetaData.getBeanMethod().getMethodName(), removeMethodMetaData.getBeanMethod().getMethodParams().toArray(new Class<?>[0]));
+ removeMethods.add(removeMethod);
+ }
+ catch (SecurityException e)
+ {
+ throw new RuntimeException("Unable to access EJB remove method", e);
+ }
+ catch (NoSuchMethodException e)
+ {
+ throw new RuntimeException("Unable to access EJB remove method", e);
+ }
+
+ }
+ }
+
+ this.stateful = sessionBeanMetaData.isStateful();
+ this.stateless = sessionBeanMetaData.isStateless();
+ this.singleton = false;
+ this.localJndiName = sessionBeanMetaData.getLocalJndiName();
+ }
+
+ public Iterable<BusinessInterfaceDescriptor<?>> getLocalBusinessInterfaces()
+ {
+ return localBusinessInterfaces;
+ }
+
+ public Iterable<BusinessInterfaceDescriptor<?>> getRemoteBusinessInterfaces()
+ {
+ return remoteBusinessInterfaces;
+ }
+
+ public Iterable<Method> getRemoveMethods()
+ {
+ return removeMethods;
+ }
+
+ public boolean isSingleton()
+ {
+ return singleton;
+ }
+
+ public boolean isStateful()
+ {
+ return stateful;
+ }
+
+ public boolean isStateless()
+ {
+ return stateless;
+ }
+
+ public boolean isMessageDriven()
+ {
+ return false;
+ }
+
+}
Added: projects/webbeans-ri-int/trunk/ejb/src/main/java/org/jboss/webbeans/integration/jbossas/util/JBossEjb.java
===================================================================
--- projects/webbeans-ri-int/trunk/ejb/src/main/java/org/jboss/webbeans/integration/jbossas/util/JBossEjb.java (rev 0)
+++ projects/webbeans-ri-int/trunk/ejb/src/main/java/org/jboss/webbeans/integration/jbossas/util/JBossEjb.java 2009-01-15 16:24:46 UTC (rev 82914)
@@ -0,0 +1,129 @@
+package org.jboss.webbeans.integration.jbossas.util;
+
+import org.jboss.dependency.spi.ControllerContext;
+import org.jboss.dependency.spi.ControllerState;
+import org.jboss.ejb3.common.resolvers.spi.EjbReferenceResolver;
+import org.jboss.jpa.deployment.PersistenceUnitDeployment;
+import org.jboss.jpa.resolvers.PersistenceUnitDependencyResolver;
+import org.jboss.kernel.spi.dependency.KernelController;
+
+/**
+ * Utitlies for use with JBoss EJB implementation
+ *
+ * @author Pete Muir
+ *
+ */
+public class JBossEjb
+{
+
+ private static class NoSuchInstantiatedBeanException extends IllegalArgumentException
+ {
+
+ public NoSuchInstantiatedBeanException()
+ {
+ super();
+ }
+
+ public NoSuchInstantiatedBeanException(String arg0, Throwable arg1)
+ {
+ super(arg0, arg1);
+ }
+
+ public NoSuchInstantiatedBeanException(String arg0)
+ {
+ super(arg0);
+ }
+
+ public NoSuchInstantiatedBeanException(Throwable arg0)
+ {
+ super(arg0);
+ }
+ }
+
+ private static final String MC_BEAN_NAME_EJB_REFERENCE_RESOLVER = "org.jboss.ejb3.EjbReferenceResolver";
+ private static final String MC_BEAN_NAME_PERSISTENCE_UNIT_DEPENDENCY_RESOLVER = "PersistenceUnitDependencyResolver";
+
+
+ /**
+ * Get the EjbReferenceResolver from the MC controller
+ * @return the EjbReferenceResolver
+ */
+ public static EjbReferenceResolver lookupEjbReferenceResolver(KernelController controller)
+ {
+ try
+ {
+ return (EjbReferenceResolver) lookup(MC_BEAN_NAME_EJB_REFERENCE_RESOLVER, false, controller);
+ }
+ catch (NoSuchInstantiatedBeanException e)
+ {
+ throw new IllegalStateException("EjbReferenceResolver cannot be found, check that you have correctly updated JBoss EJB3");
+ }
+ }
+
+ /**
+ * Get the EjbReferenceResolver from the MC controller
+ * @return the EjbReferenceResolver
+ */
+ public static PersistenceUnitDependencyResolver lookupPersistenceUnitDependencyResolver(KernelController controller)
+ {
+ try
+ {
+ return (PersistenceUnitDependencyResolver) lookup(MC_BEAN_NAME_PERSISTENCE_UNIT_DEPENDENCY_RESOLVER, false, controller);
+ }
+ catch (NoSuchInstantiatedBeanException e)
+ {
+ throw new IllegalStateException("PersistenceUnitDependencyResolver cannot be found");
+ }
+ }
+
+ /**
+ * Get the EjbReferenceResolver from the MC controller
+ * @return the EjbReferenceResolver
+ */
+ public static PersistenceUnitDeployment lookupPersistenceUnitDeployment(String name, KernelController controller)
+ {
+ try
+ {
+ return (PersistenceUnitDeployment) lookup(name, false, controller);
+ }
+ catch (NoSuchInstantiatedBeanException e)
+ {
+ throw new IllegalStateException("PersistenceUnitDeployment " + name + " cannot be found");
+ }
+ }
+
+ /**
+ * Get the bean from the MC controller.
+ *
+ * @param name the bean name
+ * @param shouldExist must the bean be present
+ * @return the bean
+ */
+ public static Object lookup(final Object name, boolean shouldExist, KernelController controller)
+ {
+ // Get Controller Context
+ ControllerContext context = controller.getContext(name, ControllerState.INSTANTIATED);
+ if (context == null)
+ {
+ if (shouldExist)
+ {
+ // less restrictive state look
+ ControllerContext cc = controller.getContext(name, null);
+ throw new NoSuchInstantiatedBeanException("No such instantiated bean: " + name + " [" + cc + "]");
+ }
+ else
+ {
+ return null;
+ }
+ }
+
+ // If there's an error with the context, throw it
+ Throwable error = context.getError();
+ if (error != null)
+ throw new RuntimeException("Could not lookup object at name \"" + name + "\" due to an error with the underlying MC context.", error);
+
+ // Return
+ return context.getTarget();
+ }
+
+}
Added: projects/webbeans-ri-int/trunk/ejb/src/main/java/org/jboss/webbeans/integration/jbossas/util/Reflections.java
===================================================================
--- projects/webbeans-ri-int/trunk/ejb/src/main/java/org/jboss/webbeans/integration/jbossas/util/Reflections.java (rev 0)
+++ projects/webbeans-ri-int/trunk/ejb/src/main/java/org/jboss/webbeans/integration/jbossas/util/Reflections.java 2009-01-15 16:24:46 UTC (rev 82914)
@@ -0,0 +1,46 @@
+package org.jboss.webbeans.integration.jbossas.util;
+
+import java.beans.Introspector;
+import java.lang.reflect.Method;
+
+public class Reflections
+{
+
+ /**
+ * Creates an instance from a class name
+ *
+ * @param name The class name
+ * @return The instance
+ * @throws ClassNotFoundException If the class if not found
+ */
+ public static Class<?> classForName(String name, ClassLoader classLoader) throws ClassNotFoundException
+ {
+ try
+ {
+ return classLoader.loadClass(name);
+ }
+ catch (Exception e)
+ {
+ return Class.forName(name);
+ }
+ }
+
+ public static String getPropertyName(Method method)
+ {
+ String methodName = method.getName();
+ if (methodName.matches("^(get).*") && method.getParameterTypes().length == 0)
+ {
+ return Introspector.decapitalize(methodName.substring(3));
+ }
+ else if (methodName.matches("^(is).*") && method.getParameterTypes().length == 0)
+ {
+ return Introspector.decapitalize(methodName.substring(2));
+ }
+ else
+ {
+ return null;
+ }
+
+ }
+
+}
Modified: projects/webbeans-ri-int/trunk/jbossas/pom.xml
===================================================================
--- projects/webbeans-ri-int/trunk/jbossas/pom.xml 2009-01-15 16:24:19 UTC (rev 82913)
+++ projects/webbeans-ri-int/trunk/jbossas/pom.xml 2009-01-15 16:24:46 UTC (rev 82914)
@@ -52,6 +52,11 @@
</dependency>
<dependency>
+ <groupId>org.jboss.webbeans.integration</groupId>
+ <artifactId>webbeans-ri-int-jboss-ejb</artifactId>
+ </dependency>
+
+ <dependency>
<groupId>org.jboss</groupId>
<artifactId>jboss-common-core</artifactId>
<scope>provided</scope>
Copied: projects/webbeans-ri-int/trunk/jbossas/src/main/java/org/jboss/webbeans/integration/jbossas/bootstrap/ServletJBossWebBeanDiscovery.java (from rev 82693, projects/webbeans-ri-int/trunk/jbossas/src/main/java/org/jboss/webbeans/integration/jbossas/bootstrap/WebBeanDiscoveryImpl.java)
===================================================================
--- projects/webbeans-ri-int/trunk/jbossas/src/main/java/org/jboss/webbeans/integration/jbossas/bootstrap/ServletJBossWebBeanDiscovery.java (rev 0)
+++ projects/webbeans-ri-int/trunk/jbossas/src/main/java/org/jboss/webbeans/integration/jbossas/bootstrap/ServletJBossWebBeanDiscovery.java 2009-01-15 16:24:46 UTC (rev 82914)
@@ -0,0 +1,33 @@
+package org.jboss.webbeans.integration.jbossas.bootstrap;
+
+import java.net.URL;
+
+import javax.servlet.ServletContext;
+
+import org.jboss.webbeans.bootstrap.spi.WebBeanDiscovery;
+import org.jboss.webbeans.integration.jbossas.vdf.WebBeanDiscoveryEnvVDFConnector;
+import org.jboss.webbeans.integration.microcontainer.deployer.env.WebBeanDiscoveryEnvironment;
+
+public class ServletJBossWebBeanDiscovery implements WebBeanDiscovery
+{
+ private WebBeanDiscoveryEnvironment environment;
+
+ public ServletJBossWebBeanDiscovery(ServletContext servletContext)
+ {
+ WebBeanDiscoveryEnvVDFConnector connector = new WebBeanDiscoveryEnvVDFConnector(servletContext);
+ if (connector.isValid() == false)
+ throw new IllegalArgumentException("Cannot find web-beans discovery in deployment: " + servletContext);
+
+ environment = connector.getUtility();
+ }
+
+ public Iterable<Class<?>> discoverWebBeanClasses()
+ {
+ return environment.getWebBeanClasses();
+ }
+
+ public Iterable<URL> discoverWebBeansXml()
+ {
+ return environment.getWebBeansXml();
+ }
+}
Property changes on: projects/webbeans-ri-int/trunk/jbossas/src/main/java/org/jboss/webbeans/integration/jbossas/bootstrap/ServletJBossWebBeanDiscovery.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Deleted: projects/webbeans-ri-int/trunk/jbossas/src/main/java/org/jboss/webbeans/integration/jbossas/bootstrap/WebBeanDiscoveryImpl.java
===================================================================
--- projects/webbeans-ri-int/trunk/jbossas/src/main/java/org/jboss/webbeans/integration/jbossas/bootstrap/WebBeanDiscoveryImpl.java 2009-01-15 16:24:19 UTC (rev 82913)
+++ projects/webbeans-ri-int/trunk/jbossas/src/main/java/org/jboss/webbeans/integration/jbossas/bootstrap/WebBeanDiscoveryImpl.java 2009-01-15 16:24:46 UTC (rev 82914)
@@ -1,42 +0,0 @@
-package org.jboss.webbeans.integration.jbossas.bootstrap;
-
-import java.net.URL;
-
-import javax.servlet.ServletContext;
-
-import org.jboss.webbeans.bootstrap.spi.WebBeanDiscovery;
-import org.jboss.webbeans.ejb.spi.EjbDescriptor;
-import org.jboss.webbeans.integration.jbossas.ejb.EjbDiscoveryEnvironment;
-import org.jboss.webbeans.integration.jbossas.vdf.WebBeanDiscoveryEnvVDFConnector;
-import org.jboss.webbeans.integration.microcontainer.deployer.env.WebBeanDiscoveryEnvironment;
-
-public class WebBeanDiscoveryImpl implements WebBeanDiscovery
-{
- private WebBeanDiscoveryEnvironment environment;
- private EjbDiscoveryEnvironment ejbEnvironment;
-
- public WebBeanDiscoveryImpl(ServletContext servletContext)
- {
- WebBeanDiscoveryEnvVDFConnector connector = new WebBeanDiscoveryEnvVDFConnector(servletContext);
- if (connector.isValid() == false)
- throw new IllegalArgumentException("Cannot find web-beans discovery in deployment: " + servletContext);
-
- environment = connector.getUtility();
- ejbEnvironment = new EjbDiscoveryEnvironment(servletContext);
- }
-
- public Iterable<EjbDescriptor<?>> discoverEjbs()
- {
- return ejbEnvironment.getEjbs();
- }
-
- public Iterable<Class<?>> discoverWebBeanClasses()
- {
- return environment.getWebBeanClasses();
- }
-
- public Iterable<URL> discoverWebBeansXml()
- {
- return environment.getWebBeansXml();
- }
-}
Deleted: projects/webbeans-ri-int/trunk/jbossas/src/main/java/org/jboss/webbeans/integration/jbossas/ejb/EjbDiscoveryEnvironment.java
===================================================================
--- projects/webbeans-ri-int/trunk/jbossas/src/main/java/org/jboss/webbeans/integration/jbossas/ejb/EjbDiscoveryEnvironment.java 2009-01-15 16:24:19 UTC (rev 82913)
+++ projects/webbeans-ri-int/trunk/jbossas/src/main/java/org/jboss/webbeans/integration/jbossas/ejb/EjbDiscoveryEnvironment.java 2009-01-15 16:24:46 UTC (rev 82914)
@@ -1,105 +0,0 @@
-package org.jboss.webbeans.integration.jbossas.ejb;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.servlet.ServletContext;
-
-import org.jboss.deployers.structure.spi.DeploymentUnit;
-import org.jboss.ejb3.common.deployers.spi.AttachmentNames;
-import org.jboss.ejb3.common.resolvers.spi.EjbReferenceResolver;
-import org.jboss.kernel.spi.dependency.KernelController;
-import org.jboss.metadata.ejb.jboss.JBossEnterpriseBeanMetaData;
-import org.jboss.metadata.ejb.jboss.JBossMessageDrivenBeanMetaData;
-import org.jboss.metadata.ejb.jboss.JBossMetaData;
-import org.jboss.metadata.ejb.jboss.JBossSessionBeanMetaData;
-import org.jboss.webbeans.ejb.spi.EjbDescriptor;
-import org.jboss.webbeans.integration.jbossas.util.JBossEjb;
-import org.jboss.webbeans.integration.jbossas.vdf.KernelControllerVDFConnector;
-import org.jboss.webbeans.integration.jbossas.vdf.VFSDeploymentUnitVDFConnector;
-
-/**
- * EjbDiscoveryEnvironment.
- *
- * @author <a href="mailto:alr at jboss.com">ALR</a>
- * @author Pete Muir
- * @author <a href="mailto:ales.justin at jboss.com">Ales Justin</a>
- */
-public class EjbDiscoveryEnvironment
-{
-
- private EjbReferenceResolver resolver;
-
- private List<EjbDescriptor<?>> ejbs;
-
- public EjbDiscoveryEnvironment(ServletContext servletContext)
- {
- KernelControllerVDFConnector controllerVDFConnector = new KernelControllerVDFConnector(servletContext);
- if (controllerVDFConnector.isValid() == false)
- {
- throw new IllegalArgumentException("No such KernelController utility: " + servletContext);
- }
-
- KernelController controller = controllerVDFConnector.getUtility();
-
- resolver = JBossEjb.lookupEjbReferenceResolver(controller);
-
- VFSDeploymentUnitVDFConnector duConnector = new VFSDeploymentUnitVDFConnector(servletContext);
- if (duConnector.isValid() == false)
- {
- throw new IllegalArgumentException("No such DeploymentUnit utility: " + servletContext);
- }
-
- ejbs = new ArrayList<EjbDescriptor<?>>();
-
- DeploymentUnit du = duConnector.getUtility();
- discoverEjbs(du.getTopLevel());
- }
-
- /**
- * Discover ejbs.
- *
- * @param du the deployment unit
- */
- protected void discoverEjbs(DeploymentUnit du)
- {
- // Ensure it's an EJB3 DU (by looking for the processed metadata)
- if (du.getAttachment(AttachmentNames.PROCESSED_METADATA, JBossMetaData.class) != null && du.getAttachment(JBossMetaData.class).isEJB3x())
- {
- for (JBossEnterpriseBeanMetaData enterpriseBeanMetaData : du.getAttachment(JBossMetaData.class).getEnterpriseBeans())
- {
- if (enterpriseBeanMetaData.isSession())
- {
- JBossSessionBeanMetaData sessionBeanMetaData = (JBossSessionBeanMetaData) enterpriseBeanMetaData;
- EjbDescriptor<?> ejbDescriptor = new JBossSessionBeanDescriptorAdaptor<Object>(sessionBeanMetaData, du, resolver);
- ejbs.add(ejbDescriptor);
- }
- else if (enterpriseBeanMetaData.isMessageDriven())
- {
- JBossMessageDrivenBeanMetaData messageDrivenBeanMetaData = (JBossMessageDrivenBeanMetaData) enterpriseBeanMetaData;
- EjbDescriptor<?> ejbDescriptor = new JBossMessageDrivenBeanDescriptorAdaptor<Object>(messageDrivenBeanMetaData, du, resolver);
- ejbs.add(ejbDescriptor);
- }
- }
- }
-
- List<DeploymentUnit> children = du.getChildren();
- if (children != null && children.isEmpty() == false)
- {
- for (DeploymentUnit childDu : children)
- {
- discoverEjbs(childDu);
- }
- }
- }
-
- /**
- * Get ejbs.
- *
- * @return the ejbs
- */
- public List<EjbDescriptor<?>> getEjbs()
- {
- return ejbs;
- }
-}
Deleted: projects/webbeans-ri-int/trunk/jbossas/src/main/java/org/jboss/webbeans/integration/jbossas/ejb/JBossBussinessInterfaceDescriptorAdaptor.java
===================================================================
--- projects/webbeans-ri-int/trunk/jbossas/src/main/java/org/jboss/webbeans/integration/jbossas/ejb/JBossBussinessInterfaceDescriptorAdaptor.java 2009-01-15 16:24:19 UTC (rev 82913)
+++ projects/webbeans-ri-int/trunk/jbossas/src/main/java/org/jboss/webbeans/integration/jbossas/ejb/JBossBussinessInterfaceDescriptorAdaptor.java 2009-01-15 16:24:46 UTC (rev 82914)
@@ -1,46 +0,0 @@
-package org.jboss.webbeans.integration.jbossas.ejb;
-
-import org.jboss.deployers.structure.spi.DeploymentUnit;
-import org.jboss.ejb3.common.resolvers.spi.EjbReference;
-import org.jboss.ejb3.common.resolvers.spi.EjbReferenceResolver;
-import org.jboss.webbeans.ejb.spi.BusinessInterfaceDescriptor;
-import org.jboss.webbeans.integration.jbossas.util.Reflections;
-
-public class JBossBussinessInterfaceDescriptorAdaptor<T> implements BusinessInterfaceDescriptor<T>
-{
- private Class<T> type;
- private String jndiName;
-
- public JBossBussinessInterfaceDescriptorAdaptor(String interfaceName, String ejbName, DeploymentUnit deploymentUnit, EjbReferenceResolver resolver)
- {
- try
- {
- type = (Class<T>) Reflections.classForName(interfaceName, deploymentUnit.getClassLoader());
- }
- catch (ClassCastException e)
- {
- throw new IllegalStateException("Error loading EJB Session bean interface", e);
- }
- catch (ClassNotFoundException e)
- {
- throw new IllegalStateException("Cannot load EJB Session bean interface", e);
- }
- jndiName = resolver.resolveEjb(deploymentUnit, new EjbReference(ejbName, interfaceName, null));
- }
-
- public Class<T> getInterface()
- {
- return type;
- }
-
- public String getJndiName()
- {
- return jndiName;
- }
-
- @Override
- public String toString()
- {
- return getInterface() + " jndi name: " + getJndiName();
- }
-}
Deleted: projects/webbeans-ri-int/trunk/jbossas/src/main/java/org/jboss/webbeans/integration/jbossas/ejb/JBossEJBDescriptorAdaptor.java
===================================================================
--- projects/webbeans-ri-int/trunk/jbossas/src/main/java/org/jboss/webbeans/integration/jbossas/ejb/JBossEJBDescriptorAdaptor.java 2009-01-15 16:24:19 UTC (rev 82913)
+++ projects/webbeans-ri-int/trunk/jbossas/src/main/java/org/jboss/webbeans/integration/jbossas/ejb/JBossEJBDescriptorAdaptor.java 2009-01-15 16:24:46 UTC (rev 82914)
@@ -1,86 +0,0 @@
-package org.jboss.webbeans.integration.jbossas.ejb;
-
-import org.jboss.deployers.structure.spi.DeploymentUnit;
-import org.jboss.ejb3.common.resolvers.spi.EjbReferenceResolver;
-import org.jboss.metadata.ejb.jboss.JBossEnterpriseBeanMetaData;
-import org.jboss.webbeans.ejb.spi.EjbDescriptor;
-import org.jboss.webbeans.integration.jbossas.util.Reflections;
-
-public abstract class JBossEJBDescriptorAdaptor<T> implements EjbDescriptor<T>
-{
- private final Class<T> type;
- private final String ejbName;
-
- public JBossEJBDescriptorAdaptor(JBossEnterpriseBeanMetaData enterpriseBeanMetaData, DeploymentUnit deploymentUnit, EjbReferenceResolver resolver)
- {
- try
- {
- this.type = (Class<T>) Reflections.classForName(enterpriseBeanMetaData.getEjbClass(), deploymentUnit.getClassLoader());
- }
- catch (ClassCastException e)
- {
- throw new IllegalStateException("Error loading EJB Session bean class", e);
- }
- catch (ClassNotFoundException e)
- {
- throw new IllegalStateException("Cannot load EJB Session bean class", e);
- }
-
- this.ejbName = enterpriseBeanMetaData.getEjbName();
- }
-
- public Class<T> getType()
- {
- return type;
- }
-
- public String getEjbName()
- {
- return ejbName;
- }
-
- @Override
- public String toString()
- {
- StringBuilder builder = new StringBuilder();
- builder.append(getEjbName());
- if (isStateful())
- {
- builder.append(" (SFSB)");
- }
- if (isStateless())
- {
- builder.append(" (SLSB)");
- }
- if (isSingleton())
- {
- builder.append(" (Singleton)");
- }
- if (isMessageDriven())
- {
- builder.append(" (MDB)");
- }
- builder.append("; BeanClass: " + getType() + "; Local Business Interfaces: " + getLocalBusinessInterfaces());
- return builder.toString();
- }
-
- @Override
- public boolean equals(Object other)
- {
- if (other instanceof EjbDescriptor)
- {
- EjbDescriptor<T> that = (EjbDescriptor<T>) other;
- return this.getEjbName().equals(that.getEjbName());
- }
- else
- {
- return false;
- }
- }
-
- @Override
- public int hashCode()
- {
- return getEjbName().hashCode();
- }
-}
\ No newline at end of file
Deleted: projects/webbeans-ri-int/trunk/jbossas/src/main/java/org/jboss/webbeans/integration/jbossas/ejb/JBossEjbResolver.java
===================================================================
--- projects/webbeans-ri-int/trunk/jbossas/src/main/java/org/jboss/webbeans/integration/jbossas/ejb/JBossEjbResolver.java 2009-01-15 16:24:19 UTC (rev 82913)
+++ projects/webbeans-ri-int/trunk/jbossas/src/main/java/org/jboss/webbeans/integration/jbossas/ejb/JBossEjbResolver.java 2009-01-15 16:24:46 UTC (rev 82914)
@@ -1,209 +0,0 @@
-package org.jboss.webbeans.integration.jbossas.ejb;
-
-import java.lang.annotation.Annotation;
-import java.lang.reflect.Field;
-import java.lang.reflect.Method;
-
-import javax.annotation.Resource;
-import javax.ejb.EJB;
-import javax.persistence.PersistenceContext;
-import javax.servlet.ServletContext;
-import javax.webbeans.InjectionPoint;
-
-import org.jboss.deployers.structure.spi.DeploymentUnit;
-import org.jboss.ejb3.common.deployers.spi.AttachmentNames;
-import org.jboss.ejb3.common.resolvers.spi.EjbReference;
-import org.jboss.jpa.deployment.ManagedEntityManagerFactory;
-import org.jboss.jpa.deployment.PersistenceUnitDeployment;
-import org.jboss.jpa.injection.InjectedEntityManagerFactory;
-import org.jboss.jpa.resolvers.PersistenceUnitDependencyResolver;
-import org.jboss.kernel.spi.dependency.KernelController;
-import org.jboss.metadata.ejb.jboss.JBossMetaData;
-import org.jboss.metadata.web.jboss.JBossWebMetaData;
-import org.jboss.webbeans.ejb.spi.EjbResolver;
-import org.jboss.webbeans.integration.jbossas.util.JBossEjb;
-import org.jboss.webbeans.integration.jbossas.util.Reflections;
-import org.jboss.webbeans.integration.jbossas.vdf.KernelControllerVDFConnector;
-import org.jboss.webbeans.integration.jbossas.vdf.VFSDeploymentUnitVDFConnector;
-import org.jboss.webbeans.resources.spi.Naming;
-
-/**
- * An implementation of EjbResolver for JBoss AS
- *
- * @author Pete Muir
- *
- */
-public class JBossEjbResolver implements EjbResolver
-{
-
- private static final String RESOURCE_LOOKUP_PREFIX = "java:/comp/env";
-
- private final DeploymentUnit topLevelDeploymentUnit;
- private KernelController controller;
-
- public JBossEjbResolver(ServletContext servletContext)
- {
- KernelControllerVDFConnector controllerVDFConnector = new KernelControllerVDFConnector(servletContext);
- if (controllerVDFConnector.isValid() == false)
- {
- throw new IllegalArgumentException("No such KernelController utility: " + servletContext);
- }
- controller = controllerVDFConnector.getUtility();
-
- VFSDeploymentUnitVDFConnector duConnector = new VFSDeploymentUnitVDFConnector(servletContext);
- if (duConnector.isValid() == false)
- {
- throw new IllegalArgumentException("No such DeploymentUnit utility: " + servletContext);
- }
- DeploymentUnit du = duConnector.getUtility();
- topLevelDeploymentUnit = du.getTopLevel();
- }
-
- public Object resolveEjb(InjectionPoint injectionPoint, Naming naming)
- {
- if (!injectionPoint.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.getAnnotation(EJB.class);
- // Get properties from the annotation
- String beanName = annotation.beanName();
- String beanInterface = annotation.beanInterface().getName();
- String mappedName = annotation.mappedName();
-
- // 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 = JBossEjb.lookupEjbReferenceResolver(controller).resolveEjb(topLevelDeploymentUnit, new EjbReference(beanName, beanInterface, mappedName));
- if (jndiName == null)
- {
- throw new IllegalStateException("No EJBs available which can be injected into " + injectionPoint);
- }
- return naming.lookup(jndiName, Object.class);
- }
-
- public Object resolvePersistenceContext(InjectionPoint injectionPoint, Naming naming)
- {
- if (!injectionPoint.isAnnotationPresent(PersistenceContext.class))
- {
- throw new IllegalArgumentException("No @PersistenceContext 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);
- }
- String persistenceUnitName = injectionPoint.getAnnotation(PersistenceContext.class).unitName();
- PersistenceUnitDependencyResolver persistenceUnitDependencyResolver = JBossEjb.lookupPersistenceUnitDependencyResolver(controller);
- String beanName = getPersistenceUnitSupplier(topLevelDeploymentUnit, persistenceUnitDependencyResolver, persistenceUnitName);
- if (beanName == null)
- {
- throw new IllegalStateException("No persistence unit available which can be injected into " + injectionPoint);
- }
- PersistenceUnitDeployment deployment = JBossEjb.lookupPersistenceUnitDeployment(beanName, controller);
- ManagedEntityManagerFactory managedFactory = deployment.getManagedFactory();
- return new InjectedEntityManagerFactory(managedFactory).createEntityManager();
- }
-
- public Object resolveResource(InjectionPoint injectionPoint, Naming naming)
- {
- if (!injectionPoint.isAnnotationPresent(Resource.class))
- {
- throw new IllegalArgumentException("No @Resource 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);
- }
- String name = getResourceName(injectionPoint);
- return naming.lookup(name, Object.class);
- }
-
- public Class<? extends Annotation> getEJBAnnotation()
- {
- return EJB.class;
- }
-
- public Class<? extends Annotation> getPersistenceContextAnnotation()
- {
- return PersistenceContext.class;
- }
-
- public Class<? extends Annotation> getResourceAnnotation()
- {
- return Resource.class;
- }
-
- private static String getPersistenceUnitSupplier(DeploymentUnit deploymentUnit, PersistenceUnitDependencyResolver persistenceUnitDependencyResolver, String persistenceUnitName)
- {
- if ((deploymentUnit.getAttachment(AttachmentNames.PROCESSED_METADATA, JBossMetaData.class) != null && deploymentUnit.getAttachment(JBossMetaData.class).isEJB3x()) || (deploymentUnit.getAttachment(JBossWebMetaData.class) != null))
- {
- try
- {
- return persistenceUnitDependencyResolver.resolvePersistenceUnitSupplier(deploymentUnit, persistenceUnitName);
- }
- catch (IllegalArgumentException e)
- {
- // No-op, means we can't find the PU in this DU
- }
- }
- for (DeploymentUnit child : deploymentUnit.getChildren())
- {
- String beanName = getPersistenceUnitSupplier(child, persistenceUnitDependencyResolver, persistenceUnitName);
- if (beanName != null)
- {
- return beanName;
- }
- }
- return null;
- }
-
- private static String getResourceName(InjectionPoint injectionPoint)
- {
- Resource resource = injectionPoint.getAnnotation(Resource.class);
- String mappedName = resource.mappedName();
- if (!mappedName.equals(""))
- {
- return mappedName;
- }
- String name = resource.name();
- if (!name.equals(""))
- {
- return RESOURCE_LOOKUP_PREFIX + "/" + name;
- }
- String propertyName;
- if (injectionPoint.getMember() instanceof Field)
- {
- propertyName = injectionPoint.getMember().getName();
- }
- else if (injectionPoint.getMember() instanceof Method)
- {
- propertyName = Reflections.getPropertyName((Method) injectionPoint.getMember());
- if (propertyName == null)
- {
- throw new IllegalArgumentException("Injection point represents a method which doesn't follow JavaBean conventions (unable to determine property name) " + injectionPoint);
- }
- }
- else
- {
- throw new AssertionError("Unable to inject into " + injectionPoint);
- }
- String className = injectionPoint.getMember().getDeclaringClass().getName();
- return RESOURCE_LOOKUP_PREFIX + "/" + className + "/" + propertyName;
- }
-
-}
Deleted: projects/webbeans-ri-int/trunk/jbossas/src/main/java/org/jboss/webbeans/integration/jbossas/ejb/JBossMessageDrivenBeanDescriptorAdaptor.java
===================================================================
--- projects/webbeans-ri-int/trunk/jbossas/src/main/java/org/jboss/webbeans/integration/jbossas/ejb/JBossMessageDrivenBeanDescriptorAdaptor.java 2009-01-15 16:24:19 UTC (rev 82913)
+++ projects/webbeans-ri-int/trunk/jbossas/src/main/java/org/jboss/webbeans/integration/jbossas/ejb/JBossMessageDrivenBeanDescriptorAdaptor.java 2009-01-15 16:24:46 UTC (rev 82914)
@@ -1,55 +0,0 @@
-package org.jboss.webbeans.integration.jbossas.ejb;
-
-import java.lang.reflect.Method;
-
-import org.jboss.deployers.structure.spi.DeploymentUnit;
-import org.jboss.ejb3.common.resolvers.spi.EjbReferenceResolver;
-import org.jboss.metadata.ejb.jboss.JBossMessageDrivenBeanMetaData;
-import org.jboss.webbeans.ejb.spi.BusinessInterfaceDescriptor;
-
-public class JBossMessageDrivenBeanDescriptorAdaptor<T> extends JBossEJBDescriptorAdaptor<T>
-{
- public JBossMessageDrivenBeanDescriptorAdaptor(JBossMessageDrivenBeanMetaData messageDrivenBeanMetaData, DeploymentUnit deploymentUnit, EjbReferenceResolver resolver)
- {
- super(messageDrivenBeanMetaData, deploymentUnit, resolver);
- }
-
- public Iterable<BusinessInterfaceDescriptor<?>> getLocalBusinessInterfaces()
- {
- // Not relevant for MDBs
- return null;
- }
-
- public Iterable<BusinessInterfaceDescriptor<?>> getRemoteBusinessInterfaces()
- {
- // Not relevant for MDBs
- return null;
- }
-
- public Iterable<Method> getRemoveMethods()
- {
- // Not relevant for MDBs
- return null;
- }
-
- public boolean isSingleton()
- {
- return false;
- }
-
- public boolean isStateful()
- {
- return false;
- }
-
- public boolean isStateless()
- {
- return false;
- }
-
- public boolean isMessageDriven()
- {
- return true;
- }
-
-}
Deleted: projects/webbeans-ri-int/trunk/jbossas/src/main/java/org/jboss/webbeans/integration/jbossas/ejb/JBossSessionBeanDescriptorAdaptor.java
===================================================================
--- projects/webbeans-ri-int/trunk/jbossas/src/main/java/org/jboss/webbeans/integration/jbossas/ejb/JBossSessionBeanDescriptorAdaptor.java 2009-01-15 16:24:19 UTC (rev 82913)
+++ projects/webbeans-ri-int/trunk/jbossas/src/main/java/org/jboss/webbeans/integration/jbossas/ejb/JBossSessionBeanDescriptorAdaptor.java 2009-01-15 16:24:46 UTC (rev 82914)
@@ -1,110 +0,0 @@
-package org.jboss.webbeans.integration.jbossas.ejb;
-
-import java.lang.reflect.Method;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.jboss.deployers.structure.spi.DeploymentUnit;
-import org.jboss.ejb3.common.resolvers.spi.EjbReferenceResolver;
-import org.jboss.metadata.ejb.jboss.JBossSessionBeanMetaData;
-import org.jboss.metadata.ejb.spec.RemoveMethodMetaData;
-import org.jboss.webbeans.ejb.spi.BusinessInterfaceDescriptor;
-import org.jboss.webbeans.ejb.spi.EjbDescriptor;
-
-public class JBossSessionBeanDescriptorAdaptor<T> extends JBossEJBDescriptorAdaptor<T> implements EjbDescriptor<T>
-{
- private final List<BusinessInterfaceDescriptor<?>> localBusinessInterfaces;
- private final List<BusinessInterfaceDescriptor<?>> remoteBusinessInterfaces;
- private final List<Method> removeMethods;
- private final boolean stateful;
- private final boolean stateless;
- private final boolean singleton;
- private final String localJndiName;
-
- public JBossSessionBeanDescriptorAdaptor(JBossSessionBeanMetaData sessionBeanMetaData, DeploymentUnit deploymentUnit, EjbReferenceResolver resolver)
- {
- super(sessionBeanMetaData, deploymentUnit, resolver);
- this.localBusinessInterfaces = new ArrayList<BusinessInterfaceDescriptor<?>>();
- if (sessionBeanMetaData.getBusinessLocals() != null)
- {
- for (String interfaceName : sessionBeanMetaData.getBusinessLocals())
- {
- this.localBusinessInterfaces.add(new JBossBussinessInterfaceDescriptorAdaptor<Object>(interfaceName, getEjbName(), deploymentUnit, resolver));
- }
- }
-
- remoteBusinessInterfaces = new ArrayList<BusinessInterfaceDescriptor<?>>();
- if (sessionBeanMetaData.getBusinessRemotes() != null)
- {
- for (String interfaceName : sessionBeanMetaData.getBusinessRemotes())
- {
- this.remoteBusinessInterfaces.add(new JBossBussinessInterfaceDescriptorAdaptor<Object>(interfaceName, getEjbName(), deploymentUnit, resolver));
- }
- }
-
- this.removeMethods = new ArrayList<Method>();
-
- if (sessionBeanMetaData.getRemoveMethods() != null)
- {
- for (RemoveMethodMetaData removeMethodMetaData : sessionBeanMetaData.getRemoveMethods())
- {
- Method removeMethod;
- try
- {
- removeMethod = getType().getMethod(removeMethodMetaData.getBeanMethod().getMethodName(), removeMethodMetaData.getBeanMethod().getMethodParams().toArray(new Class<?>[0]));
- removeMethods.add(removeMethod);
- }
- catch (SecurityException e)
- {
- throw new RuntimeException("Unable to access EJB remove method", e);
- }
- catch (NoSuchMethodException e)
- {
- throw new RuntimeException("Unable to access EJB remove method", e);
- }
-
- }
- }
-
- this.stateful = sessionBeanMetaData.isStateful();
- this.stateless = sessionBeanMetaData.isStateless();
- this.singleton = false;
- this.localJndiName = sessionBeanMetaData.getLocalJndiName();
- }
-
- public Iterable<BusinessInterfaceDescriptor<?>> getLocalBusinessInterfaces()
- {
- return localBusinessInterfaces;
- }
-
- public Iterable<BusinessInterfaceDescriptor<?>> getRemoteBusinessInterfaces()
- {
- return remoteBusinessInterfaces;
- }
-
- public Iterable<Method> getRemoveMethods()
- {
- return removeMethods;
- }
-
- public boolean isSingleton()
- {
- return singleton;
- }
-
- public boolean isStateful()
- {
- return stateful;
- }
-
- public boolean isStateless()
- {
- return stateless;
- }
-
- public boolean isMessageDriven()
- {
- return false;
- }
-
-}
Modified: projects/webbeans-ri-int/trunk/jbossas/src/main/resources/META-INF/web-beans-ri.properties
===================================================================
--- projects/webbeans-ri-int/trunk/jbossas/src/main/resources/META-INF/web-beans-ri.properties 2009-01-15 16:24:19 UTC (rev 82913)
+++ projects/webbeans-ri-int/trunk/jbossas/src/main/resources/META-INF/web-beans-ri.properties 2009-01-15 16:24:46 UTC (rev 82914)
@@ -1,2 +1,3 @@
-org.jboss.webbeans.bootstrap.spi.WebBeanDiscovery=org.jboss.webbeans.integration.jbossas.bootstrap.WebBeanDiscoveryImpl
-org.jboss.webbeans.ejb.spi.EjbResolver=org.jboss.webbeans.integration.jbossas.ejb.JBossEjbResolver
\ No newline at end of file
+org.jboss.webbeans.bootstrap.spi.WebBeanDiscovery=org.jboss.webbeans.integration.jbossas.bootstrap.ServletJBossWebBeanDiscovery
+org.jboss.webbeans.bootstrap.spi.EjbDiscovery=org.jboss.webbeans.integration.jbossas.bootstrap.ServletJBossEjbDiscovery
+org.jboss.webbeans.ejb.spi.EjbResolver=org.jboss.webbeans.integration.jbossas.ejb.ServletJBossEjbResolver
\ No newline at end of file
Modified: projects/webbeans-ri-int/trunk/microcontainer/src/main/java/org/jboss/webbeans/integration/microcontainer/deployer/cl/WebBeansUrlIntegrationDeployer.java
===================================================================
--- projects/webbeans-ri-int/trunk/microcontainer/src/main/java/org/jboss/webbeans/integration/microcontainer/deployer/cl/WebBeansUrlIntegrationDeployer.java 2009-01-15 16:24:19 UTC (rev 82913)
+++ projects/webbeans-ri-int/trunk/microcontainer/src/main/java/org/jboss/webbeans/integration/microcontainer/deployer/cl/WebBeansUrlIntegrationDeployer.java 2009-01-15 16:24:46 UTC (rev 82914)
@@ -3,8 +3,8 @@
import java.net.MalformedURLException;
import java.net.URL;
+import java.util.HashSet;
import java.util.Set;
-import java.util.HashSet;
import org.jboss.deployers.vfs.plugins.classloader.PathUrlIntegrationDeployer;
import org.jboss.util.StringPropertyReplacer;
@@ -41,6 +41,7 @@
urls.add(new URL(libOpt + "webbeans-ri-spi.jar"));
urls.add(new URL(libOpt + "webbeans-ri.jar"));
urls.add(new URL(libOpt + "webbeans-ri-int-jbossas.jar"));
+ urls.add(new URL(libOpt + "webbeans-ri-int-jboss-ejb.jar"));
return urls;
}
Modified: projects/webbeans-ri-int/trunk/pom.xml
===================================================================
--- projects/webbeans-ri-int/trunk/pom.xml 2009-01-15 16:24:19 UTC (rev 82913)
+++ projects/webbeans-ri-int/trunk/pom.xml 2009-01-15 16:24:46 UTC (rev 82914)
@@ -20,6 +20,7 @@
<module>build</module>
<module>jbossas</module>
<module>microcontainer</module>
+ <module>ejb</module>
</modules>
<properties>
@@ -197,6 +198,11 @@
<artifactId>webbeans-ri-int-jbossas</artifactId>
<version>${project.version}</version>
</dependency>
+ <dependency>
+ <groupId>org.jboss.webbeans.integration</groupId>
+ <artifactId>webbeans-ri-int-jboss-ejb</artifactId>
+ <version>${project.version}</version>
+ </dependency>
<dependency>
<groupId>org.jboss.deployers</groupId>
@@ -409,4 +415,4 @@
</profile>
</profiles>
-</project>
\ No newline at end of file
+</project>
More information about the jboss-cvs-commits
mailing list