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

Reply via email to