User: ejort
Date: 02/01/04 09:59:57
Modified: src/main/org/jboss/ejb Container.java
Log:
Temprory Hack to allow servlets to create user transactions.
This should be fixed when local invocations are no longer
marshalled.
Revision Changes Path
1.67 +41 -22 jboss/src/main/org/jboss/ejb/Container.java
Index: Container.java
===================================================================
RCS file: /cvsroot/jboss/jboss/src/main/org/jboss/ejb/Container.java,v
retrieving revision 1.66
retrieving revision 1.67
diff -u -r1.66 -r1.67
--- Container.java 2002/01/03 04:00:57 1.66
+++ Container.java 2002/01/04 17:59:57 1.67
@@ -40,6 +40,7 @@
import javax.naming.StringRefAddr;
import javax.naming.RefAddr;
import javax.naming.NameNotFoundException;
+import javax.transaction.Transaction; // tmp
import javax.transaction.TransactionManager;
import org.jboss.deployment.DeploymentException;
@@ -67,17 +68,17 @@
*
* <p>The ContainerFactory creates instances of subclasses of this class
* and calls the appropriate initialization methods.
- *
+ *
* <p>A Container does not perform any significant work, but instead delegates
* to the plugins to provide for all kinds of algorithmic functionality.
*
* @see ContainerFactory
- *
+ *
* @author <a href="mailto:[EMAIL PROTECTED]">Rickard �berg</a>
* @author <a href="mailto:[EMAIL PROTECTED]">Marc Fleury</a>
* @author <a href="mailto:[EMAIL PROTECTED]">Scott Stark</a>.
* @author <a href="[EMAIL PROTECTED]">Bill Burke</a>
- * @version $Revision: 1.66 $
+ * @version $Revision: 1.67 $
*
* <p><b>Revisions:</b>
*
@@ -172,7 +173,7 @@
/** ObjectName of the JSR-77 EJB representation **/
protected String mEJBObjectName;
-
+
/**
* The name of the Remote invoker dedicated to this container,
* the type is set through deployment
@@ -422,7 +423,7 @@
localHomeInterface = classLoader.loadClass(metaData.getLocalHome());
if (metaData.getLocal() != null)
localInterface = classLoader.loadClass(metaData.getLocal());
-
+
localContainerInvoker.setContainer( this );
localContainerInvoker.create();
if (localHomeInterface != null)
@@ -572,7 +573,7 @@
// FIXME FIXME FIXME FIXME REMOVE WHEN CL ARE INTEGRATED
log.debug("METHOD REMOTE INVOKE
"+mi.getContainer()+"||"+mi.getMethod().getName()+"||");
- }
+ }
// FIXME FIXME FIXME FIXME REMOVE WHEN CL ARE INTEGRATED
else if
(!mi.getMethod().getDeclaringClass().isAssignableFrom(remoteInterface))
{
@@ -585,61 +586,79 @@
// FIXME FIXME FIXME FIXME REMOVE WHEN CL ARE INTEGRATED
log.debug("WARNING: YOU ARE RUNNING NON-OPTIMIZED");
}
+
+ // TEMP FIXME HACK This makes user transactions on the server work
until
+ // local invocations stop going through Marshalled Invocation
+ Transaction hack = mi.getTransaction();
+
// FIXME FIXME FIXME FIXME REMOVE WHEN CL ARE INTEGRATED
//Serialize deserialize
mi = (Invocation) new MarshalledObject(new
MarshalledInvocation(mi.payload)).get();
-
+
+ // TEMP FIXME HACK This makes user transactions on the server work
until
+ // local invocations stop going through Marshalled Invocation
+ mi.setTransaction(hack);
+
// FIXME FIXME FIXME FIXME REMOVE WHEN CL ARE INTEGRATED
((MarshalledInvocation)
mi).setMethodMap(marshalledInvocationMapping);
-
+
// FIXME FIXME FIXME FIXME REMOVE WHEN CL ARE INTEGRATED
return new MarshalledObject(invoke(mi));
}
-
+
value = invoke(mi);
}
-
+
else if( actionName.equals("local") )
{
throw new MBeanException(new UnsupportedOperationException("local is
not supported yet"));
}
else if( actionName.equals("home") )
{
-
- if (mi instanceof MarshalledInvocation)
+
+ if (mi instanceof MarshalledInvocation)
{
-
+
((MarshalledInvocation)
mi).setMethodMap(marshalledInvocationMapping);
-
+
if (log.isDebugEnabled())
// FIXME FIXME FIXME FIXME REMOVE WHEN CL ARE INTEGRATED
log.debug("METHOD HOME INVOKE
"+mi.getContainer()+"||"+mi.getMethod().getName()+"||"+mi.getArguments().toString());
-
- }
+
+ }
// FIXME FIXME FIXME FIXME REMOVE WHEN CL ARE INTEGRATED
else if
(!mi.getMethod().getDeclaringClass().isAssignableFrom(remoteInterface))
{
-
+
if (log.isDebugEnabled())
{
// FIXME FIXME FIXME FIXME REMOVE WHEN CL ARE INTEGRATED
log.debug("METHOD HOME INVOKE
"+mi.getContainer()+"||"+mi.getMethod().getName()+"||"+mi.getArguments().toString());
-
+
// FIXME FIXME FIXME FIXME REMOVE WHEN CL ARE INTEGRATED
log.debug("WARNING: YOU ARE RUNNING NON-OPTIMIZED");
}
+
+ // TEMP FIXME HACK This makes user transactions on the server work
until
+ // local invocations stop going through Marshalled Invocation
+ Transaction hack = mi.getTransaction();
+
// FIXME FIXME FIXME FIXME REMOVE WHEN CL ARE INTEGRATED
//Serialize deserialize
mi = (MarshalledInvocation) new MarshalledObject(new
MarshalledInvocation(mi.payload)).get();
-
+
+ // TEMP FIXME HACK This makes user transactions on the server work
until
+ // local invocations stop going through Marshalled Invocation
+ mi.setTransaction(hack);
+
// FIXME FIXME FIXME FIXME REMOVE WHEN CL ARE INTEGRATED
((MarshalledInvocation)
mi).setMethodMap(marshalledInvocationMapping);
-
+
// FIXME FIXME FIXME FIXME REMOVE WHEN CL ARE INTEGRATED
return new MarshalledObject(invokeHome(mi));
-
+
}
-
+
value = invokeHome(mi);
}
else if( actionName.equals("localHome") )
_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development