[jboss-cvs] JBossAS SVN: r109210 - in projects/ejb3/trunk/core: src/main/java/org/jboss/ejb3 and 8 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Tue Nov 9 09:12:38 EST 2010


Author: ALRubinger
Date: 2010-11-09 09:12:37 -0500 (Tue, 09 Nov 2010)
New Revision: 109210

Modified:
   projects/ejb3/trunk/core/pom.xml
   projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/EJBContainer.java
   projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/Ejb3Deployment.java
   projects/ejb3/trunk/core/src/test/java/org/jboss/ejb3/core/test/common/AbstractEJB3TestCase.java
   projects/ejb3/trunk/core/src/test/java/org/jboss/ejb3/core/test/common/MockEjb3Deployment.java
   projects/ejb3/trunk/core/src/test/java/org/jboss/ejb3/core/test/ejbthree1150/unit/WebServiceContextInjectionTestCase.java
   projects/ejb3/trunk/core/src/test/java/org/jboss/ejb3/core/test/ejbthree1506/unit/DescriptorAnnotationTestCase.java
   projects/ejb3/trunk/core/src/test/java/org/jboss/ejb3/core/test/ejbthree1558/unit/JBossMessageEndpointFactoryTestCase.java
   projects/ejb3/trunk/core/src/test/java/org/jboss/ejb3/core/test/ejbthree1914/unit/OverrideAnnotationTestCase.java
   projects/ejb3/trunk/core/src/test/java/org/jboss/ejb3/core/test/regression/ejbthree1253/unit/OverriddenProxyFactoryTestCase.java
   projects/ejb3/trunk/core/src/test/java/org/jboss/ejb3/test/cachepassivation/MockDeploymentUnit.java
   projects/ejb3/trunk/core/src/test/java/org/jboss/ejb3/test/cachepassivation/unit/CachePassivationUnitTestCase.java
Log:
[EJBTHREE-2046] Integrate latest Bean Instantiator into EJB3 Core

Modified: projects/ejb3/trunk/core/pom.xml
===================================================================
--- projects/ejb3/trunk/core/pom.xml	2010-11-09 12:14:55 UTC (rev 109209)
+++ projects/ejb3/trunk/core/pom.xml	2010-11-09 14:12:37 UTC (rev 109210)
@@ -48,7 +48,7 @@
     <version.org.jboss.ejb3.tx2>0.0.1</version.org.jboss.ejb3.tx2>
     <version.sun-jaxws>2.1.1</version.sun-jaxws>
     <version.org.jboss.ejb3.async>1.0.0-alpha-5</version.org.jboss.ejb3.async>
-    <version.org.jboss.ejb3.instantiator>1.0.0-alpha-2</version.org.jboss.ejb3.instantiator>
+    <version.org.jboss.ejb3.instantiator>1.0.0-alpha-3-SNAPSHOT</version.org.jboss.ejb3.instantiator>
     <version.org.jboss.ejb3.effigy>0.1.0-SNAPSHOT</version.org.jboss.ejb3.effigy>
     <version.org.jboss.ejb3.ejbref.resolver>1.0.0-alpha-1</version.org.jboss.ejb3.ejbref.resolver>
   </properties>

Modified: projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/EJBContainer.java
===================================================================
--- projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/EJBContainer.java	2010-11-09 12:14:55 UTC (rev 109209)
+++ projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/EJBContainer.java	2010-11-09 14:12:37 UTC (rev 109210)
@@ -80,11 +80,13 @@
 import org.jboss.ejb3.annotation.defaults.PoolDefaults;
 import org.jboss.ejb3.aop.BeanContainer;
 import org.jboss.ejb3.cluster.metadata.ClusteredMetaDataBridge;
+import org.jboss.ejb3.common.registrar.spi.Ejb3RegistrarLocator;
 import org.jboss.ejb3.common.spi.ErrorCodes;
 import org.jboss.ejb3.deployers.JBoss5DependencyPolicy;
 import org.jboss.ejb3.injection.InjectionInvocation;
 import org.jboss.ejb3.instantiator.spi.BeanInstantiationException;
 import org.jboss.ejb3.instantiator.spi.BeanInstantiator;
+import org.jboss.ejb3.instantiator.spi.BeanInstantiatorRegistration;
 import org.jboss.ejb3.instantiator.spi.InvalidConstructionParamsException;
 import org.jboss.ejb3.interceptor.InterceptorInfoRepository;
 import org.jboss.ejb3.interceptor.InterceptorInjector;
