[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