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;