@@ -301,15 +303,21 @@
       {
          // set the dependency policy
          this.dependencyPolicy = deployment.createDependencyPolicy(this);
-         
-         // Set the bean instantiator
-         final BeanInstantiator beanInstantiator = deployment.getBeanInstantiator();
-         if (beanInstantiator != null)
-         {
-            this.beanInstantiator = beanInstantiator;            
-         }
-
       }
+      
+      // Get the Bean Instantiator
+      final String appName = deployment.getAppName();
+      final String moduleName = deployment.getDeploymentUnit().getShortName();
+      final String beanInstantiatorAttachmentName = BeanInstantiatorRegistration.getInstantiatorRegistrationName(
+            appName, moduleName, ejbName);
+      final BeanInstantiator beanInstantiator = Ejb3RegistrarLocator.locateRegistrar().lookup(
+            beanInstantiatorAttachmentName, BeanInstantiator.class);
+      if (beanInstantiator == null)
+      {
+         throw new IllegalStateException(deployment + " must contain an attachment of name "
+               + beanInstantiatorAttachmentName);
+      }
+      this.beanInstantiator = beanInstantiator;
 
       Advisor advisor = getAdvisor();
       AdviceStack stack = advisor.getManager().getAdviceStack("InjectionCallbackStack");

Modified: projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/Ejb3Deployment.java
===================================================================
--- projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/Ejb3Deployment.java	2010-11-09 12:14:55 UTC (rev 109209)
+++ projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/Ejb3Deployment.java	2010-11-09 14:12:37 UTC (rev 109210)
@@ -51,8 +51,6 @@
 import org.jboss.ejb3.common.lang.ClassHelper;
 import org.jboss.ejb3.ejbref.resolver.spi.EjbReference;
 import org.jboss.ejb3.ejbref.resolver.spi.EjbReferenceResolver;
-import org.jboss.ejb3.instantiator.spi.AttachmentNames;
-import org.jboss.ejb3.instantiator.spi.BeanInstantiator;
 import org.jboss.ejb3.javaee.JavaEEApplication;
 import org.jboss.ejb3.javaee.JavaEEComponent;
 import org.jboss.ejb3.javaee.JavaEEComponentHelper;
@@ -145,10 +143,7 @@
    
    private final ExecutorService asynchronousProcessor;
    
-   /**
-    * Used to construct bean instances
-    */
-   private final BeanInstantiator beanInstantiator;
+   private final String appName;
 
    /**
     * Do not deploy persistence unit anymore.
@@ -188,16 +183,16 @@
       }
       this.asynchronousProcessor = es;
       
-      // Get the Bean Instantiator
-      final String beanInstantiatorAttachmentName = AttachmentNames.NAME_BEAN_INSTANCE_INSTANTIATOR;
-      final BeanInstantiator beanInstantiator = (BeanInstantiator) unit.getAttachment(beanInstantiatorAttachmentName);
-      if (beanInstantiator == null)
-      {
-         throw new IllegalStateException(unit + " must contain an attachment of name " + beanInstantiatorAttachmentName);
-      }
-      this.beanInstantiator = beanInstantiator;
+      // Set the app name (if exists)
+      final org.jboss.deployers.structure.spi.DeploymentUnit parent = deploymentUnit.getParent();
+      this.appName = parent != null ? parent.getName() : null;
    }
 
+   public String getAppName()
+   {
+      return this.appName;
+   }
+   
    @Deprecated
    public boolean canResolveEJB()
    {
@@ -281,11 +276,6 @@
    {
       return asynchronousProcessor;
    }
-   
-   public BeanInstantiator getBeanInstantiator()
-   {
-      return beanInstantiator;
-   }
 
    @Inject
    public void setMessageDestinationReferenceResolver(MessageDestinationReferenceResolver resolver)

Modified: projects/ejb3/trunk/core/src/test/java/org/jboss/ejb3/core/test/common/AbstractEJB3TestCase.java
===================================================================
--- projects/ejb3/trunk/core/src/test/java/org/jboss/ejb3/core/test/common/AbstractEJB3TestCase.java	2010-11-09 12:14:55 UTC (rev 109209)
+++ projects/ejb3/trunk/core/src/test/java/org/jboss/ejb3/core/test/common/AbstractEJB3TestCase.java	2010-11-09 14:12:37 UTC (rev 109210)
@@ -21,9 +21,12 @@
  */
 package org.jboss.ejb3.core.test.common;
 
+import static org.junit.Assert.assertEquals;
+
 import java.net.URL;
 import java.security.AccessController;
 import java.security.PrivilegedAction;
+import java.util.ArrayList;
 import java.util.Collection;
 import java.util.HashSet;
 import java.util.Hashtable;
