You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by an...@apache.org on 2007/07/20 14:52:19 UTC
svn commit: r557986 - in
/incubator/tuscany/java/sca/modules/binding-ejb/src/main/java/org/apache/tuscany/sca/binding/ejb/util:
EJBHandler.java EJBObjectFactory.java EJBStubHelper.java
Author: antelder
Date: Fri Jul 20 05:52:18 2007
New Revision: 557986
URL: http://svn.apache.org/viewvc?view=rev&rev=557986
Log:
TUSCANY-1467, apply patch from Mark Combellack to support EJB3 in the ejb binding
Modified:
incubator/tuscany/java/sca/modules/binding-ejb/src/main/java/org/apache/tuscany/sca/binding/ejb/util/EJBHandler.java
incubator/tuscany/java/sca/modules/binding-ejb/src/main/java/org/apache/tuscany/sca/binding/ejb/util/EJBObjectFactory.java
incubator/tuscany/java/sca/modules/binding-ejb/src/main/java/org/apache/tuscany/sca/binding/ejb/util/EJBStubHelper.java
Modified: incubator/tuscany/java/sca/modules/binding-ejb/src/main/java/org/apache/tuscany/sca/binding/ejb/util/EJBHandler.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-ejb/src/main/java/org/apache/tuscany/sca/binding/ejb/util/EJBHandler.java?view=diff&rev=557986&r1=557985&r2=557986
==============================================================================
--- incubator/tuscany/java/sca/modules/binding-ejb/src/main/java/org/apache/tuscany/sca/binding/ejb/util/EJBHandler.java (original)
+++ incubator/tuscany/java/sca/modules/binding-ejb/src/main/java/org/apache/tuscany/sca/binding/ejb/util/EJBHandler.java Fri Jul 20 05:52:18 2007
@@ -74,7 +74,7 @@
// locates the stub
public EJBHandler(NamingEndpoint namingEndpoint, InterfaceInfo ejbInterface) {
try {
- this.ejbStub = EJBStubHelper.lookup(namingEndpoint);
+ this.ejbStub = EJBStubHelper.lookup(namingEndpoint, ejbInterface);
this.interfaceInfo = ejbInterface;
} catch (Exception e) {
throw new ServiceRuntimeException(e);
Modified: incubator/tuscany/java/sca/modules/binding-ejb/src/main/java/org/apache/tuscany/sca/binding/ejb/util/EJBObjectFactory.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-ejb/src/main/java/org/apache/tuscany/sca/binding/ejb/util/EJBObjectFactory.java?view=diff&rev=557986&r1=557985&r2=557986
==============================================================================
--- incubator/tuscany/java/sca/modules/binding-ejb/src/main/java/org/apache/tuscany/sca/binding/ejb/util/EJBObjectFactory.java (original)
+++ incubator/tuscany/java/sca/modules/binding-ejb/src/main/java/org/apache/tuscany/sca/binding/ejb/util/EJBObjectFactory.java Fri Jul 20 05:52:18 2007
@@ -52,7 +52,7 @@
* of the pregenerated EJB stub classes be avaiable in the classpath.
* <p>
*/
- public static Object createStub(NamingEndpoint namingEndpoint) throws NamingException, RemoteException,
+ public static Object createStub(NamingEndpoint namingEndpoint, InterfaceInfo ejbInterface) throws NamingException, RemoteException,
CreateException {
EJBLocator locator = namingEndpoint.getLocator();
@@ -63,7 +63,7 @@
* type, otherwise, "org.omg.stub.java.rmi._Remote_Stub" or
* "org.omg.stub.javax.ejb._EJBHome_Stub"
*/
- Object stub = getEJBStub(homeObject);
+ Object stub = getEJBStub(homeObject, ejbInterface);
// Cache dynamic stub only
return stub;
}
@@ -74,10 +74,26 @@
* @return
* @throws RemoteException
*/
- protected static Object getEJBStub(Object homeObject) throws RemoteException, CreateException {
+ protected static Object getEJBStub(Object homeObject, InterfaceInfo ejbInterface) throws RemoteException, CreateException {
Object stub = null;
- if (homeObject instanceof EJBLocalHome) {
+
+ // Get the business interface of the EJB
+ Class ejbInterfaceClass = null;
+ try
+ {
+ ejbInterfaceClass = Thread.currentThread().getContextClassLoader().loadClass(ejbInterface.getName());
+ }
+ catch (ClassNotFoundException e)
+ {
+ // ignore
+ }
+
+ if (ejbInterfaceClass != null && ejbInterfaceClass.isInstance(homeObject))
+ {
+ // EJB 3
+ stub = homeObject;
+ } else if (homeObject instanceof EJBLocalHome) {
// Local EJB
stub = createEJBLocalObject(homeObject);
} else {
Modified: incubator/tuscany/java/sca/modules/binding-ejb/src/main/java/org/apache/tuscany/sca/binding/ejb/util/EJBStubHelper.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-ejb/src/main/java/org/apache/tuscany/sca/binding/ejb/util/EJBStubHelper.java?view=diff&rev=557986&r1=557985&r2=557986
==============================================================================
--- incubator/tuscany/java/sca/modules/binding-ejb/src/main/java/org/apache/tuscany/sca/binding/ejb/util/EJBStubHelper.java (original)
+++ incubator/tuscany/java/sca/modules/binding-ejb/src/main/java/org/apache/tuscany/sca/binding/ejb/util/EJBStubHelper.java Fri Jul 20 05:52:18 2007
@@ -40,13 +40,13 @@
* @return
*/
- public static Object lookup(NamingEndpoint endpoint) {
- return getStub(endpoint);
+ public static Object lookup(NamingEndpoint endpoint, InterfaceInfo ejbInterface) {
+ return getStub(endpoint, ejbInterface);
}
- public static Object getStub(NamingEndpoint namingEndpoint) {
+ public static Object getStub(NamingEndpoint namingEndpoint, InterfaceInfo ejbInterface) {
try {
- stub = EJBObjectFactory.createStub(namingEndpoint);
+ stub = EJBObjectFactory.createStub(namingEndpoint, ejbInterface);
} catch (NamingException e) {
exception = new ServiceUnavailableException(e);
e.printStackTrace();
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org