djencks 2005/03/15 00:27:01
Modified: modules/core/src/java/org/openejb EJBContainer.java
GenericEJBContainer.java
Removed: modules/core/src/java/org/openejb
EJBContainerConfiguration.java
Log:
Make transaction policy mapping more generic and implement the
no-distributed-transactions corba tx propagation polices. CORBA operation name
to method signature mapping is not yet really implemented
Revision Changes Path
1.9 +6 -1
openejb/modules/core/src/java/org/openejb/EJBContainer.java
Index: EJBContainer.java
===================================================================
RCS file:
/home/projects/openejb/scm/openejb/modules/core/src/java/org/openejb/EJBContainer.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- EJBContainer.java 19 Feb 2005 09:46:37 -0000 1.8
+++ EJBContainer.java 15 Mar 2005 05:27:01 -0000 1.9
@@ -48,6 +48,7 @@
package org.openejb;
import java.lang.reflect.Method;
+import java.io.Serializable;
import javax.ejb.EJBHome;
import javax.ejb.EJBLocalHome;
import javax.ejb.EJBLocalObject;
@@ -147,4 +148,8 @@
* @see
org.apache.geronimo.security.ContextManager#registerSubject(javax.security.auth.Subject)
*/
Subject getDefaultSubject();
+
+ Serializable getHomeTxPolicyConfig();
+
+ Serializable getRemoteTxPolicyConfig();
}
1.46 +42 -19
openejb/modules/core/src/java/org/openejb/GenericEJBContainer.java
Index: GenericEJBContainer.java
===================================================================
RCS file:
/home/projects/openejb/scm/openejb/modules/core/src/java/org/openejb/GenericEJBContainer.java,v
retrieving revision 1.45
retrieving revision 1.46
diff -u -r1.45 -r1.46
--- GenericEJBContainer.java 13 Mar 2005 15:11:55 -0000 1.45
+++ GenericEJBContainer.java 15 Mar 2005 05:27:01 -0000 1.46
@@ -54,6 +54,7 @@
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
+import java.io.Serializable;
import javax.ejb.EJBHome;
import javax.ejb.EJBLocalHome;
import javax.ejb.EJBLocalObject;
@@ -125,27 +126,33 @@
private final Subject defaultSubject;
private final Subject runAsSubject;
private final BasicTimerServiceImpl timerService;
+ //corba tx import policies
+ private final Serializable homeTxPolicyConfig;
+ private final Serializable remoteTxPolicyConfig;
public GenericEJBContainer(Object containerId,
- String ejbName,
- ProxyInfo proxyInfo,
- InterfaceMethodSignature[] signatures,
- InstanceContextFactory contextFactory,
- InterceptorBuilder interceptorBuilder,
- InstancePool pool,
- Map componentContext,
- UserTransactionImpl userTransaction,
- String[] jndiNames,
- String[] localJndiNames,
- TransactionContextManager transactionContextManager,
- TrackedConnectionAssociator trackedConnectionAssociator,
- ThreadPooledTimer timer,
- String objectName,
- Kernel kernel,
- SecurityConfiguration securityConfiguration,
- Subject defaultSubject,
- Subject runAsSubject, ClassLoader classLoader) throws Exception {
+ String ejbName,
+ ProxyInfo proxyInfo,
+ InterfaceMethodSignature[] signatures,
+ InstanceContextFactory contextFactory,
+ InterceptorBuilder interceptorBuilder,
+ InstancePool pool,
+ Map componentContext,
+ UserTransactionImpl userTransaction,
+ String[] jndiNames,
+ String[] localJndiNames,
+ TransactionContextManager
transactionContextManager,
+ TrackedConnectionAssociator
trackedConnectionAssociator,
+ ThreadPooledTimer timer,
+ String objectName,
+ Kernel kernel,
+ SecurityConfiguration securityConfiguration,
+ Subject defaultSubject,
+ Subject runAsSubject,
+ Serializable homeTxPolicyConfig,
+ Serializable remoteTxPolicyConfig,
+ ClassLoader classLoader) throws Exception {
assert (containerId != null);
assert (ejbName != null && ejbName.length() > 0);
@@ -222,6 +229,9 @@
// TODO maybe there is a more suitable place to do this. Maybe not.
setupJndi();
+
+ this.homeTxPolicyConfig = homeTxPolicyConfig;
+ this.remoteTxPolicyConfig = remoteTxPolicyConfig;
}
public InvocationResult invoke(Invocation invocation) throws Throwable {
@@ -322,6 +332,14 @@
return defaultSubject;
}
+ public Serializable getHomeTxPolicyConfig() {
+ return homeTxPolicyConfig;
+ }
+
+ public Serializable getRemoteTxPolicyConfig() {
+ return remoteTxPolicyConfig;
+ }
+
public int getMethodIndex(Method method) {
return proxyFactory.getMethodIndex(method);
}
@@ -497,6 +515,9 @@
infoFactory.addAttribute("DefaultSubject", Subject.class, true);
infoFactory.addAttribute("RunAsSubject", Subject.class, true);
+ infoFactory.addAttribute("HomeTxPolicyConfig", Serializable.class,
true);
+ infoFactory.addAttribute("RemoteTxPolicyConfig", Serializable.class,
true);
+
infoFactory.addAttribute("classLoader", ClassLoader.class, false);
infoFactory.addOperation("getMethodIndex", new
Class[]{Method.class});
@@ -528,6 +549,8 @@
"SecurityConfiguration",
"DefaultSubject",
"RunAsSubject",
+ "HomeTxPolicyConfig",
+ "RemoteTxPolicyConfig",
"classLoader"});
GBEAN_INFO = infoFactory.getBeanInfo();