@@ -57,9 +60,13 @@
 import org.jboss.ejb3.cache.persistence.PersistenceManagerFactoryRegistry;
 import org.jboss.ejb3.common.deployers.spi.AttachmentNames;
 import org.jboss.ejb3.common.registrar.plugin.mc.Ejb3McRegistrar;
+import org.jboss.ejb3.common.registrar.spi.DuplicateBindException;
 import org.jboss.ejb3.common.registrar.spi.Ejb3RegistrarLocator;
 import org.jboss.ejb3.common.registrar.spi.NotBoundException;
 import org.jboss.ejb3.ejbref.resolver.ejb30.impl.ScopedEJBReferenceResolver;
+import org.jboss.ejb3.instantiator.impl.Ejb31SpecBeanInstantiator;
+import org.jboss.ejb3.instantiator.spi.BeanInstantiator;
+import org.jboss.ejb3.instantiator.spi.BeanInstantiatorRegistration;
 import org.jboss.ejb3.service.ServiceContainer;
 import org.jboss.ejb3.session.SessionContainer;
 import org.jboss.ejb3.stateful.StatefulContainer;
@@ -75,8 +82,6 @@
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
 
-import static org.junit.Assert.assertEquals;
-
 /**
  * Create an environment with some basic facilities on which EJB 3 containers
  * depend.
@@ -101,6 +106,8 @@
    private static InitialContext initialContext;
 
    private static Set<SessionContainer> allDeployedContainers = new HashSet<SessionContainer>();
+   
+   private static final Collection<String> registeredBeanInstantiators = new ArrayList<String>();
 
    /**
     * Types of Containers Supported
@@ -138,7 +145,7 @@
    protected static void assertCause(Throwable expected, Throwable actual)
    {
       Throwable cause = actual.getCause();
-      if(cause != null)
+      if (cause != null)
          assertCause(expected, cause);
       else
          assertThrowable(expected, actual);
@@ -153,7 +160,7 @@
    public static void beforeClass() throws Exception
    {
       System.setProperty("xb.builder.useUnorderedSequence", "true");
-      
+
       // FIXME: weirdness in InitialContextFactory (see EJBTHREE-1097)
       InitialContextFactory.close(null, null);
 
@@ -218,7 +225,8 @@
     * @return
     * @throws DeploymentException 
     */
-   public static Collection<SessionContainer> deploySessionEjbs(Class<?>... beanImplementationClasses) throws DeploymentException
+   public static Collection<SessionContainer> deploySessionEjbs(Class<?>... beanImplementationClasses)
+         throws DeploymentException
    {
       // Initialize
       Collection<SessionContainer> containers = new HashSet<SessionContainer>();
@@ -233,7 +241,8 @@
       });
 
       AbstractDeploymentUnit deploymentUnit = new AbstractDeploymentUnit(new AbstractDeploymentContext("test", ""));
