User: docodan 
  Date: 01/06/04 08:16:08

  Modified:    src/main/org/jboss/ejb ContainerInvokerContainer.java
                        EntityContainer.java MessageDrivenContainer.java
                        StatefulSessionContainer.java
                        StatefulSessionEnterpriseContext.java
                        StatelessSessionContainer.java
  Log:
  Lots of changes for stateful session beans to support local interface. (Exception 
handling not right; lots of verifier errors.)
  
  Revision  Changes    Path
  1.4       +3 -1      jboss/src/main/org/jboss/ejb/ContainerInvokerContainer.java
  
  Index: ContainerInvokerContainer.java
  ===================================================================
  RCS file: 
/cvsroot/jboss/jboss/src/main/org/jboss/ejb/ContainerInvokerContainer.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- ContainerInvokerContainer.java    2001/06/02 19:30:27     1.3
  +++ ContainerInvokerContainer.java    2001/06/04 15:16:08     1.4
  @@ -22,7 +22,7 @@
    *   @see ContainerInvoker
    *   @author Rickard Öberg ([EMAIL PROTECTED])
    *      @author Daniel OConnor ([EMAIL PROTECTED])
  - *   @version $Revision: 1.3 $
  + *   @version $Revision: 1.4 $
    */
   public interface ContainerInvokerContainer
   {
  @@ -36,5 +36,7 @@
      public Class getLocalClass();
        
      public ContainerInvoker getContainerInvoker();
  +   
  +   public LocalContainerInvoker getLocalContainerInvoker();
   }
   
  
  
  
  1.39      +6 -1      jboss/src/main/org/jboss/ejb/EntityContainer.java
  
  Index: EntityContainer.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss/src/main/org/jboss/ejb/EntityContainer.java,v
  retrieving revision 1.38
  retrieving revision 1.39
  diff -u -r1.38 -r1.39
  --- EntityContainer.java      2001/06/03 21:19:52     1.38
  +++ EntityContainer.java      2001/06/04 15:16:08     1.39
  @@ -37,7 +37,7 @@
   *   @author <a href="mailto:[EMAIL PROTECTED]";>Marc Fleury</a>
   *   @author <a href="mailto:[EMAIL PROTECTED]";>Sebastien Alborini</a>
   *   @author Daniel OConnor ([EMAIL PROTECTED])
  -*   @version $Revision: 1.38 $
  +*   @version $Revision: 1.39 $
   */
   public class EntityContainer
   extends Container
  @@ -89,6 +89,11 @@
      {
         return containerInvoker;
      }
  +   
  +    public LocalContainerInvoker getLocalContainerInvoker()
  +    {
  +       return localContainerInvoker;
  +    }     
   
      public void setInstancePool(InstancePool ip)
      {
  
  
  
  1.5       +6 -1      jboss/src/main/org/jboss/ejb/MessageDrivenContainer.java
  
  Index: MessageDrivenContainer.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss/src/main/org/jboss/ejb/MessageDrivenContainer.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- MessageDrivenContainer.java       2001/06/02 19:30:27     1.4
  +++ MessageDrivenContainer.java       2001/06/04 15:16:08     1.5
  @@ -31,7 +31,7 @@
   *   @author Rickard Öberg ([EMAIL PROTECTED])
   *   @author <a href="[EMAIL PROTECTED]">Marc Fleury</a>
   *   @author Daniel OConnor ([EMAIL PROTECTED])
  -*   @version $Revision: 1.4 $
  +*   @version $Revision: 1.5 $
   *    extends StatelessSessionContainer
   */
   public class MessageDrivenContainer
  @@ -68,6 +68,11 @@
       { 
           return containerInvoker; 
       }
  +    
  +    public LocalContainerInvoker getLocalContainerInvoker()
  +    {
  +       return localContainerInvoker;
  +    }  
       
       public void setInstancePool(InstancePool ip) 
       { 
  
  
  
  1.26      +85 -29    jboss/src/main/org/jboss/ejb/StatefulSessionContainer.java
  
  Index: StatefulSessionContainer.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss/src/main/org/jboss/ejb/StatefulSessionContainer.java,v
  retrieving revision 1.25
  retrieving revision 1.26
  diff -u -r1.25 -r1.26
  --- StatefulSessionContainer.java     2001/06/03 22:23:31     1.25
  +++ StatefulSessionContainer.java     2001/06/04 15:16:08     1.26
  @@ -18,6 +18,7 @@
   import javax.ejb.Handle;
   import javax.ejb.HomeHandle;
   import javax.ejb.EJBObject;
  +import javax.ejb.EJBLocalObject;
   import javax.ejb.EJBHome;
   import javax.ejb.EJBMetaData;
   import javax.ejb.CreateException;
  @@ -33,7 +34,7 @@
    *   @see <related>
    *   @author Rickard Öberg ([EMAIL PROTECTED])
    *   @author Daniel OConnor ([EMAIL PROTECTED])
  - *   @version $Revision: 1.25 $
  + *   @version $Revision: 1.26 $
    */
   public class StatefulSessionContainer
      extends Container
  @@ -86,6 +87,11 @@
      { 
       return containerInvoker; 
      }
  +   
  +    public LocalContainerInvoker getLocalContainerInvoker()
  +    {
  +       return localContainerInvoker;
  +    }    
       
      public void setInstanceCache(InstanceCache ic)
      { 
  @@ -385,6 +391,21 @@
        return 
((StatefulSessionEnterpriseContext)mi.getEnterpriseContext()).getEJBObject();
      }
      
  +   // local home interface implementation
  +   
  +   public void removeLocalHome(MethodInvocation mi)
  +    throws java.rmi.RemoteException, RemoveException
  +   {
  +       throw new Error("Not Yet Implemented");
  +   }
  +   
  +   public EJBLocalObject createLocalHome(MethodInvocation mi)
  +      throws Exception
  +   {
  +      getPersistenceManager().createSession(mi.getMethod(), mi.getArguments(), 
(StatefulSessionEnterpriseContext)mi.getEnterpriseContext());
  +     return 
((StatefulSessionEnterpriseContext)mi.getEnterpriseContext()).getEJBLocalObject();
  +   }
  +   
        /**
       * A method for the getEJBObject from the handle
       * 
  @@ -434,19 +455,38 @@
       {
           Map map = new HashMap();
           
  -        Method[] m = homeInterface.getMethods();
  -        for (int i = 0; i < m.length; i++)
  +        if (homeInterface != null)
           {
  -            try
  -            {
  -                // Implemented by container
  -                map.put(m[i], getClass().getMethod(m[i].getName()+"Home", new 
Class[] { MethodInvocation.class }));
  -            } catch (NoSuchMethodException e)
  -            {
  -                Logger.log(m[i].getName() + " in bean has not been mapped");
  -            }
  +           Method[] m = homeInterface.getMethods();
  +           for (int i = 0; i < m.length; i++)
  +           {
  +               try
  +               {
  +                   // Implemented by container
  +                   map.put(m[i], getClass().getMethod(m[i].getName()+"Home", new 
Class[] { MethodInvocation.class }));
  +               } catch (NoSuchMethodException e)
  +               {
  +                   Logger.log(m[i].getName() + " in bean has not been mapped");
  +               }
  +           }
           }
           
  +        if (localHomeInterface != null)
  +        {
  +           Method[] m = localHomeInterface.getMethods();
  +           for (int i = 0; i < m.length; i++)
  +           {
  +               try
  +               {
  +                   // Implemented by container
  +                   map.put(m[i], getClass().getMethod(m[i].getName()+"LocalHome", 
new Class[] { MethodInvocation.class }));
  +               } catch (NoSuchMethodException e)
  +               {
  +                   Logger.log(m[i].getName() + " in bean has not been mapped");
  +               }
  +           }
  +        }
  +        
           try {
               
               // Get getEJBObject from on Handle, first get the class
  @@ -467,33 +507,49 @@
           homeMapping = map;
       }
   
  -   protected void setupBeanMapping()
  +    
  +    private void setUpBeanMappingImpl( Map map, Method[] m, String declaringClass )
         throws NoSuchMethodException
  -   {
  -      Map map = new HashMap();
  -      
  -      Method[] m = remoteInterface.getMethods();
  -      for (int i = 0; i < m.length; i++)
  -      {
  -         try
  -         {
  -            if (!m[i].getDeclaringClass().getName().equals("javax.ejb.EJBObject"))
  +    {
  +       for (int i = 0; i < m.length; i++)
  +        {
  +            if (!m[i].getDeclaringClass().getName().equals(declaringClass))
               {
                   // Implemented by bean
                   map.put(m[i], beanClass.getMethod(m[i].getName(), 
m[i].getParameterTypes()));
               }
               else
               {
  -               // Implemented by container
  -               map.put(m[i], getClass().getMethod(m[i].getName(), new Class[] { 
MethodInvocation.class }));
  -            
  +                try
  +                {
  +                    // Implemented by container
  +                    map.put(m[i], getClass().getMethod(m[i].getName(), new Class[] 
{ MethodInvocation.class }));
  +                } catch (NoSuchMethodException e)
  +                {
  +                    // DEBUG Logger.exception(e);
  +                    Logger.error(m[i].getName() + " in bean has not been mapped");
  +                }
               }
  -         } catch (NoSuchMethodException e)
  -         {
  -            Logger.error(m[i].getName() + " in bean has not been mapped");
  -         }
  +        }
  +    }
  +    
  +    
  +   protected void setupBeanMapping()
  +      throws NoSuchMethodException
  +   {
  +      Map map = new HashMap();
  +
  +      if (remoteInterface != null)
  +      {
  +         Method[] m = remoteInterface.getMethods();
  +         setUpBeanMappingImpl( map, m, "javax.ejb.EJBObject" );
         }
  -      
  +      if (localInterface != null)
  +      {
  +         Method[] m = localInterface.getMethods();
  +         setUpBeanMappingImpl( map, m, "javax.ejb.EJBLocalObject" );
  +      }
  +
         beanMapping = map;
      }
      
  
  
  
  1.8       +6 -1      
jboss/src/main/org/jboss/ejb/StatefulSessionEnterpriseContext.java
  
  Index: StatefulSessionEnterpriseContext.java
  ===================================================================
  RCS file: 
/cvsroot/jboss/jboss/src/main/org/jboss/ejb/StatefulSessionEnterpriseContext.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- StatefulSessionEnterpriseContext.java     2001/04/20 23:01:47     1.7
  +++ StatefulSessionEnterpriseContext.java     2001/06/04 15:16:08     1.8
  @@ -12,6 +12,7 @@
   import javax.ejb.EJBContext;
   import javax.ejb.EJBHome;
   import javax.ejb.EJBObject;
  +import javax.ejb.EJBLocalObject;
   import javax.ejb.SessionBean;
   import javax.ejb.SessionContext;
   
  @@ -20,7 +21,8 @@
    *      
    *   @see <related>
    *   @author Rickard Öberg ([EMAIL PROTECTED])
  - *   @version $Revision: 1.7 $
  + *      @author Daniel OConnor ([EMAIL PROTECTED])
  + *   @version $Revision: 1.8 $
    */
   public class StatefulSessionEnterpriseContext
      extends EnterpriseContext
  @@ -30,6 +32,7 @@
       
      // Attributes ----------------------------------------------------
      private EJBObject ejbObject;
  +   private EJBLocalObject ejbLocalObject;
        
      private SessionContext ctx;
       
  @@ -71,6 +74,8 @@
      
      public void setEJBObject(EJBObject eo) { ejbObject = eo; }
      public EJBObject getEJBObject() { return ejbObject; }
  +   public void setEJBLocalObject(EJBLocalObject eo) { ejbLocalObject = eo; }
  +   public EJBLocalObject getEJBLocalObject() { return ejbLocalObject; }
        
        public SessionContext getSessionContext()
        {
  
  
  
  1.20      +6 -1      jboss/src/main/org/jboss/ejb/StatelessSessionContainer.java
  
  Index: StatelessSessionContainer.java
  ===================================================================
  RCS file: 
/cvsroot/jboss/jboss/src/main/org/jboss/ejb/StatelessSessionContainer.java,v
  retrieving revision 1.19
  retrieving revision 1.20
  diff -u -r1.19 -r1.20
  --- StatelessSessionContainer.java    2001/06/03 22:23:31     1.19
  +++ StatelessSessionContainer.java    2001/06/04 15:16:08     1.20
  @@ -32,7 +32,7 @@
   *   @author Rickard Öberg ([EMAIL PROTECTED])
   *   @author <a href="[EMAIL PROTECTED]">Marc Fleury</a>
   *   @author Daniel OConnor ([EMAIL PROTECTED])
  -*   @version $Revision: 1.19 $
  +*   @version $Revision: 1.20 $
   */
   public class StatelessSessionContainer
       extends Container
  @@ -80,6 +80,11 @@
       { 
           return containerInvoker; 
       }
  +    
  +    public LocalContainerInvoker getLocalContainerInvoker()
  +    {
  +       return localContainerInvoker;
  +    }      
       
       public void setInstancePool(InstancePool ip) 
       { 
  
  
  

_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
http://lists.sourceforge.net/lists/listinfo/jboss-development

Reply via email to