You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by tv...@apache.org on 2018/01/18 15:46:08 UTC
[13/50] tomee git commit: fix conflicts
fix conflicts
Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/1989e746
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/1989e746
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/1989e746
Branch: refs/heads/tomee-1.7.x
Commit: 1989e7469b3c1e3ce7509ad9f35c10ea4d86ce4d
Parents: 75dc216
Author: Ivan Junckes Filho <iv...@gmail.com>
Authored: Fri Dec 15 10:29:14 2017 -0200
Committer: Thiago Veronezi <th...@veronezi.org>
Committed: Wed Jan 17 12:56:51 2018 -0500
----------------------------------------------------------------------
.../openejb/core/instance/InstanceManager.java | 20 +--
.../openejb/core/mdb/BaseMdbContainer.java | 2 -
.../apache/openejb/core/mdb/MdbContainer.java | 1 +
.../openejb/core/mdb/MdbContainerFactory.java | 2 +-
.../openejb/core/mdb/MdbInstanceManager.java | 21 +--
.../openejb/core/mdb/MdbPoolContainer.java | 165 ++++++++-----------
.../stateless/StatelessInstanceManager.java | 5 +-
.../META-INF/org.apache.openejb/service-jar.xml | 1 -
8 files changed, 93 insertions(+), 124 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tomee/blob/1989e746/container/openejb-core/src/main/java/org/apache/openejb/core/instance/InstanceManager.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/core/instance/InstanceManager.java b/container/openejb-core/src/main/java/org/apache/openejb/core/instance/InstanceManager.java
index 7a8f450..84086b2 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/core/instance/InstanceManager.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/core/instance/InstanceManager.java
@@ -30,7 +30,6 @@ import org.apache.openejb.core.interceptor.InterceptorStack;
import org.apache.openejb.core.mdb.Instance;
import org.apache.openejb.loader.Options;
import org.apache.openejb.monitoring.LocalMBeanServer;
-import org.apache.openejb.spi.SecurityService;
import org.apache.openejb.util.DaemonThreadFactory;
import org.apache.openejb.util.Duration;
import org.apache.openejb.util.LogCategory;
@@ -39,14 +38,12 @@ import org.apache.openejb.util.Pool;
import javax.ejb.ConcurrentAccessTimeoutException;
import javax.ejb.SessionBean;
-import javax.enterprise.context.spi.CreationalContext;
import javax.management.MBeanServer;
import javax.management.ObjectName;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.rmi.RemoteException;
import java.util.List;
-import java.util.Map;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.RejectedExecutionHandler;
import java.util.concurrent.ScheduledExecutorService;
@@ -75,20 +72,18 @@ public abstract class InstanceManager {
protected final Duration accessTimeout;
protected final Duration closeTimeout;
- protected final SecurityService securityService;
protected final Pool.Builder poolBuilder;
protected final ThreadPoolExecutor executor;
protected final ScheduledExecutorService scheduledExecutor;
- public InstanceManager(final SecurityService securityService,
- final Duration accessTimeout, final Duration closeTimeout,
+ public InstanceManager(final Duration accessTimeout, final Duration closeTimeout,
final Pool.Builder poolBuilder, final int callbackThreads,
final ScheduledExecutorService ses) {
- this.securityService = securityService;
this.accessTimeout = accessTimeout;
this.closeTimeout = closeTimeout;
this.poolBuilder = poolBuilder;
this.scheduledExecutor = ses;
+
if (ScheduledThreadPoolExecutor.class.isInstance(ses) && !ScheduledThreadPoolExecutor.class.cast(ses).getRemoveOnCancelPolicy()) {
ScheduledThreadPoolExecutor.class.cast(ses).setRemoveOnCancelPolicy(true);
}
@@ -98,7 +93,7 @@ public abstract class InstanceManager {
}
final int qsize = callbackThreads > 1 ? callbackThreads - 1 : 1;
- final ThreadFactory threadFactory = new DaemonThreadFactory("StatelessPool.worker.");
+ final ThreadFactory threadFactory = new DaemonThreadFactory("InstanceManagerPool.worker.");
this.executor = new ThreadPoolExecutor(
callbackThreads, callbackThreads * 2,
1L, TimeUnit.MINUTES, new LinkedBlockingQueue<Runnable>(qsize), threadFactory);
@@ -178,7 +173,6 @@ public abstract class InstanceManager {
}
}
}
- //TODO: REMOVE ALL REFERENCES TO STATELESS IN COMMENTS OR CODE
/**
* Removes an instance from the pool and returns it for use
* by the container in business methods.
@@ -187,7 +181,7 @@ public abstract class InstanceManager {
* cause this thread to wait.
* <p/>
* If StrictPooling is not enabled this method will create a
- * new stateless bean instance performing all required injection
+ * new bean instance performing all required injection
* and callbacks before returning it in a method ready state.
*
* @param callContext ThreadContext
@@ -207,7 +201,7 @@ public abstract class InstanceManager {
instance.setPoolEntry(entry);
}
} catch (final TimeoutException e) {
- final String msg = "No instances available in Stateless Session Bean pool. Waited " + data.getAccessTimeout().toString();
+ final String msg = "No instances available in Session Bean pool. Waited " + data.getAccessTimeout().toString();
final ConcurrentAccessTimeoutException timeoutException = new ConcurrentAccessTimeoutException(msg);
timeoutException.fillInStackTrace();
throw new ApplicationException(timeoutException);
@@ -240,7 +234,7 @@ public abstract class InstanceManager {
/**
* All instances are removed from the pool in getInstance(...). They are only
- * returned by the StatelessContainer via this method under two circumstances.
+ * returned by the Container via this method under two circumstances.
* <p/>
* 1. The business method returns normally
* 2. The business method throws an application exception
@@ -351,7 +345,7 @@ public abstract class InstanceManager {
try {
if (!data.closePool()) {
- logger.error("Timed-out waiting for stateless pool to close: for deployment '" + beanContext.getDeploymentID() + "'");
+ logger.error("Timed-out waiting for instance manager pool to close: for deployment '" + beanContext.getDeploymentID() + "'");
}
} catch (final InterruptedException e) {
http://git-wip-us.apache.org/repos/asf/tomee/blob/1989e746/container/openejb-core/src/main/java/org/apache/openejb/core/mdb/BaseMdbContainer.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/core/mdb/BaseMdbContainer.java b/container/openejb-core/src/main/java/org/apache/openejb/core/mdb/BaseMdbContainer.java
index dae4075..ed08efb 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/core/mdb/BaseMdbContainer.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/core/mdb/BaseMdbContainer.java
@@ -42,8 +42,6 @@ public interface BaseMdbContainer {
Class getMessageListenerInterface();
- Class getActivationSpecClass();
-
Properties getProperties();
void deploy(BeanContext beanContext) throws OpenEJBException;
http://git-wip-us.apache.org/repos/asf/tomee/blob/1989e746/container/openejb-core/src/main/java/org/apache/openejb/core/mdb/MdbContainer.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/core/mdb/MdbContainer.java b/container/openejb-core/src/main/java/org/apache/openejb/core/mdb/MdbContainer.java
index 1b5548b..14c065f 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/core/mdb/MdbContainer.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/core/mdb/MdbContainer.java
@@ -256,6 +256,7 @@ public class MdbContainer implements RpcContainer, BaseMdbContainer {
objectRecipe.allow(Option.IGNORE_MISSING_PROPERTIES);
objectRecipe.disallow(Option.FIELD_INJECTION);
+
final Map<String, String> activationProperties = beanContext.getActivationProperties();
for (final Map.Entry<String, String> entry : activationProperties.entrySet()) {
objectRecipe.setMethodProperty(entry.getKey(), entry.getValue());
http://git-wip-us.apache.org/repos/asf/tomee/blob/1989e746/container/openejb-core/src/main/java/org/apache/openejb/core/mdb/MdbContainerFactory.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/core/mdb/MdbContainerFactory.java b/container/openejb-core/src/main/java/org/apache/openejb/core/mdb/MdbContainerFactory.java
index c3d8ef6..c511e02 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/core/mdb/MdbContainerFactory.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/core/mdb/MdbContainerFactory.java
@@ -158,7 +158,7 @@ public class MdbContainerFactory {
if (pool) {
return new MdbPoolContainer(id, securityService, resourceAdapter,
messageListenerInterface, activationSpecClass,
- instanceLimit, failOnUnknownActivationSpec, accessTimeout, closeTimeout, poolBuilder,
+ failOnUnknownActivationSpec, accessTimeout, closeTimeout, poolBuilder,
callbackThreads, useOneSchedulerThreadByBean, evictionThreads);
} else {
return new MdbContainer(id, securityService, resourceAdapter,
http://git-wip-us.apache.org/repos/asf/tomee/blob/1989e746/container/openejb-core/src/main/java/org/apache/openejb/core/mdb/MdbInstanceManager.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/core/mdb/MdbInstanceManager.java b/container/openejb-core/src/main/java/org/apache/openejb/core/mdb/MdbInstanceManager.java
index ba255be..ac8fe10 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/core/mdb/MdbInstanceManager.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/core/mdb/MdbInstanceManager.java
@@ -74,21 +74,20 @@ public class MdbInstanceManager extends InstanceManager {
private final ResourceAdapter resourceAdapter;
private final InboundRecovery inboundRecovery;
private final Object containerID;
- private int instanceLimit;
+ private final SecurityService securityService;
- public MdbInstanceManager(final ResourceAdapter resourceAdapter,
+ public MdbInstanceManager(final SecurityService securityService,
+ final ResourceAdapter resourceAdapter,
final InboundRecovery inboundRecovery,
final Object containerID,
- final int instanceLimit,
- final SecurityService securityService,
- final Duration accessTimeout, final Duration closeTimeout,
- final Pool.Builder poolBuilder, final int callbackThreads,
- final ScheduledExecutorService ses) {
- super(securityService, accessTimeout, closeTimeout, poolBuilder, callbackThreads, ses);
+ final Duration accessTimeout, final Duration closeTimeout,
+ final Pool.Builder poolBuilder, final int callbackThreads,
+ final ScheduledExecutorService ses) {
+ super(accessTimeout, closeTimeout, poolBuilder, callbackThreads, ses);
+ this.securityService = securityService;
this.resourceAdapter = resourceAdapter;
this.inboundRecovery = inboundRecovery;
this.containerID = containerID;
- this.instanceLimit = instanceLimit;
}
@@ -98,9 +97,6 @@ public class MdbInstanceManager extends InstanceManager {
inboundRecovery.recover(resourceAdapter, activationSpec, containerID.toString());
}
- final Options options = new Options(beanContext.getProperties());
- final int instanceLimit = options.get("InstanceLimit", this.instanceLimit); //TODO: REMOVE INSTANCE LIMIT
-
final ObjectRecipe recipe = PassthroughFactory.recipe(new Pool.Builder(poolBuilder));
recipe.allow(Option.CASE_INSENSITIVE_FACTORY);
recipe.allow(Option.CASE_INSENSITIVE_PROPERTIES);
@@ -194,6 +190,7 @@ public class MdbInstanceManager extends InstanceManager {
throw new OpenEJBException(e);
}
+ final Options options = new Options(beanContext.getProperties());
// Finally, fill the pool and start it
if (!options.get("BackgroundStartup", false) && min > 0) {
final ExecutorService es = Executors.newFixedThreadPool(min);
http://git-wip-us.apache.org/repos/asf/tomee/blob/1989e746/container/openejb-core/src/main/java/org/apache/openejb/core/mdb/MdbPoolContainer.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/core/mdb/MdbPoolContainer.java b/container/openejb-core/src/main/java/org/apache/openejb/core/mdb/MdbPoolContainer.java
index 6fac7da..72ca5b6 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/core/mdb/MdbPoolContainer.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/core/mdb/MdbPoolContainer.java
@@ -73,11 +73,9 @@ public class MdbPoolContainer implements RpcContainer, BaseMdbContainer {
private static final Object[] NO_ARGS = new Object[0];
private final Object containerID;
- private final SecurityService securityService;
private final ResourceAdapter resourceAdapter;
private final Class messageListenerInterface;
private final Class activationSpecClass;
- private final int instanceLimit;
private final boolean failOnUnknownActivationSpec;
private final MdbInstanceManager instanceManager;
private final ConcurrentMap<Object, BeanContext> deployments = new ConcurrentHashMap<Object, BeanContext>();
@@ -91,7 +89,6 @@ public class MdbPoolContainer implements RpcContainer, BaseMdbContainer {
final ResourceAdapter resourceAdapter,
final Class messageListenerInterface,
final Class activationSpecClass,
- final int instanceLimit,
final boolean failOnUnknownActivationSpec,
final Duration accessTimeout,
final Duration closeTimeout,
@@ -101,74 +98,63 @@ public class MdbPoolContainer implements RpcContainer, BaseMdbContainer {
final int evictionThreads
) {
this.containerID = containerID;
- this.securityService = securityService;
this.resourceAdapter = resourceAdapter;
this.messageListenerInterface = messageListenerInterface;
this.activationSpecClass = activationSpecClass;
- this.instanceLimit = instanceLimit;
this.failOnUnknownActivationSpec = failOnUnknownActivationSpec;
xaResourceWrapper = SystemInstance.get().getComponent(XAResourceWrapper.class);
inboundRecovery = SystemInstance.get().getComponent(InboundRecovery.class);
this.instanceManager = new MdbInstanceManager(
+ securityService,
resourceAdapter,
inboundRecovery,
containerID,
- instanceLimit,
- securityService, accessTimeout, closeTimeout, poolBuilder, callbackThreads,
+ accessTimeout, closeTimeout, poolBuilder, callbackThreads,
useOneSchedulerThreadByBean ?
null :
Executors.newScheduledThreadPool(Math.max(evictionThreads, 1), new DaemonThreadFactory(containerID)));
}
- @Override
public BeanContext[] getBeanContexts() {
return deployments.values().toArray(new BeanContext[deployments.size()]);
}
- @Override
public BeanContext getBeanContext(final Object deploymentID) {
return deployments.get(deploymentID);
}
- @Override
public ContainerType getContainerType() {
return ContainerType.MESSAGE_DRIVEN;
}
- @Override
public Object getContainerID() {
return containerID;
}
- @Override
public ResourceAdapter getResourceAdapter() {
return resourceAdapter;
}
- @Override
public Class getMessageListenerInterface() {
return messageListenerInterface;
}
- @Override
public Class getActivationSpecClass() {
return activationSpecClass;
}
- @Override
public Properties getProperties() {
return properties;
}
- @Override
public void deploy(final BeanContext beanContext) throws OpenEJBException {
final Object deploymentId = beanContext.getDeploymentID();
-
if (!beanContext.getMdbInterface().equals(messageListenerInterface)) {
throw new OpenEJBException("Deployment '" + deploymentId + "' has message listener interface " +
beanContext.getMdbInterface().getName() + " but this MDB container only supports " +
messageListenerInterface);
}
+
// create the activation spec
final ActivationSpec activationSpec = createActivationSpec(beanContext);
@@ -188,7 +174,72 @@ public class MdbPoolContainer implements RpcContainer, BaseMdbContainer {
}
}
- @Override
+ private ActivationSpec createActivationSpec(final BeanContext beanContext) throws OpenEJBException {
+ try {
+ // initialize the object recipe
+ final ObjectRecipe objectRecipe = new ObjectRecipe(activationSpecClass);
+ objectRecipe.allow(Option.IGNORE_MISSING_PROPERTIES);
+ objectRecipe.disallow(Option.FIELD_INJECTION);
+
+
+ final Map<String, String> activationProperties = beanContext.getActivationProperties();
+ for (final Map.Entry<String, String> entry : activationProperties.entrySet()) {
+ objectRecipe.setMethodProperty(entry.getKey(), entry.getValue());
+ }
+ objectRecipe.setMethodProperty("beanClass", beanContext.getBeanClass());
+
+
+ // create the activationSpec
+ final ActivationSpec activationSpec = (ActivationSpec) objectRecipe.create(activationSpecClass.getClassLoader());
+
+ // verify all properties except "destination" and "destinationType" were consumed
+ final Set<String> unusedProperties = new TreeSet<String>(objectRecipe.getUnsetProperties().keySet());
+ unusedProperties.remove("destination");
+ unusedProperties.remove("destinationType");
+ unusedProperties.remove("destinationLookup");
+ unusedProperties.remove("connectionFactoryLookup");
+ unusedProperties.remove("beanClass");
+ unusedProperties.remove("MdbActiveOnStartup");
+ unusedProperties.remove("MdbJMXControl");
+ unusedProperties.remove("DeliveryActive");
+
+ if (!unusedProperties.isEmpty()) {
+ final String text = "No setter found for the activation spec properties: " + unusedProperties;
+ if (failOnUnknownActivationSpec) {
+ throw new IllegalArgumentException(text);
+ } else {
+ logger.warning(text);
+ }
+ }
+
+
+ // validate the activation spec
+ try {
+ activationSpec.validate();
+ } catch (final UnsupportedOperationException uoe) {
+ logger.info("ActivationSpec does not support validate. Implementation of validate is optional");
+ }
+ // also try validating using Bean Validation if there is a Validator available in the context.
+ try {
+ final Validator validator = (Validator) beanContext.getJndiContext().lookup("comp/Validator");
+
+ final Set generalSet = validator.validate(activationSpec);
+ if (!generalSet.isEmpty()) {
+ throw new ConstraintViolationException("Constraint violation for ActivationSpec " + activationSpecClass.getName(), generalSet);
+ }
+ } catch (final NamingException e) {
+ logger.debug("No Validator bound to JNDI context");
+ }
+
+ // set the resource adapter into the activation spec
+ activationSpec.setResourceAdapter(resourceAdapter);
+
+ return activationSpec;
+ } catch (final Exception e) {
+ throw new OpenEJBException("Unable to create activation spec", e);
+ }
+ }
+
public void start(final BeanContext info) throws OpenEJBException {
final EjbTimerService timerService = info.getEjbTimerService();
if (timerService != null) {
@@ -196,12 +247,10 @@ public class MdbPoolContainer implements RpcContainer, BaseMdbContainer {
}
}
- @Override
public void stop(final BeanContext info) throws OpenEJBException {
info.stop();
}
- @Override
public void undeploy(final BeanContext beanContext) throws OpenEJBException {
if (!(beanContext instanceof BeanContext)) {
return;
@@ -216,7 +265,6 @@ public class MdbPoolContainer implements RpcContainer, BaseMdbContainer {
}
- @Override
public Object invoke(final Object deploymentId, final InterfaceType type, final Class callInterface, final Method method, final Object[] args, final Object primKey) throws OpenEJBException {
final BeanContext beanContext = getBeanContext(deploymentId);
@@ -239,7 +287,6 @@ public class MdbPoolContainer implements RpcContainer, BaseMdbContainer {
}
}
- @Override
public void beforeDelivery(final BeanContext deployInfo, final Object instance, final Method method, final XAResource xaResource) throws SystemException {
// intialize call context
final ThreadContext callContext = new ThreadContext(deployInfo, null);
@@ -271,7 +318,6 @@ public class MdbPoolContainer implements RpcContainer, BaseMdbContainer {
}
}
- @Override
public Object invoke(final Object instance, final Method method, final InterfaceType type, Object... args) throws SystemException, ApplicationException {
if (args == null) {
args = NO_ARGS;
@@ -365,7 +411,6 @@ public class MdbPoolContainer implements RpcContainer, BaseMdbContainer {
throw new AssertionError("Should not get here");
}
- @Override
public void afterDelivery(final Object instance) throws SystemException {
// get the mdb call context
final ThreadContext callContext = ThreadContext.getThreadContext();
@@ -381,7 +426,7 @@ public class MdbPoolContainer implements RpcContainer, BaseMdbContainer {
try {
this.instanceManager.poolInstance(callContext, instance);
} catch (OpenEJBException e){
- e.printStackTrace(); // TODO: Check this, find a way to remove
+ throw new SystemException("Should never get an OpenEJBException exception", e);
}
}
@@ -393,7 +438,6 @@ public class MdbPoolContainer implements RpcContainer, BaseMdbContainer {
}
}
- @Override
public void release(final BeanContext deployInfo, final Object instance) {
// get the mdb call context
ThreadContext callContext = ThreadContext.getThreadContext();
@@ -416,7 +460,7 @@ public class MdbPoolContainer implements RpcContainer, BaseMdbContainer {
try {
instanceManager.poolInstance(callContext, instance);
} catch (OpenEJBException e){
- e.printStackTrace();
+ logger.error("error while releasing message endpoint", e);
}
}
}
@@ -493,72 +537,5 @@ public class MdbPoolContainer implements RpcContainer, BaseMdbContainer {
}
}
}
-
- private ActivationSpec createActivationSpec(final BeanContext beanContext) throws OpenEJBException {
- try {
- // initialize the object recipe
- final ObjectRecipe objectRecipe = new ObjectRecipe(activationSpecClass);
- objectRecipe.allow(Option.IGNORE_MISSING_PROPERTIES);
- objectRecipe.disallow(Option.FIELD_INJECTION);
-
-
- final Map<String, String> activationProperties = beanContext.getActivationProperties();
- ;
- for (final Map.Entry<String, String> entry : activationProperties.entrySet()) {
- objectRecipe.setMethodProperty(entry.getKey(), entry.getValue());
- }
- objectRecipe.setMethodProperty("beanClass", beanContext.getBeanClass());
-
-
- // create the activationSpec
- final ActivationSpec activationSpec = (ActivationSpec) objectRecipe.create(activationSpecClass.getClassLoader());
-
- // verify all properties except "destination" and "destinationType" were consumed
- final Set<String> unusedProperties = new TreeSet<String>(objectRecipe.getUnsetProperties().keySet());
- unusedProperties.remove("destination");
- unusedProperties.remove("destinationType");
- unusedProperties.remove("destinationLookup");
- unusedProperties.remove("connectionFactoryLookup");
- unusedProperties.remove("beanClass");
- unusedProperties.remove("MdbActiveOnStartup");
- unusedProperties.remove("MdbJMXControl");
- unusedProperties.remove("DeliveryActive");
-
- if (!unusedProperties.isEmpty()) {
- final String text = "No setter found for the activation spec properties: " + unusedProperties;
- if (failOnUnknownActivationSpec) {
- throw new IllegalArgumentException(text);
- } else {
- logger.warning(text);
- }
- }
-
-
- // validate the activation spec
- try {
- activationSpec.validate();
- } catch (final UnsupportedOperationException uoe) {
- logger.info("ActivationSpec does not support validate. Implementation of validate is optional");
- }
- // also try validating using Bean Validation if there is a Validator available in the context.
- try {
- final Validator validator = (Validator) beanContext.getJndiContext().lookup("comp/Validator");
-
- final Set generalSet = validator.validate(activationSpec);
- if (!generalSet.isEmpty()) {
- throw new ConstraintViolationException("Constraint violation for ActivationSpec " + activationSpecClass.getName(), generalSet);
- }
- } catch (final NamingException e) {
- logger.debug("No Validator bound to JNDI context");
- }
-
- // set the resource adapter into the activation spec
- activationSpec.setResourceAdapter(resourceAdapter);
-
- return activationSpec;
- } catch (final Exception e) {
- throw new OpenEJBException("Unable to create activation spec", e);
- }
- }
}
http://git-wip-us.apache.org/repos/asf/tomee/blob/1989e746/container/openejb-core/src/main/java/org/apache/openejb/core/stateless/StatelessInstanceManager.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/core/stateless/StatelessInstanceManager.java b/container/openejb-core/src/main/java/org/apache/openejb/core/stateless/StatelessInstanceManager.java
index 30538fe..eb41196 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/core/stateless/StatelessInstanceManager.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/core/stateless/StatelessInstanceManager.java
@@ -50,11 +50,14 @@ import java.util.concurrent.TimeUnit;
public class StatelessInstanceManager extends InstanceManager {
+ private final SecurityService securityService;
+
public StatelessInstanceManager(final SecurityService securityService,
final Duration accessTimeout, final Duration closeTimeout,
final Pool.Builder poolBuilder, final int callbackThreads,
final ScheduledExecutorService ses) {
- super(securityService, accessTimeout, closeTimeout, poolBuilder, callbackThreads, ses);
+ super(accessTimeout, closeTimeout, poolBuilder, callbackThreads, ses);
+ this.securityService = securityService;
}
http://git-wip-us.apache.org/repos/asf/tomee/blob/1989e746/container/openejb-core/src/main/resources/META-INF/org.apache.openejb/service-jar.xml
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/resources/META-INF/org.apache.openejb/service-jar.xml b/container/openejb-core/src/main/resources/META-INF/org.apache.openejb/service-jar.xml
index 0641c49..f6beecb 100644
--- a/container/openejb-core/src/main/resources/META-INF/org.apache.openejb/service-jar.xml
+++ b/container/openejb-core/src/main/resources/META-INF/org.apache.openejb/service-jar.xml
@@ -468,7 +468,6 @@
ResourceAdapter Default JMS Resource Adapter
MessageListenerInterface javax.jms.MessageListener
ActivationSpecClass org.apache.openejb.resource.activemq.TomEEMessageActivationSpec
- InstanceLimit 10
FailOnUnknownActivationSpec false
AccessTimeout 5 minutes
CloseTimeout 5 minutes