-      deploymentUnit.createClassLoader(new ClassLoaderFactory() {
+      deploymentUnit.createClassLoader(new ClassLoaderFactory()
+      {
          public ClassLoader createClassLoader(org.jboss.deployers.structure.spi.DeploymentUnit unit) throws Exception
          {
             return Thread.currentThread().getContextClassLoader();
@@ -247,7 +256,7 @@
       Ejb3Deployment deployment = MockEjb3Deployment.create(unit, deploymentUnit);
 
       deployment.setEJBReferenceResolver(new ScopedEJBReferenceResolver());
-      
+
       /*
        * Create Metadata
        */
@@ -256,7 +265,7 @@
       JBossMetaData jbossMetaData = MetaDataHelper.getMetaDataFromBeanImplClasses(beanImplementationClasses);
 
       unit.addAttachment(AttachmentNames.PROCESSED_METADATA, jbossMetaData);
-      
+
       // Iterate through each EJB
       for (JBossEnterpriseBeanMetaData beanMetaData : jbossMetaData.getEnterpriseBeans())
       {
@@ -291,7 +300,7 @@
                ? AbstractEJB3TestCase.DOMAIN_NAME_SLSB
                : AbstractEJB3TestCase.DOMAIN_NAME_SFSB);
          Hashtable<?, ?> ctxProperties = null;
-         
+
          // Is SFSB, manually set a PM Factory Registry and Cache Factory
          //TODO C'mon, here?  Much better elsewhere.
          if (sessionType.equals(ContainerType.SFSB))
@@ -307,6 +316,23 @@
             deployment.setCacheFactoryRegistry(cacheFactoryRegistry);
          }
 
+         // Install a BeanInstantiator
+         final org.jboss.deployers.structure.spi.DeploymentUnit parent = deploymentUnit.getParent();
+         final String appName = parent != null ? parent.getName() : null;
+         final String moduleName = unit.getShortName();
+         final String bindName = BeanInstantiatorRegistration.getInstantiatorRegistrationName(appName, moduleName,
+               beanMetaData.getName());
+         try
+         {
+            Ejb3RegistrarLocator.locateRegistrar().bind(bindName, new Ejb31SpecBeanInstantiator());
+            registeredBeanInstantiators.add(bindName);
+            
+         }
+         catch (final DuplicateBindException dbe)
+         {
+            throw new RuntimeException("Error in test setup", dbe);
+         }
+
          // Create a Session Container
          SessionContainer container = instanciateContainer(sessionType, cl, beanClassname, smd.getEjbName(), domain,
                ctxProperties, deployment, smd);
@@ -318,7 +344,7 @@
       }
 
       // make sure the containers are available through lookup
-      for(SessionContainer container : containers)
+      for (SessionContainer container : containers)
       {
          try
          {
@@ -372,17 +398,17 @@
          Object msgObject = obj;
          if (obj instanceof AbstractDemandMetaData)
          {
-            msgObject = ((AbstractDemandMetaData)obj).getDemand();
+            msgObject = ((AbstractDemandMetaData) obj).getDemand();
          }
          log.info("\t" + msgObject);
       }
       log.info("  and demands:");
-      for(DemandMetaData dmd : policy.getDemands())
+      for (DemandMetaData dmd : policy.getDemands())
       {
          log.info("\t" + dmd.getDemand());
       }
       log.info("  and supplies:");
-      for(SupplyMetaData smd : policy.getSupplies())
+      for (SupplyMetaData smd : policy.getSupplies())
       {
          log.info("\t" + smd.getSupply());
       }
@@ -390,15 +416,16 @@
       {
          bootstrap.getKernel().getController().install(bean);
       }
-      catch(Throwable t)
+      catch (Throwable t)
       {
-         if(t instanceof Error)
+         if (t instanceof Error)
             throw (Error) t;
-         if(t instanceof RuntimeException)
+         if (t instanceof RuntimeException)
             throw (RuntimeException) t;
          throw (Exception) t;
       }
    }
+
    /**
     * Instanciates the appropriate SessionContainer based on the specified arguments and returns it
     *  
@@ -430,8 +457,7 @@
          }
 
       });
-      
-      
+
       /*
        * Instanciate the Container, depending upon the type specified
        */
@@ -508,7 +534,7 @@
       {
          install(containerName, container, container.getDependencyPolicy());
       }
-      catch(Exception e)
+      catch (Exception e)
       {
          throw new DeploymentException(e);
       }
@@ -546,7 +572,59 @@
       {
          // Ignore
       }
+      
+      
+      
       Ejb3Registry.unregister(container);
       allDeployedContainers.remove(container);
+      for(final String instantiatorBindName:registeredBeanInstantiators)
+      {
+         try
+         {
+            Ejb3RegistrarLocator.locateRegistrar().unbind(instantiatorBindName);
+         }
+         catch (NotBoundException nbe)
+         {
+            // Ignore
+         }
+      }
    }
+   
+   /**
+    * Registers a mock {@link BeanInstantiator} for the given EJB Name
+    * assuming no application (EAR) name and a module name of 
+    * {@link MockDeploymentUnit#NAME_MODULE}.
+    * @param ejbName
+    */
+   public static void registerBeanInstantiator(final String moduleName, final String ejbName)
+   {
+      final org.jboss.deployers.structure.spi.DeploymentUnit parent = null;
+      final String appName = parent != null ? parent.getName() : null;
+      final String bindName = BeanInstantiatorRegistration
+            .getInstantiatorRegistrationName(appName, moduleName, ejbName);
+      try
+      {
+         Ejb3RegistrarLocator.locateRegistrar().bind(bindName, new Ejb31SpecBeanInstantiator());
+      }
+      catch (final DuplicateBindException dbe)
+      {
+         throw new RuntimeException("Error in test setup", dbe);
+      }
+   }
+
+   public static void unregisterBeanInstantiator(final String moduleName, final String ejbName)
+   {
+      final org.jboss.deployers.structure.spi.DeploymentUnit parent = null;
+      final String appName = parent != null ? parent.getName() : null;
+      final String bindName = BeanInstantiatorRegistration
+            .getInstantiatorRegistrationName(appName, moduleName, ejbName);
+      try
+      {
+         Ejb3RegistrarLocator.locateRegistrar().unbind(bindName);
+      }
+      catch (final NotBoundException nbe)
+      {
+         // Ignore
+      }
+   }
 }

Modified: projects/ejb3/trunk/core/src/test/java/org/jboss/ejb3/core/test/common/MockEjb3Deployment.java
===================================================================
--- projects/ejb3/trunk/core/src/test/java/org/jboss/ejb3/core/test/common/MockEjb3Deployment.java	2010-11-09 12:14:55 UTC (rev 109209)
+++ projects/ejb3/trunk/core/src/test/java/org/jboss/ejb3/core/test/common/MockEjb3Deployment.java	2010-11-09 14:12:37 UTC (rev 109210)
@@ -40,7 +40,6 @@
 import org.jboss.ejb3.common.resolvers.plugins.FirstMatchEjbReferenceResolver;
 import org.jboss.ejb3.common.resolvers.spi.EjbReferenceResolver;
 import org.jboss.ejb3.deployers.JBoss5DependencyPolicy;
-import org.jboss.ejb3.instantiator.impl.Ejb31SpecBeanInstantiator;
 import org.jboss.ejb3.javaee.JavaEEComponent;
 import org.jboss.ejb3.pool.PoolFactory;
 import org.jboss.ejb3.pool.PoolFactoryRegistry;
@@ -58,16 +57,14 @@
    public static MockEjb3Deployment create(DeploymentUnit unit)
    {
       unit.addAttachment(AttachmentNames.ASYNC_INVOCATION_PROCESSOR, Executors.newCachedThreadPool());
-      unit.addAttachment(org.jboss.ejb3.instantiator.spi.AttachmentNames.NAME_BEAN_INSTANCE_INSTANTIATOR,
-            new Ejb31SpecBeanInstantiator());
+      
       return new MockEjb3Deployment(unit);
    }
 
    public static MockEjb3Deployment create(DeploymentUnit unit, org.jboss.deployers.structure.spi.DeploymentUnit du)
    {
       unit.addAttachment(AttachmentNames.ASYNC_INVOCATION_PROCESSOR, Executors.newCachedThreadPool());
-      unit.addAttachment(org.jboss.ejb3.instantiator.spi.AttachmentNames.NAME_BEAN_INSTANCE_INSTANTIATOR,
-            new Ejb31SpecBeanInstantiator());
+      
       return new MockEjb3Deployment(unit, du);
    }
    

Modified: projects/ejb3/trunk/core/src/test/java/org/jboss/ejb3/core/test/ejbthree1150/unit/WebServiceContextInjectionTestCase.java
===================================================================
--- projects/ejb3/trunk/core/src/test/java/org/jboss/ejb3/core/test/ejbthree1150/unit/WebServiceContextInjectionTestCase.java	2010-11-09 12:14:55 UTC (rev 109209)
+++ projects/ejb3/trunk/core/src/test/java/org/jboss/ejb3/core/test/ejbthree1150/unit/WebServiceContextInjectionTestCase.java	2010-11-09 14:12:37 UTC (rev 109210)
@@ -32,12 +32,16 @@
 
 import org.jboss.aop.Domain;
 import org.jboss.ejb3.Ejb3Deployment;
+import org.jboss.ejb3.common.registrar.spi.DuplicateBindException;
 import org.jboss.ejb3.common.registrar.spi.Ejb3RegistrarLocator;
 import org.jboss.ejb3.core.test.common.AbstractEJB3TestCase;
 import org.jboss.ejb3.core.test.common.MockEjb3Deployment;
 import org.jboss.ejb3.core.test.ejbthree1150.AnnotatedWebServiceContextInjectedBean;
 import org.jboss.ejb3.core.test.ejbthree1150.OverrideWebServiceContextInjectedBean;
 import org.jboss.ejb3.core.test.ejbthree1150.WebServiceContextInjected;
+import org.jboss.ejb3.instantiator.impl.Ejb31SpecBeanInstantiator;
+import org.jboss.ejb3.instantiator.spi.BeanInstantiator;
+import org.jboss.ejb3.instantiator.spi.BeanInstantiatorRegistration;
 import org.jboss.ejb3.stateless.StatelessContainer;
 import org.jboss.ejb3.test.cachepassivation.MockDeploymentUnit;
 import org.jboss.ejb3.test.common.MetaDataHelper;
@@ -47,7 +51,6 @@
 import org.jboss.metadata.javaee.spec.ResourceEnvironmentReferencesMetaData;
 import org.jboss.metadata.javaee.spec.ResourceInjectionTargetMetaData;
 import org.junit.AfterClass;
-import org.junit.BeforeClass;
 import org.junit.Test;
 
 /**
@@ -74,6 +77,10 @@
       Hashtable<?,?> ctxProperties = null;
       Ejb3Deployment deployment = MockEjb3Deployment.create(MockDeploymentUnit.create());
       JBossSessionBeanMetaData beanMetaData = MetaDataHelper.getMetadataFromBeanImplClass(beanClass);
+      
+      // Install a BeanInstantiator
+      this.installBeanInstantiator(ejbName);
+      
       StatelessContainer container = new StatelessContainer(cl, beanClassname, ejbName, domain, ctxProperties,
             deployment, beanMetaData, es);
       
@@ -129,6 +136,9 @@
       beanMetaData.getResourceEnvironmentReferences().add(resEnvRef);
       //
       
+      // Install a BeanInstantiator
+      this.installBeanInstantiator(ejbName);
+      
       StatelessContainer container = new StatelessContainer(cl, beanClassname, ejbName, domain, ctxProperties,
             deployment, beanMetaData, es);
       
@@ -150,4 +160,24 @@
       
       getBootstrap().getKernel().getController().uninstall(containerName);
    }
+   
+   /**
+    * Installs a {@link BeanInstantiator} instance as part of test setup
+    * @param ejbName
+    */
+   private void installBeanInstantiator(final String ejbName)
+   {
+      final String appName = null;
+      final String moduleName = MockDeploymentUnit.NAME_MODULE;
+      final String bindName = BeanInstantiatorRegistration
+            .getInstantiatorRegistrationName(appName, moduleName, ejbName);
+      try
+      {
+         Ejb3RegistrarLocator.locateRegistrar().bind(bindName, new Ejb31SpecBeanInstantiator());
+      }
+      catch (final DuplicateBindException dbe)
+      {
+         throw new RuntimeException("Error in test setup", dbe);
+      }
+   }
 }

