dblevins    2005/02/01 17:25:21

  Modified:    modules/core/src/java/org/openejb/client EJBHomeHandler.java
                        EntityEJBHomeHandler.java RequestMethods.java
  Log:

  Added home method support to the protocol
  
  Revision  Changes    Path
  1.5       +27 -1     
openejb/modules/core/src/java/org/openejb/client/EJBHomeHandler.java
  
  Index: EJBHomeHandler.java
  ===================================================================
  RCS file: 
/home/projects/openejb/scm/openejb/modules/core/src/java/org/openejb/client/EJBHomeHandler.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- EJBHomeHandler.java       30 Jul 2004 19:03:44 -0000      1.4
  +++ EJBHomeHandler.java       1 Feb 2005 22:25:20 -0000       1.5
  @@ -172,6 +172,8 @@
               } else if (method.equals(REMOVE_W_KEY)) {
                   return removeByPrimaryKey(method, args, proxy);
   
  +            } else if (method.getDeclaringClass() == ejb.homeClass) {
  +                return homeMethod(method, args, proxy);
   
                   /*-- UNKOWN ---------------------------------------------*/
               } else {
  @@ -406,6 +408,30 @@
       public void writeExternal(ObjectOutput out) throws IOException {
       }
   
  +    protected Object homeMethod(Method method, Object[] args, Object proxy) 
throws Throwable {
  +        EJBRequest req = new EJBRequest(EJB_HOME_METHOD);
  +
  +        req.setClientIdentity(ContextManager.getThreadPrincipal());
  +        req.setContainerCode(ejb.deploymentCode);
  +        req.setContainerID(ejb.deploymentID);
  +        req.setMethodInstance(method);
  +        req.setMethodParameters(args);
  +
  +        EJBResponse res = request(req);
  +
  +        switch (res.getResponseCode()) {
  +            case EJB_ERROR:
  +                throw (Throwable) res.getResult();
  +            case EJB_SYS_EXCEPTION:
  +                throw (Throwable) res.getResult();
  +            case EJB_APP_EXCEPTION:
  +                throw (Throwable) res.getResult();
  +            case EJB_OK:
  +                return res.getResult();
  +            default:
  +                throw new RemoteException("Received invalid response code 
from server: " + res.getResponseCode());
  +        }
  +    }
   }
   
   
  
  
  
  1.3       +2 -2      
openejb/modules/core/src/java/org/openejb/client/EntityEJBHomeHandler.java
  
  Index: EntityEJBHomeHandler.java
  ===================================================================
  RCS file: 
/home/projects/openejb/scm/openejb/modules/core/src/java/org/openejb/client/EntityEJBHomeHandler.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- EntityEJBHomeHandler.java 30 Jul 2004 19:03:44 -0000      1.2
  +++ EntityEJBHomeHandler.java 1 Feb 2005 22:25:20 -0000       1.3
  @@ -257,5 +257,5 @@
           ejbObject.remove();
           return null;
       }
  -    
  +
   }
  
  
  
  1.3       +16 -15    
openejb/modules/core/src/java/org/openejb/client/RequestMethods.java
  
  Index: RequestMethods.java
  ===================================================================
  RCS file: 
/home/projects/openejb/scm/openejb/modules/core/src/java/org/openejb/client/RequestMethods.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- RequestMethods.java       23 Sep 2004 19:23:18 -0000      1.2
  +++ RequestMethods.java       1 Feb 2005 22:25:20 -0000       1.3
  @@ -65,28 +65,29 @@
       public static final int EJB_HOME_GET_HOME_HANDLE    =  2;
       public static final int EJB_HOME_REMOVE_BY_HANDLE   =  3;
       public static final int EJB_HOME_REMOVE_BY_PKEY     =  4;
  -    //---------------------------------------------------- 5-//
  -    // Methods from the user defined EJBHome subinterface  6 //
  -    // a.k.a.  The Home Interface                          7 //
  -    //---------------------------------------------------- 8-//
  +    //-------------------------------------------------------//
  +    // Methods from the user defined EJBHome subinterface    //
  +    // a.k.a.  The Home Interface                            //
  +    //-------------------------------------------------------//
  +    public static final int EJB_HOME_METHOD             =  8;
       public static final int EJB_HOME_FIND               =  9;
       public static final int EJB_HOME_CREATE             = 10;
  -    //----------------------------------------------------11-//
  -    // Methods from the javax.ejb.EJBObject interface     12 //
  -    //----------------------------------------------------13-//
  +    //-------------------------------------------------------//
  +    // Methods from the javax.ejb.EJBObject interface        //
  +    //-------------------------------------------------------//
       public static final int EJB_OBJECT_GET_EJB_HOME     = 14;
       public static final int EJB_OBJECT_GET_HANDLE       = 15;
       public static final int EJB_OBJECT_GET_PRIMARY_KEY  = 16;
       public static final int EJB_OBJECT_IS_IDENTICAL     = 17;
       public static final int EJB_OBJECT_REMOVE           = 18;
  -    //----------------------------------------------------19-//
  -    // Methods from the user defined EJBObject subinterfac20 //
  -    // a.k.a.  The Remote Interface                       21 //
  -    //----------------------------------------------------22-//
  +    //-------------------------------------------------------//
  +    // Methods from the user defined EJBObject subinterfac   //
  +    // a.k.a.  The Remote Interface                          //
  +    //-------------------------------------------------------//
       public static final int EJB_OBJECT_BUSINESS_METHOD  = 23;
  -    //----------------------------------------------------24-//
  -    // Methods from the javax.naming.Context              25 //
  -    //----------------------------------------------------26-//
  +    //-------------------------------------------------------//
  +    // Methods from the javax.naming.Context                 //
  +    //-------------------------------------------------------//
       public static final int JNDI_LOOKUP                 = 27;
       public static final int JNDI_LIST                   = 28;
       public static final int JNDI_LIST_BINDINGS          = 29;
  
  
  

Reply via email to