[jboss-cvs] JBossAS SVN: r82651 - in projects/webbeans-ri-int/trunk/jbossas/src/main/java/org/jboss/webbeans/integration/jbossas: ejb and 2 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Tue Jan 6 18:53:18 EST 2009


Author: petemuir
Date: 2009-01-06 18:53:16 -0500 (Tue, 06 Jan 2009)
New Revision: 82651

Added:
   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/util/JBossEjb.java
Modified:
   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/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/vdf/FederatedAnnotationEnvironmentVDFConnector.java
Log:
actually commit EjbResolver classes, fix imports from spi refactor

Modified: 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-06 23:47:18 UTC (rev 82650)
+++ projects/webbeans-ri-int/trunk/jbossas/src/main/java/org/jboss/webbeans/integration/jbossas/bootstrap/WebBeanDiscoveryImpl.java	2009-01-06 23:53:16 UTC (rev 82651)
@@ -4,8 +4,8 @@
 
 import javax.servlet.ServletContext;
 
-import org.jboss.webbeans.bootstrap.spi.EjbDescriptor;
 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;

Modified: 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-06 23:47:18 UTC (rev 82650)
+++ projects/webbeans-ri-int/trunk/jbossas/src/main/java/org/jboss/webbeans/integration/jbossas/ejb/EjbDiscoveryEnvironment.java	2009-01-06 23:53:16 UTC (rev 82651)
@@ -13,7 +13,7 @@
 import org.jboss.metadata.ejb.jboss.JBossMessageDrivenBeanMetaData;
 import org.jboss.metadata.ejb.jboss.JBossMetaData;
 import org.jboss.metadata.ejb.jboss.JBossSessionBeanMetaData;
-import org.jboss.webbeans.bootstrap.spi.EjbDescriptor;
+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;

Modified: 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-06 23:47:18 UTC (rev 82650)
+++ projects/webbeans-ri-int/trunk/jbossas/src/main/java/org/jboss/webbeans/integration/jbossas/ejb/JBossBussinessInterfaceDescriptorAdaptor.java	2009-01-06 23:53:16 UTC (rev 82651)
@@ -3,7 +3,7 @@
 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.bootstrap.spi.BusinessInterfaceDescriptor;
+import org.jboss.webbeans.ejb.spi.BusinessInterfaceDescriptor;
 import org.jboss.webbeans.integration.jbossas.util.Reflections;
 
 public class JBossBussinessInterfaceDescriptorAdaptor<T> implements BusinessInterfaceDescriptor<T>

Modified: 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-06 23:47:18 UTC (rev 82650)
+++ projects/webbeans-ri-int/trunk/jbossas/src/main/java/org/jboss/webbeans/integration/jbossas/ejb/JBossEJBDescriptorAdaptor.java	2009-01-06 23:53:16 UTC (rev 82651)
@@ -3,7 +3,7 @@
 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.bootstrap.spi.EjbDescriptor;
+import org.jboss.webbeans.ejb.spi.EjbDescriptor;
 import org.jboss.webbeans.integration.jbossas.util.Reflections;
 
 public abstract class JBossEJBDescriptorAdaptor<T> implements EjbDescriptor<T>

Added: 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	                        (rev 0)
+++ projects/webbeans-ri-int/trunk/jbossas/src/main/java/org/jboss/webbeans/integration/jbossas/ejb/JBossEjbResolver.java	2009-01-06 23:53:16 UTC (rev 82651)
@@ -0,0 +1,75 @@
+package org.jboss.webbeans.integration.jbossas.ejb;
+
+import java.lang.annotation.Annotation;
+
+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.resolvers.spi.EjbReference;
+import org.jboss.kernel.spi.dependency.KernelController;
+import org.jboss.webbeans.ejb.spi.EjbResolver;
+import org.jboss.webbeans.integration.jbossas.util.JBossEjb;
+import org.jboss.webbeans.integration.jbossas.vdf.KernelControllerVDFConnector;
+import org.jboss.webbeans.integration.jbossas.vdf.VFSDeploymentUnitVDFConnector;
+
+public class JBossEjbResolver implements EjbResolver
+{
+   
+   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 String resolveEjb(InjectionPoint 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()) && injectionPoint.getType() instanceof Class)
+      {
+         beanInterface = ((Class<?>) injectionPoint.getType()).getName();
+      }
+
+      return JBossEjb.lookupEjbReferenceResolver(controller).resolveEjb(topLevelDeploymentUnit, new EjbReference(beanName, beanInterface, mappedName));
+   }
+
+   public String resolvePersistenceUnit(InjectionPoint injectionPoint)
+   {
+      // TODO Auto-generated method stub
+      return null;
+   }
+
+   public Class<? extends Annotation> getEJBAnnotation()
+   {
+      return EJB.class;
+   }
+
+   public Class<? extends Annotation> getPersistenceContextAnnotation()
+   {
+      return PersistenceContext.class;
+   }
+   
+}