Modified: projects/ejb3/trunk/core/src/test/java/org/jboss/ejb3/core/test/ejbthree1506/unit/DescriptorAnnotationTestCase.java
===================================================================
--- projects/ejb3/trunk/core/src/test/java/org/jboss/ejb3/core/test/ejbthree1506/unit/DescriptorAnnotationTestCase.java	2010-11-09 12:14:55 UTC (rev 109209)
+++ projects/ejb3/trunk/core/src/test/java/org/jboss/ejb3/core/test/ejbthree1506/unit/DescriptorAnnotationTestCase.java	2010-11-09 14:12:37 UTC (rev 109210)
@@ -61,10 +61,14 @@
       JBossSessionBeanMetaData sessionBeanMetaData = new JBossSessionBeanMetaData();
       sessionBeanMetaData.setEnterpriseBeansMetaData(enterpriseBeans);
       sessionBeanMetaData.setEjbClass(TestBean.class.getName());
-      sessionBeanMetaData.setEjbName("TestBean");
+      final String ejbName = "TestBean";
+      sessionBeanMetaData.setEjbName(ejbName);
       sessionBeanMetaData.setSessionType(SessionType.Stateful);
       enterpriseBeans.add(sessionBeanMetaData);
       
+      // Install a BeanInstantiator
+      AbstractEJB3TestCase.registerBeanInstantiator(MockDeploymentUnit.NAME_MODULE, ejbName);
+      
       MockEjb3Deployment deployment = MockEjb3Deployment.create(MockDeploymentUnit.create());
       Ejb3DescriptorHandler handler = new Ejb3DescriptorHandler(deployment, metaData);
       List<Container> containers = handler.getContainers(deployment, new HashMap<String, Container>());

