[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