Property changes on: projects/webbeans-ri-int/trunk/jbossas/src/main/java/org/jboss/webbeans/integration/jbossas/ejb/JBossEjbResolver.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Modified: 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-06 23:47:18 UTC (rev 82650)
+++ projects/webbeans-ri-int/trunk/jbossas/src/main/java/org/jboss/webbeans/integration/jbossas/ejb/JBossMessageDrivenBeanDescriptorAdaptor.java	2009-01-06 23:53:16 UTC (rev 82651)
@@ -5,7 +5,7 @@
 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.bootstrap.spi.BusinessInterfaceDescriptor;
+import org.jboss.webbeans.ejb.spi.BusinessInterfaceDescriptor;
 
 public class JBossMessageDrivenBeanDescriptorAdaptor<T> extends JBossEJBDescriptorAdaptor<T>
 {

Modified: 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-06 23:47:18 UTC (rev 82650)
+++ projects/webbeans-ri-int/trunk/jbossas/src/main/java/org/jboss/webbeans/integration/jbossas/ejb/JBossSessionBeanDescriptorAdaptor.java	2009-01-06 23:53:16 UTC (rev 82651)
@@ -8,8 +8,8 @@
 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.bootstrap.spi.BusinessInterfaceDescriptor;
-import org.jboss.webbeans.bootstrap.spi.EjbDescriptor;
+import org.jboss.webbeans.ejb.spi.BusinessInterfaceDescriptor;
+import org.jboss.webbeans.ejb.spi.EjbDescriptor;
 
 public class JBossSessionBeanDescriptorAdaptor<T> extends JBossEJBDescriptorAdaptor<T> implements EjbDescriptor<T>
 {

Added: projects/webbeans-ri-int/trunk/jbossas/src/main/java/org/jboss/webbeans/integration/jbossas/util/JBossEjb.java
===================================================================
--- projects/webbeans-ri-int/trunk/jbossas/src/main/java/org/jboss/webbeans/integration/jbossas/util/JBossEjb.java	                        (rev 0)
+++ projects/webbeans-ri-int/trunk/jbossas/src/main/java/org/jboss/webbeans/integration/jbossas/util/JBossEjb.java	2009-01-06 23:53:16 UTC (rev 82651)
@@ -0,0 +1,94 @@
+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.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";
+      
+ 
+   /**
+    * 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 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();
+   }
+   
+}


Property changes on: projects/webbeans-ri-int/trunk/jbossas/src/main/java/org/jboss/webbeans/integration/jbossas/util/JBossEjb.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Modified: projects/webbeans-ri-int/trunk/jbossas/src/main/java/org/jboss/webbeans/integration/jbossas/vdf/FederatedAnnotationEnvironmentVDFConnector.java
===================================================================
--- projects/webbeans-ri-int/trunk/jbossas/src/main/java/org/jboss/webbeans/integration/jbossas/vdf/FederatedAnnotationEnvironmentVDFConnector.java	2009-01-06 23:47:18 UTC (rev 82650)
+++ projects/webbeans-ri-int/trunk/jbossas/src/main/java/org/jboss/webbeans/integration/jbossas/vdf/FederatedAnnotationEnvironmentVDFConnector.java	2009-01-06 23:53:16 UTC (rev 82651)
@@ -23,6 +23,7 @@
 
 import java.util.ArrayList;
 import java.util.List;
+
 import javax.servlet.ServletContext;
 
 import org.jboss.deployers.spi.annotations.AnnotationEnvironment;




More information about the jboss-cvs-commits mailing list