Modified: projects/ejb3/trunk/core/src/test/java/org/jboss/ejb3/core/test/ejbthree1558/unit/JBossMessageEndpointFactoryTestCase.java
===================================================================
--- projects/ejb3/trunk/core/src/test/java/org/jboss/ejb3/core/test/ejbthree1558/unit/JBossMessageEndpointFactoryTestCase.java	2010-11-09 12:14:55 UTC (rev 109209)
+++ projects/ejb3/trunk/core/src/test/java/org/jboss/ejb3/core/test/ejbthree1558/unit/JBossMessageEndpointFactoryTestCase.java	2010-11-09 14:12:37 UTC (rev 109210)
@@ -104,6 +104,8 @@
       String beanClassName = beanMetaData.getEjbClass();
       Properties ctxProperties = null;
       
+      AbstractEJB3TestCase.registerBeanInstantiator("ejbthree1558",ejbName);
+      
       container = new MyMDB(ejbName, domain, cl, beanClassName, ctxProperties, deployment, beanMetaData);
    }
    

Modified: projects/ejb3/trunk/core/src/test/java/org/jboss/ejb3/core/test/ejbthree1914/unit/OverrideAnnotationTestCase.java
===================================================================
--- projects/ejb3/trunk/core/src/test/java/org/jboss/ejb3/core/test/ejbthree1914/unit/OverrideAnnotationTestCase.java	2010-11-09 12:14:55 UTC (rev 109209)
+++ projects/ejb3/trunk/core/src/test/java/org/jboss/ejb3/core/test/ejbthree1914/unit/OverrideAnnotationTestCase.java	2010-11-09 14:12:37 UTC (rev 109210)
@@ -71,12 +71,16 @@
       JBossSessionBeanMetaData sessionBeanMetaData = new JBossSessionBeanMetaData();
       sessionBeanMetaData.setEnterpriseBeansMetaData(enterpriseBeans);
       sessionBeanMetaData.setEjbClass(TestBean.class.getName());
