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();
  
  
  

Reply via email to