dain 2005/01/26 18:28:01
Modified: modules/openejb-builder/src/java/org/openejb/deployment
AbstractContainerBuilder.java ContainerBuilder.java
EntityBuilder.java MDBContainerBuilder.java
MdbBuilder.java SessionBuilder.java
StatelessContainerBuilder.java
Log:
ENC is now passed around as a Map instead of a jndi Context. This allows the
ejb container to modify it and inject the kernel and class loader into
references.
Changed Stateless and MDB containers to use system chain for ejbCreate and
ejbRemove invocations.
Added test to verify that ejbRemove is propertly called from the cache code.
Revision Changes Path
1.5 +7 -6
openejb/modules/openejb-builder/src/java/org/openejb/deployment/AbstractContainerBuilder.java
Index: AbstractContainerBuilder.java
===================================================================
RCS file:
/home/projects/openejb/scm/openejb/modules/openejb-builder/src/java/org/openejb/deployment/AbstractContainerBuilder.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- AbstractContainerBuilder.java 26 Jan 2005 15:13:20 -0000 1.4
+++ AbstractContainerBuilder.java 26 Jan 2005 23:28:01 -0000 1.5
@@ -48,6 +48,7 @@
package org.openejb.deployment;
import java.util.Set;
+import java.util.Map;
import javax.ejb.TimedObject;
import javax.ejb.Timer;
import javax.management.ObjectName;
@@ -55,7 +56,6 @@
import org.apache.geronimo.gbean.GBeanData;
import org.apache.geronimo.kernel.ClassLoading;
-import org.apache.geronimo.naming.java.ReadOnlyContext;
import org.apache.geronimo.transaction.TrackedConnectionAssociator;
import org.apache.geronimo.transaction.UserTransactionImpl;
import org.apache.geronimo.transaction.context.TransactionContextManager;
@@ -96,7 +96,7 @@
private boolean securityEnabled = false;
private boolean useContextHandler = false;
private SecurityConfiguration securityConfiguration;
- private ReadOnlyContext componentContext;
+ private Map componentContext;
private Set unshareableResources;
private Set applicationManagedSecurityResources;
private UserTransactionImpl userTransaction;
@@ -238,11 +238,11 @@
this.securityConfiguration = securityConfiguration;
}
- public ReadOnlyContext getComponentContext() {
+ public Map getComponentContext() {
return componentContext;
}
- public void setComponentContext(ReadOnlyContext componentContext) {
+ public void setComponentContext(Map componentContext) {
this.componentContext = componentContext;
}
@@ -346,7 +346,6 @@
interceptorBuilder.setDoAsCurrentCaller(doAsCurrentCaller);
interceptorBuilder.setSecurityEnabled(securityEnabled);
interceptorBuilder.setUseContextHandler(useContextHandler);
- interceptorBuilder.setComponentContext(componentContext);
interceptorBuilder.setTransactionPolicyManager(new
TransactionPolicyManager(transactionPolicySource, signatures));
interceptorBuilder.setPermissionManager(new
PermissionManager(ejbName, signatures));
return interceptorBuilder;
@@ -394,6 +393,7 @@
contextFactory,
interceptorBuilder,
pool,
+ getComponentContext(),
getUserTransaction(),
getJndiNames(),
getLocalJndiNames(),
@@ -421,6 +421,7 @@
gbean.setAttribute("ContextFactory", contextFactory);
gbean.setAttribute("InterceptorBuilder", interceptorBuilder);
gbean.setAttribute("Pool", pool);
+ gbean.setAttribute("componentContext", getComponentContext());
gbean.setAttribute("UserTransaction", getUserTransaction());
gbean.setAttribute("JndiNames", getJndiNames());
gbean.setAttribute("LocalJndiNames", getLocalJndiNames());
1.4 +5 -7
openejb/modules/openejb-builder/src/java/org/openejb/deployment/ContainerBuilder.java
Index: ContainerBuilder.java
===================================================================
RCS file:
/home/projects/openejb/scm/openejb/modules/openejb-builder/src/java/org/openejb/deployment/ContainerBuilder.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- ContainerBuilder.java 27 Dec 2004 02:03:25 -0000 1.3
+++ ContainerBuilder.java 26 Jan 2005 23:28:01 -0000 1.4
@@ -44,11 +44,11 @@
*/
package org.openejb.deployment;
+import java.util.Map;
import javax.management.ObjectName;
import org.apache.geronimo.gbean.GBeanData;
import org.apache.geronimo.naming.deployment.ResourceEnvironmentBuilder;
-import org.apache.geronimo.naming.java.ReadOnlyContext;
import org.apache.geronimo.transaction.TrackedConnectionAssociator;
import org.apache.geronimo.transaction.UserTransactionImpl;
import org.apache.geronimo.transaction.context.TransactionContextManager;
@@ -56,8 +56,6 @@
import org.openejb.transaction.TransactionPolicySource;
/**
- *
- *
* @version $Revision$ $Date$
*/
public interface ContainerBuilder extends ResourceEnvironmentBuilder,
SecureBuilder {
@@ -97,9 +95,9 @@
void setPrimaryKeyClassName(String primaryKeyClassName);
- ReadOnlyContext getComponentContext();
+ Map getComponentContext();
- void setComponentContext(ReadOnlyContext componentContext);
+ void setComponentContext(Map componentContext);
UserTransactionImpl getUserTransaction();
1.10 +1 -3
openejb/modules/openejb-builder/src/java/org/openejb/deployment/EntityBuilder.java
Index: EntityBuilder.java
===================================================================
RCS file:
/home/projects/openejb/scm/openejb/modules/openejb-builder/src/java/org/openejb/deployment/EntityBuilder.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- EntityBuilder.java 22 Jan 2005 00:39:14 -0000 1.9
+++ EntityBuilder.java 26 Jan 2005 23:28:01 -0000 1.10
@@ -62,7 +62,6 @@
import org.apache.geronimo.j2ee.j2eeobjectnames.J2eeContext;
import org.apache.geronimo.j2ee.j2eeobjectnames.NameFactory;
import org.apache.geronimo.naming.deployment.ENCConfigBuilder;
-import org.apache.geronimo.naming.java.ReadOnlyContext;
import org.apache.geronimo.security.deploy.Security;
import org.apache.geronimo.xbeans.geronimo.naming.GerEjbLocalRefType;
import org.apache.geronimo.xbeans.geronimo.naming.GerEjbRefType;
@@ -193,10 +192,9 @@
MessageDestinationRefType[] messageDestinationRefs =
entityBean.getMessageDestinationRefArray();
ServiceRefType[] serviceRefs = entityBean.getServiceRefArray();
- ReadOnlyContext context =
ENCConfigBuilder.buildComponentContext(earContext, ejbModule, userTransaction,
envEntries, ejbRefs, openejbEjbRefs, ejbLocalRefs, openejbEjbLocalRefs,
resourceRefs, openejbResourceRefs, resourceEnvRefs, openejbResourceEnvRefs,
messageDestinationRefs, serviceRefs, cl);
+ Map context = ENCConfigBuilder.buildComponentContext(earContext,
ejbModule, userTransaction, envEntries, ejbRefs, openejbEjbRefs, ejbLocalRefs,
openejbEjbLocalRefs, resourceRefs, openejbResourceRefs, resourceEnvRefs,
openejbResourceEnvRefs, messageDestinationRefs, serviceRefs, cl);
builder.setComponentContext(context);
ENCConfigBuilder.setResourceEnvironment(earContext,
ejbModule.getModuleURI(), builder, resourceRefs, openejbResourceRefs);
-
}
public void initContext(EARContext earContext, J2eeContext
moduleJ2eeContext, URI moduleUri, ClassLoader cl, EnterpriseBeansType
enterpriseBeans, Set interfaces) throws DeploymentException {
1.3 +29 -30
openejb/modules/openejb-builder/src/java/org/openejb/deployment/MDBContainerBuilder.java
Index: MDBContainerBuilder.java
===================================================================
RCS file:
/home/projects/openejb/scm/openejb/modules/openejb-builder/src/java/org/openejb/deployment/MDBContainerBuilder.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- MDBContainerBuilder.java 1 Dec 2004 06:59:10 -0000 1.2
+++ MDBContainerBuilder.java 26 Jan 2005 23:28:01 -0000 1.3
@@ -59,12 +59,10 @@
import org.apache.geronimo.gbean.GBeanData;
import org.apache.geronimo.naming.deployment.ResourceEnvironmentBuilder;
-import org.apache.geronimo.naming.java.ReadOnlyContext;
import org.apache.geronimo.transaction.UserTransactionImpl;
import org.openejb.cache.InstancePool;
import org.openejb.dispatch.EJBTimeoutOperation;
import org.openejb.dispatch.InterfaceMethodSignature;
-import org.openejb.dispatch.MethodHelper;
import org.openejb.dispatch.MethodSignature;
import org.openejb.dispatch.VirtualOperation;
import org.openejb.mdb.BusinessMethod;
@@ -74,7 +72,8 @@
import org.openejb.mdb.MDBInterceptorBuilder;
import org.openejb.mdb.dispatch.SetMessageDrivenContextOperation;
import org.openejb.security.SecurityConfiguration;
-import org.openejb.slsb.CreateMethod;
+import org.openejb.slsb.EJBCreateMethod;
+import org.openejb.slsb.RemoveMethod;
import org.openejb.transaction.ContainerPolicy;
import org.openejb.transaction.TransactionPolicy;
import org.openejb.transaction.TransactionPolicySource;
@@ -85,6 +84,7 @@
* @version $Revision$ $Date$
*/
public class MDBContainerBuilder implements ResourceEnvironmentBuilder,
SecureBuilder {
+ private static final MethodSignature SET_MESSAGE_DRIVEN_CONTEXT = new
MethodSignature("setMessageDrivenContext", new
String[]{"javax.ejb.MessageDrivenContext"});
private String containerId;
private String ejbName;
@@ -96,7 +96,7 @@
private boolean securityEnabled = false;
private boolean useContextHandler = false;
private SecurityConfiguration securityConfiguration;
- private ReadOnlyContext componentContext;
+ private Map componentContext;
private Set unshareableResources;
private Set applicationManagedSecurityResources;
private UserTransactionImpl userTransaction;
@@ -194,11 +194,11 @@
this.securityConfiguration = securityConfiguration;
}
- public ReadOnlyContext getComponentContext() {
+ public Map getComponentContext() {
return componentContext;
}
- public void setComponentContext(ReadOnlyContext componentContext) {
+ public void setComponentContext(Map componentContext) {
this.componentContext = componentContext;
}
@@ -270,7 +270,7 @@
// build the instance factory
MDBInstanceContextFactory contextFactory = new
MDBInstanceContextFactory(containerId, beanClass, userTransaction,
unshareableResources, applicationManagedSecurityResources);
- MDBInstanceFactory instanceFactory = new
MDBInstanceFactory(componentContext, contextFactory, beanClass);
+ MDBInstanceFactory instanceFactory = new
MDBInstanceFactory(contextFactory);
// build the pool
InstancePool pool = new SoftLimitedInstancePool(instanceFactory, 1);
@@ -280,7 +280,6 @@
interceptorBuilder.setEJBName(ejbName);
interceptorBuilder.setVtable(vtable);
interceptorBuilder.setRunAs(runAs);
- interceptorBuilder.setComponentContext(componentContext);
interceptorBuilder.setInstancePool(pool);
boolean[] deliveryTransacted = new boolean[signatures.length];
@@ -314,6 +313,7 @@
gbean.setAttribute("deliveryTransacted", deliveryTransacted);
gbean.setAttribute("contextFactory", contextFactory);
gbean.setAttribute("interceptorBuilder", interceptorBuilder);
+ gbean.setAttribute("componentContext", getComponentContext());
gbean.setAttribute("instancePool", pool);
gbean.setAttribute("userTransaction", userTransaction);
gbean.setReferencePattern("Timer", timerName);
@@ -325,20 +325,16 @@
protected LinkedHashMap buildVopMap(Class beanClass) throws Exception {
LinkedHashMap vopMap = new LinkedHashMap();
- Method setMessageDrivenContext = null;
- try {
- Class messageDrivenContextClass =
getClassLoader().loadClass("javax.ejb.MessageDrivenContext");
- setMessageDrivenContext =
beanClass.getMethod("setMessageDrivenContext", new
Class[]{messageDrivenContextClass});
- } catch (NoSuchMethodException e) {
- throw new IllegalArgumentException("Bean does not implement
setMessageDrivenContext(javax.ejb.MessageDrivenContext)");
- }
+ boolean isBMT = (getUserTransaction() != null);
+ // ejbCreate... this is the method called by the pool to create a
new instance
+ vopMap.put(new InterfaceMethodSignature("ejbCreate", false), new
EJBCreateMethod(beanClass, isBMT));
+ // ejbRemove... this is the method called by the pool to destroy an
instance
+ vopMap.put(new InterfaceMethodSignature("ejbRemove", false), new
RemoveMethod(beanClass, isBMT));
+ // ejbTimeout
if (TimedObject.class.isAssignableFrom(beanClass)) {
- MethodSignature signature = new MethodSignature("ejbTimeout",
new Class[]{Timer.class});
- vopMap.put(MethodHelper.translateToInterface(signature)
- , EJBTimeoutOperation.INSTANCE);
+ vopMap.put(new InterfaceMethodSignature("ejbTimeout", new
String[]{Timer.class.getName()}, false),
+ EJBTimeoutOperation.INSTANCE);
}
- // add the create method
- vopMap.put(new InterfaceMethodSignature("create", true), new
CreateMethod());
// add the business methods
Method[] beanMethods = beanClass.getMethods();
@@ -347,20 +343,23 @@
if (Object.class == beanMethod.getDeclaringClass()) {
continue;
}
- String name = beanMethod.getName();
- MethodSignature signature = new MethodSignature(beanMethod);
- if (setMessageDrivenContext.equals(beanMethod)) {
- vopMap.put(MethodHelper.translateToInterface(signature)
- , SetMessageDrivenContextOperation.INSTANCE);
+
+ if (beanMethod.getName().startsWith("ejb")) {
continue;
}
- if (name.startsWith("ejb")) {
- continue;
+
+ // match set message driven context down here since it can not
be easily ignored like ejb* methods
+ MethodSignature signature = new MethodSignature(beanMethod);
+ if (SET_MESSAGE_DRIVEN_CONTEXT.equals(signature)) {
+ vopMap.put(new
InterfaceMethodSignature("setMessageDrivenContext", new
String[]{"javax.ejb.MessageDrivenContext"}, false),
+ SetMessageDrivenContextOperation.INSTANCE);
+ } else {
+ vopMap.put(new InterfaceMethodSignature(signature, false),
+ new BusinessMethod(beanClass, signature));
}
- vopMap.put(new InterfaceMethodSignature(signature, false),
- new BusinessMethod(beanClass, signature));
}
return vopMap;
}
+
}
1.10 +1 -2
openejb/modules/openejb-builder/src/java/org/openejb/deployment/MdbBuilder.java
Index: MdbBuilder.java
===================================================================
RCS file:
/home/projects/openejb/scm/openejb/modules/openejb-builder/src/java/org/openejb/deployment/MdbBuilder.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- MdbBuilder.java 22 Jan 2005 00:39:14 -0000 1.9
+++ MdbBuilder.java 26 Jan 2005 23:28:01 -0000 1.10
@@ -64,7 +64,6 @@
import org.apache.geronimo.j2ee.j2eeobjectnames.J2eeContextImpl;
import org.apache.geronimo.j2ee.j2eeobjectnames.NameFactory;
import org.apache.geronimo.naming.deployment.ENCConfigBuilder;
-import org.apache.geronimo.naming.java.ReadOnlyContext;
import org.apache.geronimo.security.deploy.Security;
import org.apache.geronimo.transaction.UserTransactionImpl;
import org.apache.geronimo.xbeans.geronimo.naming.GerEjbLocalRefType;
@@ -314,7 +313,7 @@
MessageDestinationRefType[] messageDestinationRefs =
messageDrivenBean.getMessageDestinationRefArray();
ServiceRefType[] serviceRefs =
messageDrivenBean.getServiceRefArray();
- ReadOnlyContext context =
ENCConfigBuilder.buildComponentContext(earContext, ejbModule, userTransaction,
envEntries, ejbRefs, openejbEjbRefs, ejbLocalRefs, openejbEjbLocalRefs,
resourceRefs, openejbResourceRefs, resourceEnvRefs, openejbResourceEnvRefs,
messageDestinationRefs, serviceRefs, cl);
+ Map context = ENCConfigBuilder.buildComponentContext(earContext,
ejbModule, userTransaction, envEntries, ejbRefs, openejbEjbRefs, ejbLocalRefs,
openejbEjbLocalRefs, resourceRefs, openejbResourceRefs, resourceEnvRefs,
openejbResourceEnvRefs, messageDestinationRefs, serviceRefs, cl);
builder.setComponentContext(context);
ENCConfigBuilder.setResourceEnvironment(earContext,
ejbModule.getModuleURI(), builder, resourceRefs, openejbResourceRefs);
1.12 +1 -2
openejb/modules/openejb-builder/src/java/org/openejb/deployment/SessionBuilder.java
Index: SessionBuilder.java
===================================================================
RCS file:
/home/projects/openejb/scm/openejb/modules/openejb-builder/src/java/org/openejb/deployment/SessionBuilder.java,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- SessionBuilder.java 22 Jan 2005 00:39:14 -0000 1.11
+++ SessionBuilder.java 26 Jan 2005 23:28:01 -0000 1.12
@@ -62,7 +62,6 @@
import org.apache.geronimo.j2ee.j2eeobjectnames.J2eeContext;
import org.apache.geronimo.j2ee.j2eeobjectnames.NameFactory;
import org.apache.geronimo.naming.deployment.ENCConfigBuilder;
-import org.apache.geronimo.naming.java.ReadOnlyContext;
import org.apache.geronimo.security.deploy.Security;
import org.apache.geronimo.transaction.UserTransactionImpl;
import org.apache.geronimo.xbeans.geronimo.naming.GerEjbLocalRefType;
@@ -136,7 +135,7 @@
MessageDestinationRefType[] messageDestinationRefs =
sessionBean.getMessageDestinationRefArray();
ServiceRefType[] serviceRefs = sessionBean.getServiceRefArray();
- ReadOnlyContext context =
ENCConfigBuilder.buildComponentContext(earContext, ejbModule, userTransaction,
envEntries, ejbRefs, openejbEjbRefs, ejbLocalRefs, openejbEjbLocalRefs,
resourceRefs, openejbResourceRefs, resourceEnvRefs, openejbResourceEnvRefs,
messageDestinationRefs, serviceRefs, cl);
+ Map context = ENCConfigBuilder.buildComponentContext(earContext,
ejbModule, userTransaction, envEntries, ejbRefs, openejbEjbRefs, ejbLocalRefs,
openejbEjbLocalRefs, resourceRefs, openejbResourceRefs, resourceEnvRefs,
openejbResourceEnvRefs, messageDestinationRefs, serviceRefs, cl);
builder.setComponentContext(context);
ENCConfigBuilder.setResourceEnvironment(earContext,
ejbModule.getModuleURI(), builder, resourceRefs, openejbResourceRefs);
1.2 +27 -37
openejb/modules/openejb-builder/src/java/org/openejb/deployment/StatelessContainerBuilder.java
Index: StatelessContainerBuilder.java
===================================================================
RCS file:
/home/projects/openejb/scm/openejb/modules/openejb-builder/src/java/org/openejb/deployment/StatelessContainerBuilder.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- StatelessContainerBuilder.java 10 Nov 2004 01:35:08 -0000 1.1
+++ StatelessContainerBuilder.java 26 Jan 2005 23:28:01 -0000 1.2
@@ -58,22 +58,23 @@
import org.openejb.cache.InstancePool;
import org.openejb.dispatch.EJBTimeoutOperation;
import org.openejb.dispatch.InterfaceMethodSignature;
-import org.openejb.dispatch.MethodHelper;
import org.openejb.dispatch.MethodSignature;
import org.openejb.dispatch.VirtualOperation;
import org.openejb.slsb.BusinessMethod;
-import org.openejb.slsb.CreateMethod;
+import org.openejb.slsb.EJBCreateMethod;
+import org.openejb.slsb.RemoveMethod;
import org.openejb.slsb.StatelessInstanceContextFactory;
import org.openejb.slsb.StatelessInstanceFactory;
import org.openejb.slsb.StatelessInterceptorBuilder;
-import org.openejb.slsb.dispatch.EJBActivateOperation;
-import org.openejb.slsb.dispatch.EJBPassivateOperation;
+import org.openejb.slsb.CreateMethod;
import org.openejb.slsb.dispatch.SetSessionContextOperation;
/**
* @version $Revision$ $Date$
*/
public class StatelessContainerBuilder extends AbstractContainerBuilder {
+ private static final MethodSignature SET_SESSION_CONTEXT = new
MethodSignature("setSessionContext", new String[]{"javax.ejb.SessionContext"});
+
protected int getEJBComponentType() {
return EJBComponentType.STATELESS;
}
@@ -93,7 +94,7 @@
// build the instance factory
StatelessInstanceContextFactory contextFactory = new
StatelessInstanceContextFactory(getContainerId(), beanClass,
getUserTransaction(), getUnshareableResources(),
getApplicationManagedSecurityResources());
- StatelessInstanceFactory instanceFactory = new
StatelessInstanceFactory(getComponentContext(), contextFactory, beanClass);
+ StatelessInstanceFactory instanceFactory = new
StatelessInstanceFactory(contextFactory);
// build the pool
InstancePool pool = createInstancePool(instanceFactory);
@@ -111,16 +112,18 @@
protected LinkedHashMap buildVopMap(Class beanClass) throws Exception {
LinkedHashMap vopMap = new LinkedHashMap();
- Method setSessionContext = null;
- try {
- Class sessionContextClass =
getClassLoader().loadClass("javax.ejb.SessionContext");
- setSessionContext = beanClass.getMethod("setSessionContext", new
Class[]{sessionContextClass});
- } catch (NoSuchMethodException e) {
- throw new IllegalArgumentException("Bean does not implement
setSessionContext(javax.ejb.SessionContext)");
- }
-
- // add the create method
+ boolean isBMT = (getUserTransaction() != null);
+ // ejbCreate... this is the method called by the pool to create a
new instance
+ vopMap.put(new InterfaceMethodSignature("ejbCreate", false), new
EJBCreateMethod(beanClass, isBMT));
+ // create... this is the method that is called by the user
vopMap.put(new InterfaceMethodSignature("create", true), new
CreateMethod());
+ // ejbRemove... this is the method called by the pool to destroy an
instance
+ vopMap.put(new InterfaceMethodSignature("ejbRemove", false), new
RemoveMethod(beanClass, isBMT));
+ // ejbTimeout
+ if (TimedObject.class.isAssignableFrom(beanClass)) {
+ vopMap.put(new InterfaceMethodSignature("ejbTimeout", new
String[]{Timer.class.getName()}, false),
+ EJBTimeoutOperation.INSTANCE);
+ }
// add the business methods
Method[] beanMethods = beanClass.getMethods();
@@ -129,31 +132,18 @@
if (Object.class == beanMethod.getDeclaringClass()) {
continue;
}
- String name = beanMethod.getName();
- if (TimedObject.class.isAssignableFrom(beanClass)) {
- MethodSignature signature = new
MethodSignature("ejbTimeout", new Class[]{Timer.class});
- vopMap.put(
- MethodHelper.translateToInterface(signature)
- , EJBTimeoutOperation.INSTANCE);
+
+ if (beanMethod.getName().startsWith("ejb")) {
+ continue;
}
+
MethodSignature signature = new MethodSignature(beanMethod);
- if (name.equals("ejbActivate")) {
- vopMap.put(
- MethodHelper.translateToInterface(signature)
- , EJBActivateOperation.INSTANCE);
- } else if (name.equals("ejbPassivate")) {
- vopMap.put(
- MethodHelper.translateToInterface(signature)
- , EJBPassivateOperation.INSTANCE);
- } else if (setSessionContext.equals(beanMethod)) {
- vopMap.put(
- MethodHelper.translateToInterface(signature)
- , SetSessionContextOperation.INSTANCE);
- } else if (name.startsWith("ejb")) {
- continue;
+ // match set session context sig down here since it can not be
easily ignored like ejb* methods
+ if (SET_SESSION_CONTEXT.equals(signature)) {
+ vopMap.put(new InterfaceMethodSignature("setSessionContext",
new String[]{"javax.ejb.SessionContext"}, false),
+ SetSessionContextOperation.INSTANCE);
} else {
- vopMap.put(
- new InterfaceMethodSignature(signature, false),
+ vopMap.put(new InterfaceMethodSignature(signature, false),
new BusinessMethod(beanClass, signature));
}
}