-      sessionBeanMetaData.setEjbName("TestBean");
+      final String ejbName = TestBean.class.getSimpleName();
+      sessionBeanMetaData.setEjbName(ejbName);
       sessionBeanMetaData.setSessionType(SessionType.Stateful);
       enterpriseBeans.add(sessionBeanMetaData);
       
       MockEjb3Deployment deployment = MockEjb3Deployment.create(MockDeploymentUnit.create());
       Ejb3DescriptorHandler handler = new Ejb3DescriptorHandler(deployment, metaData);
+      
+      AbstractEJB3TestCase.registerBeanInstantiator(MockDeploymentUnit.NAME_MODULE, ejbName);
+      
       List<Container> containers = handler.getContainers(deployment, new HashMap<String, Container>());
       
       EJBContainer container = (EJBContainer) containers.get(0);
@@ -86,6 +90,8 @@
       //ApplicationException ex = container.getAnnotation(ApplicationException.class, DummyException.class);
       ApplicationException ex = ExtendedAdvisorHelper.getExtendedAdvisor(container.getAdvisor()).resolveAnnotation(DummyException.class, ApplicationException.class);
       assertNotNull("Can't find annotation @ApplicationException in the meta data", ex);
+      
+      AbstractEJB3TestCase.unregisterBeanInstantiator(MockDeploymentUnit.NAME_MODULE, ejbName);
    }
 
    @Test
@@ -99,13 +105,17 @@
       JBossSessionBeanMetaData sessionBeanMetaData = new JBossSessionBeanMetaData();
       sessionBeanMetaData.setEnterpriseBeansMetaData(enterpriseBeans);
       sessionBeanMetaData.setEjbClass(TestBean.class.getName());
-      sessionBeanMetaData.setEjbName("TestBean");
+      final String ejbName = TestBean.class.getSimpleName();
+      sessionBeanMetaData.setEjbName(ejbName);
       sessionBeanMetaData.setSessionType(SessionType.Stateful);
       sessionBeanMetaData.setConcurrent(false);
       enterpriseBeans.add(sessionBeanMetaData);
       
       MockEjb3Deployment deployment = MockEjb3Deployment.create(MockDeploymentUnit.create());
       Ejb3DescriptorHandler handler = new Ejb3DescriptorHandler(deployment, metaData);
+      
+      AbstractEJB3TestCase.registerBeanInstantiator(MockDeploymentUnit.NAME_MODULE, ejbName);
+      
       List<Container> containers = handler.getContainers(deployment, new HashMap<String, Container>());
       
       EJBContainer container = (EJBContainer) containers.get(0);
@@ -114,5 +124,7 @@
       
       assertFalse("Stateful bean incorrectly has been marked with " + SerializedConcurrentAccess.class.getName()
             + " annotation", container.getAdvisor().hasAnnotation(SerializedConcurrentAccess.class.getName()));
+      
+      AbstractEJB3TestCase.unregisterBeanInstantiator(MockDeploymentUnit.NAME_MODULE, ejbName);
    }
 }

Modified: projects/ejb3/trunk/core/src/test/java/org/jboss/ejb3/core/test/regression/ejbthree1253/unit/OverriddenProxyFactoryTestCase.java
===================================================================
--- projects/ejb3/trunk/core/src/test/java/org/jboss/ejb3/core/test/regression/ejbthree1253/unit/OverriddenProxyFactoryTestCase.java	2010-11-09 12:14:55 UTC (rev 109209)
+++ projects/ejb3/trunk/core/src/test/java/org/jboss/ejb3/core/test/regression/ejbthree1253/unit/OverriddenProxyFactoryTestCase.java	2010-11-09 14:12:37 UTC (rev 109210)
@@ -72,6 +72,10 @@
       Ejb3Deployment deployment = MockEjb3Deployment.create(MockDeploymentUnit.create());
       deployment.setPersistenceManagerFactoryRegistry(getBootstrap().lookup("EJB3PersistenceManagerFactoryRegistry", PersistenceManagerFactoryRegistry.class));
       JBossSessionBeanMetaData beanMetaData = MetaDataHelper.getMetadataFromBeanImplClass(MyStatefulBean.class);
