dain 2004/09/29 15:36:00
Modified: modules/core/src/java/org/openejb/server/ejbd
JndiRequestHandler.java
Log:
Addded JNDI reference address and fatory for resolving EJBs from a remote jndi enc
Moved EJB reference index code from EARContext to a new EJBRefContext
Revision Changes Path
1.10 +18 -9
openejb/modules/core/src/java/org/openejb/server/ejbd/JndiRequestHandler.java
Index: JndiRequestHandler.java
===================================================================
RCS file:
/home/projects/openejb/scm/openejb/modules/core/src/java/org/openejb/server/ejbd/JndiRequestHandler.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- JndiRequestHandler.java 29 Sep 2004 03:39:44 -0000 1.9
+++ JndiRequestHandler.java 29 Sep 2004 19:36:00 -0000 1.10
@@ -87,13 +87,16 @@
Thread thread = Thread.currentThread();
ClassLoader contextClassLoader = thread.getContextClassLoader();
- try {
- ObjectName objectName = new ObjectName(req.getClientModuleID());
- ClassLoader classLoader =
(ClassLoader)Kernel.getSingleKernel().getAttribute(objectName, "classLoader");
- thread.setContextClassLoader(classLoader);
- } catch (Throwable e) {
- replyWithFatalError(out, e, "Failed to set the correct classloader");
- return;
+ if (req.getClientModuleID() != null) {
+ contextClassLoader = thread.getContextClassLoader();
+ try {
+ ObjectName objectName = new ObjectName(req.getClientModuleID());
+ ClassLoader classLoader =
(ClassLoader)Kernel.getSingleKernel().getAttribute(objectName, "classLoader");
+ thread.setContextClassLoader(classLoader);
+ } catch (Throwable e) {
+ replyWithFatalError(out, e, "Failed to set the correct
classloader");
+ return;
+ }
}
try {
@@ -119,7 +122,9 @@
} catch (Throwable t) {
log.error("Failed to write to JNDIResponse", t);
}
- thread.setContextClassLoader(contextClassLoader);
+ if (req.getClientModuleID() != null) {
+ thread.setContextClassLoader(contextClassLoader);
+ }
}
}
@@ -155,6 +160,10 @@
}
} else {
int index = containerIndex.getContainerIndexByJndiName(name);
+ if (index <= 0) {
+ // name not found... check if an object name was sent directly
+ index = containerIndex.getContainerIndex(name);
+ }
if (index > 0) {
EJBContainer deployment = containerIndex.getContainer(index);
ProxyInfo info = deployment.getProxyInfo();