[jboss-cvs] JBossAS SVN: r106470 - in projects/ejb3/trunk: core/src/main/java/org/jboss/ejb3 and 14 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Tue Jul 6 16:19:25 EDT 2010
Author: ALRubinger
Date: 2010-07-06 16:19:24 -0400 (Tue, 06 Jul 2010)
New Revision: 106470
Modified:
projects/ejb3/trunk/core/pom.xml
projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/Ejb3AnnotationHandler.java
projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/Ejb3Deployment.java
projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/session/SessionSpecContainer.java
projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/stateful/StatefulContainer.java
projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/stateless/StatelessContainer.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/ejbthree2022/unit/Ejb3DescriptorHandlerTestCase.java
projects/ejb3/trunk/core/src/test/java/org/jboss/ejb3/core/test/ejbthree2068/unit/Ejb3DescriptorHandlerTestCase.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/MockStatefulContainer.java
projects/ejb3/trunk/core/src/test/java/org/jboss/ejb3/test/cachepassivation/unit/CachePassivationUnitTestCase.java
projects/ejb3/trunk/ejb3_1/pom.xml
Log:
[EJBTHREE-1721] Integrate org.jboss.ejb3.async with ejb3-core
Modified: projects/ejb3/trunk/core/pom.xml
===================================================================
--- projects/ejb3/trunk/core/pom.xml 2010-07-06 20:05:27 UTC (rev 106469)
+++ projects/ejb3/trunk/core/pom.xml 2010-07-06 20:19:24 UTC (rev 106470)
@@ -47,6 +47,7 @@
<version.org.jboss.ejb3_timerservice-naming>1.0.0-alpha-2</version.org.jboss.ejb3_timerservice-naming>
<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-SNAPSHOT</version.org.jboss.ejb3.async>
</properties>
<!-- Build Information -->
@@ -466,6 +467,12 @@
<artifactId>jboss-ejb3-transactions</artifactId>
<version>1.0.2</version>
</dependency>
+
+ <dependency>
+ <groupId>org.jboss.ejb3.async</groupId>
+ <artifactId>jboss-ejb3-async-spi</artifactId>
+ <version>${version.org.jboss.ejb3.async}</version>
+ </dependency>
<dependency>
<groupId>org.jboss.ejb3.context</groupId>
Modified: projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/Ejb3AnnotationHandler.java
===================================================================
--- projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/Ejb3AnnotationHandler.java 2010-07-06 20:05:27 UTC (rev 106469)
+++ projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/Ejb3AnnotationHandler.java 2010-07-06 20:19:24 UTC (rev 106470)
@@ -294,9 +294,9 @@
throw new RuntimeException("No container configured with name '"
+ containerName + "''");
- return new StatefulContainer(di.getClassLoader(), className,
- ejbNames.get(ejbIndex), (Domain) domain.getManager(), ctxProperties,
- deployment, beanMetaData);
+ return new StatefulContainer(di.getClassLoader(), className, ejbNames.get(ejbIndex),
+ (Domain) domain.getManager(), ctxProperties, deployment, beanMetaData, deployment
+ .getAsynchronousProcessor());
}
@@ -310,9 +310,8 @@
throw new RuntimeException("No container configured with name '"
+ containerName + "''");
- return new StatelessContainer(di.getClassLoader(), className,
- ejbNames.get(ejbIndex), (Domain) domain.getManager(),
- ctxProperties, deployment, beanMetaData);
+ return new StatelessContainer(di.getClassLoader(), className, ejbNames.get(ejbIndex), (Domain) domain
+ .getManager(), ctxProperties, deployment, beanMetaData, deployment.getAsynchronousProcessor());
}
protected String getMDBDomainName(int ejbIndex)
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-07-06 20:05:27 UTC (rev 106469)
+++ projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/Ejb3Deployment.java 2010-07-06 20:19:24 UTC (rev 106470)
@@ -32,6 +32,7 @@
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
+import java.util.concurrent.ExecutorService;
import javassist.bytecode.ClassFile;
@@ -45,8 +46,10 @@
import org.jboss.beans.metadata.api.annotations.Inject;
import org.jboss.deployers.spi.DeploymentException;
+import org.jboss.ejb3.async.spi.container.AsyncInvocationProcessor;
import org.jboss.ejb3.cache.CacheFactoryRegistry;
import org.jboss.ejb3.cache.persistence.PersistenceManagerFactoryRegistry;
+import org.jboss.ejb3.common.deployers.spi.AttachmentNames;
import org.jboss.ejb3.common.lang.ClassHelper;
import org.jboss.ejb3.common.resolvers.spi.EjbReference;
import org.jboss.ejb3.common.resolvers.spi.EjbReferenceResolver;
@@ -134,6 +137,8 @@
private EjbReferenceResolver ejbReferenceResolver;
private PersistenceUnitDependencyResolver persistenceUnitDependencyResolver;
+
+ private final ExecutorService asynchronousProcessor;
/**
* Do not deploy persistence unit anymore.
@@ -163,6 +168,15 @@
if (metaData != null && metaData.getAssemblyDescriptor() != null)
destinations = metaData.getAssemblyDescriptor().getMessageDestinations();
this.deploymentUnit = deploymentUnit;
+
+ // Get the Async Invocation Processor from the Deployment
+ final String asyncInvocationProcessorName = org.jboss.ejb3.async.spi.container.AttachmentNames.ASYNC_INVOCATION_PROCESSOR;
+ final ExecutorService es = (ExecutorService) unit.getAttachment(asyncInvocationProcessorName);
+ if (es == null)
+ {
+ throw new IllegalStateException(unit + " must contain an attachment of name " + asyncInvocationProcessorName);
+ }
+ this.asynchronousProcessor = es;
}
@Deprecated
@@ -226,6 +240,11 @@
this.ejbReferenceResolver = resolver;
}
+ public ExecutorService getAsynchronousProcessor()
+ {
+ return asynchronousProcessor;
+ }
+
@Inject
public void setMessageDestinationReferenceResolver(MessageDestinationReferenceResolver resolver)
{
Modified: projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/session/SessionSpecContainer.java
===================================================================
--- projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/session/SessionSpecContainer.java 2010-07-06 20:05:27 UTC (rev 106469)
+++ projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/session/SessionSpecContainer.java 2010-07-06 20:19:24 UTC (rev 106470)
@@ -1,3 +1,24 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2010, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
package org.jboss.ejb3.session;
import java.io.Serializable;
@@ -8,19 +29,18 @@
import java.util.HashSet;
import java.util.Hashtable;
import java.util.Set;
+import java.util.concurrent.ExecutorService;
-import javax.ejb.EJB;
import javax.ejb.EJBLocalObject;
import javax.ejb.EJBObject;
import javax.ejb.Handle;
import javax.ejb.RemoveException;
-import javax.ejb.SessionContext;
import org.jboss.aop.Domain;
import org.jboss.aop.MethodInfo;
import org.jboss.aop.util.MethodHashing;
import org.jboss.ejb3.Ejb3Deployment;
-import org.jboss.ejb3.ThreadLocalStack;
+import org.jboss.ejb3.async.spi.container.AsyncInvocationProcessor;
import org.jboss.ejb3.common.lang.SerializableMethod;
import org.jboss.ejb3.common.registrar.spi.Ejb3RegistrarLocator;
import org.jboss.ejb3.core.proxy.spi.CurrentRemoteProxyFactory;
@@ -35,8 +55,6 @@
import org.jboss.ejb3.stateful.StatefulContainerInvocation;
import org.jboss.logging.Logger;
import org.jboss.metadata.ejb.jboss.JBossSessionBeanMetaData;
-import org.jboss.metadata.ejb.spec.BusinessLocalsMetaData;
-import org.jboss.metadata.ejb.spec.BusinessRemotesMetaData;
/**
* SessionSpecContainer
@@ -47,7 +65,7 @@
* @author <a href="mailto:andrew.rubinger at jboss.org">ALR</a>
* @version $Revision: $
*/
-public abstract class SessionSpecContainer extends SessionContainer implements InvokableContext
+public abstract class SessionSpecContainer extends SessionContainer implements InvokableContext, AsyncInvocationProcessor
{
// ------------------------------------------------------------------------------||
@@ -60,22 +78,38 @@
* Business interfaces for this EJB
*/
private Set<Class<?>> businessInterfaces;
+
+ /**
+ * {@link ExecutorService} used for EJB 3.1 Async invocations
+ */
+ private final ExecutorService asynchronousExecutor;
// ------------------------------------------------------------------------------||
// Constructor ------------------------------------------------------------------||
// ------------------------------------------------------------------------------||
public SessionSpecContainer(ClassLoader cl, String beanClassName, String ejbName, Domain domain,
- Hashtable ctxProperties, Ejb3Deployment deployment, JBossSessionBeanMetaData beanMetaData)
- throws ClassNotFoundException
+ Hashtable ctxProperties, Ejb3Deployment deployment, JBossSessionBeanMetaData beanMetaData,
+ final ExecutorService asynchronousExecutor) throws ClassNotFoundException
{
super(cl, beanClassName, ejbName, domain, ctxProperties, deployment, beanMetaData);
+ if (asynchronousExecutor == null)
+ {
+ throw new IllegalArgumentException("Asynchronous Executor must be specified");
+ }
+ this.asynchronousExecutor = asynchronousExecutor;
}
public SessionSpecContainer(ClassLoader cl, String beanClassName, String ejbName, Domain domain,
- Hashtable ctxProperties, JBossSessionBeanMetaData beanMetaData) throws ClassNotFoundException
+ Hashtable ctxProperties, JBossSessionBeanMetaData beanMetaData, final ExecutorService asynchronousExecutor)
+ throws ClassNotFoundException
{
super(cl, beanClassName, ejbName, domain, ctxProperties, beanMetaData);
+ if (asynchronousExecutor == null)
+ {
+ throw new IllegalArgumentException("Asynchronous Executor must be specified");
+ }
+ this.asynchronousExecutor = asynchronousExecutor;
}
/**
@@ -557,4 +591,14 @@
super.lockedStop();
}
+
+ /**
+ * {@inheritDoc}
+ * @see org.jboss.ejb3.async.spi.container.AsyncInvocationProcessor#getAsynchronousExecutor()
+ */
+ @Override
+ public ExecutorService getAsynchronousExecutor()
+ {
+ return this.asynchronousExecutor;
+ }
}
Modified: projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/stateful/StatefulContainer.java
===================================================================
--- projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/stateful/StatefulContainer.java 2010-07-06 20:05:27 UTC (rev 106469)
+++ projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/stateful/StatefulContainer.java 2010-07-06 20:19:24 UTC (rev 106470)
@@ -30,6 +30,7 @@
import java.util.Arrays;
import java.util.Hashtable;
import java.util.Map;
+import java.util.concurrent.ExecutorService;
import javax.ejb.EJBHome;
import javax.ejb.EJBLocalObject;
@@ -115,10 +116,10 @@
private SessionFactory sessionFactory;
public StatefulContainer(ClassLoader cl, String beanClassName, String ejbName, Domain domain,
- Hashtable ctxProperties, Ejb3Deployment deployment, JBossSessionBeanMetaData beanMetaData)
- throws ClassNotFoundException
+ Hashtable ctxProperties, Ejb3Deployment deployment, JBossSessionBeanMetaData beanMetaData,
+ final ExecutorService asynchronousExecutor) throws ClassNotFoundException
{
- super(cl, beanClassName, ejbName, domain, ctxProperties, deployment, beanMetaData);
+ super(cl, beanClassName, ejbName, domain, ctxProperties, deployment, beanMetaData, asynchronousExecutor);
// For the time being, this container is its own SessionFactory
//TODO Externalize the SessionFactory into its own component
Modified: projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/stateless/StatelessContainer.java
===================================================================
--- projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/stateless/StatelessContainer.java 2010-07-06 20:05:27 UTC (rev 106469)
+++ projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/stateless/StatelessContainer.java 2010-07-06 20:19:24 UTC (rev 106470)
@@ -28,6 +28,7 @@
import java.util.Hashtable;
import java.util.Map;
import java.util.Set;
+import java.util.concurrent.ExecutorService;
import javax.ejb.EJBContext;
import javax.ejb.EJBException;
@@ -109,9 +110,10 @@
private StatelessDelegateWrapper mbean = new StatelessDelegateWrapper(this);
public StatelessContainer(ClassLoader cl, String beanClassName, String ejbName, Domain domain,
- Hashtable ctxProperties, Ejb3Deployment deployment, JBossSessionBeanMetaData beanMetaData) throws ClassNotFoundException
+ Hashtable ctxProperties, Ejb3Deployment deployment, JBossSessionBeanMetaData beanMetaData,
+ final ExecutorService asynchronousExecutor) throws ClassNotFoundException
{
- super(cl, beanClassName, ejbName, domain, ctxProperties, deployment, beanMetaData);
+ super(cl, beanClassName, ejbName, domain, ctxProperties, deployment, beanMetaData, asynchronousExecutor);
initializeTimeout();
}
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-07-06 20:05:27 UTC (rev 106469)
+++ projects/ejb3/trunk/core/src/test/java/org/jboss/ejb3/core/test/common/AbstractEJB3TestCase.java 2010-07-06 20:19:24 UTC (rev 106470)
@@ -28,6 +28,8 @@
import java.util.HashSet;
import java.util.Hashtable;
import java.util.Set;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
import javax.naming.InitialContext;
import javax.naming.NamingException;
@@ -226,7 +228,7 @@
}
});
DeploymentUnit unit = new MockDeploymentUnit(deploymentUnit);
- Ejb3Deployment deployment = new MockEjb3Deployment(unit, deploymentUnit);
+ Ejb3Deployment deployment = MockEjb3Deployment.create(unit, deploymentUnit);
deployment.setEJBReferenceResolver(new ScopedEJBReferenceResolver());
@@ -400,7 +402,20 @@
{
// Initialize
SessionContainer container = null;
+ final ExecutorService es = Executors.newCachedThreadPool();
+ Runtime.getRuntime().addShutdownHook(new Thread()
+ {
+ @Override
+ public void run()
+ {
+ super.run();
+ es.shutdownNow();
+ }
+
+ });
+
+
/*
* Instanciate the Container, depending upon the type specified
*/
@@ -421,7 +436,8 @@
case SFSB :
try
{
- container = new StatefulContainer(loader, beanClassName, ejbName, domain, ctxProperties, deployment, md);
+ container = new StatefulContainer(loader, beanClassName, ejbName, domain, ctxProperties, deployment, md,
+ es);
}
catch (ClassNotFoundException cnfe)
{
@@ -431,7 +447,8 @@
case SLSB :
try
{
- container = new StatelessContainer(loader, beanClassName, ejbName, domain, ctxProperties, deployment, md);
+ container = new StatelessContainer(loader, beanClassName, ejbName, domain, ctxProperties, deployment,
+ md, es);
}
catch (ClassNotFoundException cnfe)
{
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-07-06 20:05:27 UTC (rev 106469)
+++ projects/ejb3/trunk/core/src/test/java/org/jboss/ejb3/core/test/common/MockEjb3Deployment.java 2010-07-06 20:19:24 UTC (rev 106470)
@@ -22,6 +22,7 @@
package org.jboss.ejb3.core.test.common;
import java.util.HashMap;
+import java.util.concurrent.Executors;
import javax.security.jacc.PolicyConfiguration;
@@ -31,6 +32,7 @@
import org.jboss.ejb3.DeploymentScope;
import org.jboss.ejb3.DeploymentUnit;
import org.jboss.ejb3.Ejb3Deployment;
+import org.jboss.ejb3.async.spi.container.AttachmentNames;
import org.jboss.ejb3.cache.CacheFactoryRegistry;
import org.jboss.ejb3.cache.Ejb3CacheFactory;
import org.jboss.ejb3.cache.NoPassivationCacheFactory;
@@ -53,19 +55,31 @@
*/
public class MockEjb3Deployment extends Ejb3Deployment
{
- public MockEjb3Deployment(DeploymentUnit unit)
+ public static MockEjb3Deployment create(DeploymentUnit unit)
{
+ unit.addAttachment(AttachmentNames.ASYNC_INVOCATION_PROCESSOR, Executors.newCachedThreadPool());
+ 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());
+ return new MockEjb3Deployment(unit, du);
+ }
+
+ private MockEjb3Deployment(DeploymentUnit unit)
+ {
// TODO This should be replaced w/ a MockDeploymentUnit when completed,
// to support nested deployments, @see ejb3-test MockDeploymentUnit
this(unit, new AbstractDeploymentUnit(new AbstractDeploymentContext("test", "")));
}
- public MockEjb3Deployment(DeploymentUnit unit, org.jboss.deployers.structure.spi.DeploymentUnit du)
+ private MockEjb3Deployment(DeploymentUnit unit, org.jboss.deployers.structure.spi.DeploymentUnit du)
{
this(unit, du, null);
}
- public MockEjb3Deployment(DeploymentUnit unit, org.jboss.deployers.structure.spi.DeploymentUnit du,
+ private MockEjb3Deployment(DeploymentUnit unit, org.jboss.deployers.structure.spi.DeploymentUnit du,
DeploymentScope scope)
{
super(du, unit, scope, null);
@@ -93,6 +107,7 @@
cacheFactories.put("StatefulTreeCache", StatefulTreeCacheFactory.class);
cacheRegistry.setFactories(cacheFactories);
setCacheFactoryRegistry(cacheRegistry);
+
}
@Override
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-07-06 20:05:27 UTC (rev 106469)
+++ projects/ejb3/trunk/core/src/test/java/org/jboss/ejb3/core/test/ejbthree1150/unit/WebServiceContextInjectionTestCase.java 2010-07-06 20:19:24 UTC (rev 106470)
@@ -24,6 +24,8 @@
import java.util.HashSet;
import java.util.Hashtable;
import java.util.Set;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
import javax.naming.InitialContext;
import javax.xml.ws.WebServiceContext;
@@ -44,6 +46,8 @@
import org.jboss.metadata.javaee.spec.ResourceEnvironmentReferenceMetaData;
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;
/**
@@ -52,6 +56,13 @@
*/
public class WebServiceContextInjectionTestCase extends AbstractEJB3TestCase
{
+ private static final ExecutorService es = Executors.newCachedThreadPool();
+
+ @AfterClass
+ public static void shutdownEs(){
+ es.shutdownNow();
+ }
+
@Test
public void testCheckWebServiceContext() throws Exception
{
@@ -61,9 +72,10 @@
String ejbName = beanClass.getSimpleName();
Domain domain = getDomain("Stateless Bean");
Hashtable<?,?> ctxProperties = null;
- Ejb3Deployment deployment = new MockEjb3Deployment(new MockDeploymentUnit());
+ Ejb3Deployment deployment = MockEjb3Deployment.create(MockDeploymentUnit.create());
JBossSessionBeanMetaData beanMetaData = MetaDataHelper.getMetadataFromBeanImplClass(beanClass);
- StatelessContainer container = new StatelessContainer(cl, beanClassname, ejbName, domain, ctxProperties, deployment, beanMetaData);
+ StatelessContainer container = new StatelessContainer(cl, beanClassname, ejbName, domain, ctxProperties,
+ deployment, beanMetaData, es);
// TODO: wickedness
container.instantiated();
@@ -93,7 +105,7 @@
String ejbName = beanClass.getSimpleName();
Domain domain = getDomain("Stateless Bean");
Hashtable<?,?> ctxProperties = null;
- Ejb3Deployment deployment = new MockEjb3Deployment(new MockDeploymentUnit());
+ Ejb3Deployment deployment = MockEjb3Deployment.create(MockDeploymentUnit.create());
JBossSessionBeanMetaData beanMetaData = MetaDataHelper.getMetadataFromBeanImplClass(beanClass);
// add an override
@@ -117,7 +129,8 @@
beanMetaData.getResourceEnvironmentReferences().add(resEnvRef);
//
- StatelessContainer container = new StatelessContainer(cl, beanClassname, ejbName, domain, ctxProperties, deployment, beanMetaData);
+ StatelessContainer container = new StatelessContainer(cl, beanClassname, ejbName, domain, ctxProperties,
+ deployment, beanMetaData, es);
// TODO: wickedness
container.instantiated();
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-07-06 20:05:27 UTC (rev 106469)
+++ projects/ejb3/trunk/core/src/test/java/org/jboss/ejb3/core/test/ejbthree1506/unit/DescriptorAnnotationTestCase.java 2010-07-06 20:19:24 UTC (rev 106470)
@@ -65,7 +65,7 @@
sessionBeanMetaData.setSessionType(SessionType.Stateful);
enterpriseBeans.add(sessionBeanMetaData);
- MockEjb3Deployment deployment = new MockEjb3Deployment(new MockDeploymentUnit());
+ 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-07-06 20:05:27 UTC (rev 106469)
+++ projects/ejb3/trunk/core/src/test/java/org/jboss/ejb3/core/test/ejbthree1558/unit/JBossMessageEndpointFactoryTestCase.java 2010-07-06 20:19:24 UTC (rev 106470)
@@ -89,7 +89,7 @@
}
});
DeploymentUnit unit = new MockDeploymentUnit(deploymentUnit);
- Ejb3Deployment deployment = new MockEjb3Deployment(unit, deploymentUnit);
+ Ejb3Deployment deployment = MockEjb3Deployment.create(unit, deploymentUnit);
deployment.setEJBReferenceResolver(new ScopedEJBReferenceResolver());
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-07-06 20:05:27 UTC (rev 106469)
+++ projects/ejb3/trunk/core/src/test/java/org/jboss/ejb3/core/test/ejbthree1914/unit/OverrideAnnotationTestCase.java 2010-07-06 20:19:24 UTC (rev 106470)
@@ -75,7 +75,7 @@
sessionBeanMetaData.setSessionType(SessionType.Stateful);
enterpriseBeans.add(sessionBeanMetaData);
- MockEjb3Deployment deployment = new MockEjb3Deployment(new MockDeploymentUnit());
+ MockEjb3Deployment deployment = MockEjb3Deployment.create(MockDeploymentUnit.create());
Ejb3DescriptorHandler handler = new Ejb3DescriptorHandler(deployment, metaData);
List<Container> containers = handler.getContainers(deployment, new HashMap<String, Container>());
@@ -104,7 +104,7 @@
sessionBeanMetaData.setConcurrent(false);
enterpriseBeans.add(sessionBeanMetaData);
- MockEjb3Deployment deployment = new MockEjb3Deployment(new MockDeploymentUnit());
+ 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/ejbthree2022/unit/Ejb3DescriptorHandlerTestCase.java
===================================================================
--- projects/ejb3/trunk/core/src/test/java/org/jboss/ejb3/core/test/ejbthree2022/unit/Ejb3DescriptorHandlerTestCase.java 2010-07-06 20:05:27 UTC (rev 106469)
+++ projects/ejb3/trunk/core/src/test/java/org/jboss/ejb3/core/test/ejbthree2022/unit/Ejb3DescriptorHandlerTestCase.java 2010-07-06 20:19:24 UTC (rev 106470)
@@ -76,7 +76,7 @@
sessionBeanMetaData.setEjbName(UnSpecifiedSessionTypeBean.class.getSimpleName());
enterpriseBeans.add(sessionBeanMetaData);
- MockEjb3Deployment deployment = new MockEjb3Deployment(new MockDeploymentUnit());
+ MockEjb3Deployment deployment = MockEjb3Deployment.create(MockDeploymentUnit.create());
Ejb3DescriptorHandler handler = new Ejb3DescriptorHandler(deployment, metaData);
// get containers
List<Container> containers = handler.getContainers(deployment, new HashMap<String, Container>());
Modified: projects/ejb3/trunk/core/src/test/java/org/jboss/ejb3/core/test/ejbthree2068/unit/Ejb3DescriptorHandlerTestCase.java
===================================================================
--- projects/ejb3/trunk/core/src/test/java/org/jboss/ejb3/core/test/ejbthree2068/unit/Ejb3DescriptorHandlerTestCase.java 2010-07-06 20:05:27 UTC (rev 106469)
+++ projects/ejb3/trunk/core/src/test/java/org/jboss/ejb3/core/test/ejbthree2068/unit/Ejb3DescriptorHandlerTestCase.java 2010-07-06 20:19:24 UTC (rev 106470)
@@ -75,7 +75,7 @@
enterpriseBeans.add(sessionBeanMetaData);
- MockEjb3Deployment deployment = new MockEjb3Deployment(new MockDeploymentUnit());
+ MockEjb3Deployment deployment = MockEjb3Deployment.create(MockDeploymentUnit.create());
ClassPool pool = ClassPool.getDefault();
CtClass ctClass = pool.get(DummyEJB.class.getName());
ClassFile classFile = ctClass.getClassFile();
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-07-06 20:05:27 UTC (rev 106469)
+++ projects/ejb3/trunk/core/src/test/java/org/jboss/ejb3/core/test/regression/ejbthree1253/unit/OverriddenProxyFactoryTestCase.java 2010-07-06 20:19:24 UTC (rev 106470)
@@ -24,6 +24,8 @@
import static org.junit.Assert.assertEquals;
import java.util.Hashtable;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
import javax.naming.InitialContext;
@@ -50,6 +52,14 @@
*/
public class OverriddenProxyFactoryTestCase extends AbstractEJB3TestCase
{
+
+ private static final ExecutorService es = Executors.newCachedThreadPool();
+
+ @AfterClass
+ public static void shutdownEs(){
+ es.shutdownNow();
+ }
+
@Test
public void test1() throws Throwable
{
@@ -59,10 +69,11 @@
String ejbName = MyStatefulBean.class.getSimpleName();
Domain domain = getDomain("Stateful Bean");
Hashtable<?,?> ctxProperties = null;
- Ejb3Deployment deployment = new MockEjb3Deployment(new MockDeploymentUnit());
+ Ejb3Deployment deployment = MockEjb3Deployment.create(MockDeploymentUnit.create());
deployment.setPersistenceManagerFactoryRegistry(getBootstrap().lookup("EJB3PersistenceManagerFactoryRegistry", PersistenceManagerFactoryRegistry.class));
JBossSessionBeanMetaData beanMetaData = MetaDataHelper.getMetadataFromBeanImplClass(MyStatefulBean.class);
- StatefulContainer container = new StatefulContainer(cl, beanClassname, ejbName, domain, ctxProperties, deployment, beanMetaData);
+ StatefulContainer container = new StatefulContainer(cl, beanClassname, ejbName, domain, ctxProperties,
+ deployment, beanMetaData, es);
// TODO: wickedness
container.instantiated();
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-07-06 20:05:27 UTC (rev 106469)
+++ projects/ejb3/trunk/core/src/test/java/org/jboss/ejb3/test/cachepassivation/MockDeploymentUnit.java 2010-07-06 20:19:24 UTC (rev 106470)
@@ -28,6 +28,10 @@
import java.util.List;
import java.util.Map;
+import org.jboss.deployers.spi.DeploymentException;
+import org.jboss.deployers.structure.spi.ClassLoaderFactory;
+import org.jboss.deployers.structure.spi.helpers.AbstractDeploymentContext;
+import org.jboss.deployers.structure.spi.helpers.AbstractDeploymentUnit;
import org.jboss.ejb3.DeploymentUnit;
import org.jboss.ejb3.interceptor.InterceptorInfoRepository;
import org.jboss.ejb3.vfs.spi.VirtualFile;
@@ -46,9 +50,20 @@
/**
* @deprecated supply a deploymentUnit
*/
- public MockDeploymentUnit()
+ public static MockDeploymentUnit create() throws DeploymentException
{
- // TODO Auto-generated constructor stub
+ AbstractDeploymentUnit deploymentUnit = new AbstractDeploymentUnit(new AbstractDeploymentContext("test", ""));
+ deploymentUnit.createClassLoader(new ClassLoaderFactory() {
+ public ClassLoader createClassLoader(org.jboss.deployers.structure.spi.DeploymentUnit unit) throws Exception
+ {
+ return Thread.currentThread().getContextClassLoader();
+ }
+
+ public void removeClassLoader(org.jboss.deployers.structure.spi.DeploymentUnit unit) throws Exception
+ {
+ }
+ });
+ return new MockDeploymentUnit(deploymentUnit);
}
public MockDeploymentUnit(org.jboss.deployers.structure.spi.DeploymentUnit deploymentUnit)
Modified: projects/ejb3/trunk/core/src/test/java/org/jboss/ejb3/test/cachepassivation/MockStatefulContainer.java
===================================================================
--- projects/ejb3/trunk/core/src/test/java/org/jboss/ejb3/test/cachepassivation/MockStatefulContainer.java 2010-07-06 20:05:27 UTC (rev 106469)
+++ projects/ejb3/trunk/core/src/test/java/org/jboss/ejb3/test/cachepassivation/MockStatefulContainer.java 2010-07-06 20:19:24 UTC (rev 106470)
@@ -23,6 +23,7 @@
import java.io.Serializable;
import java.util.Hashtable;
+import java.util.concurrent.ExecutorService;
import org.jboss.aop.Domain;
import org.jboss.ejb3.Ejb3Deployment;
@@ -41,9 +42,9 @@
@SuppressWarnings("unchecked")
public MockStatefulContainer(ClassLoader cl, String beanClassName, String ejbName, Domain domain,
- Hashtable ctxProperties, Ejb3Deployment deployment) throws ClassNotFoundException
+ Hashtable ctxProperties, Ejb3Deployment deployment, final ExecutorService es) throws ClassNotFoundException
{
- super(cl, beanClassName, ejbName, domain, ctxProperties, deployment, createMockBeanMetaData(beanClassName));
+ super(cl, beanClassName, ejbName, domain, ctxProperties, deployment, createMockBeanMetaData(beanClassName),es);
}
@Override
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-07-06 20:05:27 UTC (rev 106469)
+++ projects/ejb3/trunk/core/src/test/java/org/jboss/ejb3/test/cachepassivation/unit/CachePassivationUnitTestCase.java 2010-07-06 20:19:24 UTC (rev 106470)
@@ -49,6 +49,7 @@
import org.jboss.ejb3.test.mc.bootstrap.EmbeddedTestMcBootstrap;
import org.jboss.naming.JavaCompInitializer;
import org.jnp.server.SingletonNamingServer;
+import org.junit.AfterClass;
import javax.naming.InitialContext;
import java.util.ArrayList;
@@ -56,6 +57,8 @@
import java.util.HashMap;
import java.util.Hashtable;
import java.util.Map;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
/**
* Comment
@@ -65,6 +68,13 @@
*/
public class CachePassivationUnitTestCase extends TestCase
{
+ private static final ExecutorService es = Executors.newCachedThreadPool();
+
+ @AfterClass
+ public static void shutdownEs(){
+ es.shutdownNow();
+ }
+
public void test1() throws Exception
{
new SingletonNamingServer();
@@ -107,10 +117,10 @@
factories.put("MyStatefulSessionFilePersistenceManager", MyStatefulSessionFilePersistenceManagerFactory.class);
PersistenceManagerFactoryRegistry persistenceManagerFactoryRegistry = new PersistenceManagerFactoryRegistry();
persistenceManagerFactoryRegistry.setFactories(factories);
- Ejb3Deployment deployment = new MockEjb3Deployment(new MockDeploymentUnit());
+ Ejb3Deployment deployment = MockEjb3Deployment.create(MockDeploymentUnit.create());
deployment.setPersistenceManagerFactoryRegistry(persistenceManagerFactoryRegistry);
MockStatefulContainer container = new MockStatefulContainer(cl, beanClassName, ejbName, domain, ctxProperties,
- deployment);
+ deployment, es);
container.instantiated();
container.processMetadata();
System.out.println("injectors = " + container.getInjectors());
Modified: projects/ejb3/trunk/ejb3_1/pom.xml
===================================================================
--- projects/ejb3/trunk/ejb3_1/pom.xml 2010-07-06 20:05:27 UTC (rev 106469)
+++ projects/ejb3/trunk/ejb3_1/pom.xml 2010-07-06 20:19:24 UTC (rev 106470)
@@ -34,9 +34,10 @@
-->
<version.latest.version.range>[0,)</version.latest.version.range>
+ <version.org.jboss.ejb3.async>1.0.0-SNAPSHOT</version.org.jboss.ejb3.async>
<version.org.jboss.ejb3_cache>1.0.0</version.org.jboss.ejb3_cache>
<version.org.jboss.ejb3_common>1.0.2</version.org.jboss.ejb3_common>
- <version.org.jboss.ejb3_core>1.5.0-alpha-1</version.org.jboss.ejb3_core>
+ <version.org.jboss.ejb3_core>1.5.0-SNAPSHOT</version.org.jboss.ejb3_core>
<version.org.jboss.ejb3_deployers>1.1.5</version.org.jboss.ejb3_deployers>
<version.org.jboss.ejb3_endpoint>0.1.0</version.org.jboss.ejb3_endpoint>
<version.org.jboss.ejb3_ext-api>1.1.1</version.org.jboss.ejb3_ext-api>
@@ -71,6 +72,18 @@
in transitively. But how do we *mandate* that?
-->
+ <!-- jboss-ejb3-async -->
+ <dependency>
+ <groupId>org.jboss.ejb3.async</groupId>
+ <artifactId>jboss-ejb3-async-impl</artifactId>
+ <version>${version.org.jboss.ejb3.async}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.ejb3.async</groupId>
+ <artifactId>jboss-ejb3-async-deployer</artifactId>
+ <version>${version.org.jboss.ejb3.async}</version>
+ </dependency>
+
<!-- jboss-ejb3-cache -->
<dependency>
<groupId>org.jboss.ejb3</groupId>
More information about the jboss-cvs-commits
mailing list