+      
+      // Install a BeanInstantiator
+      AbstractEJB3TestCase.registerBeanInstantiator(MockDeploymentUnit.NAME_MODULE, ejbName);
+      
       StatefulContainer container = new StatefulContainer(cl, beanClassname, ejbName, domain, ctxProperties,
             deployment, beanMetaData, es);
       

Modified: projects/ejb3/trunk/core/src/test/java/org/jboss/ejb3/test/cachepassivation/MockDeploymentUnit.java
===================================================================
--- projects/ejb3/trunk/core/src/test/java/org/jboss/ejb3/test/cachepassivation/MockDeploymentUnit.java	2010-11-09 12:14:55 UTC (rev 109209)
+++ projects/ejb3/trunk/core/src/test/java/org/jboss/ejb3/test/cachepassivation/MockDeploymentUnit.java	2010-11-09 14:12:37 UTC (rev 109210)
@@ -46,6 +46,8 @@
 public class MockDeploymentUnit implements DeploymentUnit
 {
    private org.jboss.deployers.structure.spi.DeploymentUnit deploymentUnit;
+   
+   public static final String NAME_MODULE = "test";
 
    /**
     * @deprecated supply a deploymentUnit
@@ -210,7 +212,7 @@
     */
    public String getShortName()
    {
-      return null;
+      return deploymentUnit.getName();
    }
 
    public String getRelativePath()

Modified: projects/ejb3/trunk/core/src/test/java/org/jboss/ejb3/test/cachepassivation/unit/CachePassivationUnitTestCase.java
===================================================================
--- projects/ejb3/trunk/core/src/test/java/org/jboss/ejb3/test/cachepassivation/unit/CachePassivationUnitTestCase.java	2010-11-09 12:14:55 UTC (rev 109209)
+++ projects/ejb3/trunk/core/src/test/java/org/jboss/ejb3/test/cachepassivation/unit/CachePassivationUnitTestCase.java	2010-11-09 14:12:37 UTC (rev 109210)
@@ -49,10 +49,13 @@
 import org.jboss.ejb3.cache.persistence.PersistenceManagerFactory;
 import org.jboss.ejb3.cache.persistence.PersistenceManagerFactoryRegistry;
 import org.jboss.ejb3.common.registrar.plugin.mc.Ejb3McRegistrar;
+import org.jboss.ejb3.common.registrar.spi.DuplicateBindException;
 import org.jboss.ejb3.common.registrar.spi.Ejb3RegistrarLocator;
 import org.jboss.ejb3.context.naming.EJBContextBinder;
 import org.jboss.ejb3.core.context.CurrentInvocationContextInterceptor;
 import org.jboss.ejb3.core.test.common.MockEjb3Deployment;
+import org.jboss.ejb3.instantiator.impl.Ejb31SpecBeanInstantiator;
+import org.jboss.ejb3.instantiator.spi.BeanInstantiatorRegistration;
 import org.jboss.ejb3.stateful.StatefulBeanContext;
 import org.jboss.ejb3.test.cachepassivation.MockBean;
 import org.jboss.ejb3.test.cachepassivation.MockDeploymentUnit;
@@ -122,6 +125,22 @@
       persistenceManagerFactoryRegistry.setFactories(factories);
       Ejb3Deployment deployment = MockEjb3Deployment.create(MockDeploymentUnit.create());
       deployment.setPersistenceManagerFactoryRegistry(persistenceManagerFactoryRegistry);
+      
+      // Install a BeanInstantiator
+      final org.jboss.deployers.structure.spi.DeploymentUnit parent = null;
+      final String appName = parent != null ? parent.getName() : null;
+      final String moduleName = deployment.getName();
+      final String bindName = BeanInstantiatorRegistration
+            .getInstantiatorRegistrationName(appName, moduleName, ejbName);
+      try
+      {
+         Ejb3RegistrarLocator.locateRegistrar().bind(bindName, new Ejb31SpecBeanInstantiator());
+      }
+      catch (final DuplicateBindException dbe)
+      {
+         throw new RuntimeException("Error in test setup", dbe);
+      }
+      
       MockStatefulContainer container = new MockStatefulContainer(cl, beanClassName, ejbName, domain, ctxProperties,
             deployment, es);
       container.instantiated();



More information about the jboss-cvs-commits mailing list