You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by ep...@apache.org on 2004/04/29 00:58:58 UTC

cvs commit: jakarta-commons/configuration/src/java/org/apache/commons/configuration JNDIConfiguration.java

epugh       2004/04/28 15:58:58

  Modified:    configuration/src/java/org/apache/commons/configuration
                        JNDIConfiguration.java
  Log:
  Change from listBindings to list to work with getting keys.
  
  Revision  Changes    Path
  1.11      +31 -27    jakarta-commons/configuration/src/java/org/apache/commons/configuration/JNDIConfiguration.java
  
  Index: JNDIConfiguration.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons/configuration/src/java/org/apache/commons/configuration/JNDIConfiguration.java,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- JNDIConfiguration.java	28 Mar 2004 14:42:45 -0000	1.10
  +++ JNDIConfiguration.java	28 Apr 2004 22:58:58 -0000	1.11
  @@ -16,11 +16,6 @@
   
   package org.apache.commons.configuration;
   
  -import javax.naming.Binding;
  -import javax.naming.Context;
  -import javax.naming.InitialContext;
  -import javax.naming.NamingEnumeration;
  -import javax.naming.NamingException;
   import java.util.ArrayList;
   import java.util.HashSet;
   import java.util.Iterator;
  @@ -29,6 +24,12 @@
   import java.util.Properties;
   import java.util.Set;
   
  +import javax.naming.Context;
  +import javax.naming.InitialContext;
  +import javax.naming.NameClassPair;
  +import javax.naming.NamingEnumeration;
  +import javax.naming.NamingException;
  +
   import org.apache.commons.lang.StringUtils;
   import org.apache.commons.logging.Log;
   import org.apache.commons.logging.LogFactory;
  @@ -75,22 +76,25 @@
        * @param key What key we are building on.
        * @throws NamingException If JNDI has an issue.
        */
  -    private void recursiveGetKeys(List keys, NamingEnumeration enum, String key) throws NamingException
  +    private void recursiveGetKeys(List keys, Context parentContext, String key) throws NamingException
       {
  +        NamingEnumeration enum = parentContext.list("");
           while (enum.hasMoreElements())
           {
  -            Binding binding = (Binding) enum.next();
  +            Object o = enum.next();
  +            
  +            NameClassPair nameClassPair = (NameClassPair) o;
               StringBuffer newKey = new StringBuffer();
               newKey.append(key);
               if (newKey.length() > 0)
               {
                   newKey.append(".");
               }
  -            newKey.append(binding.getName());
  -            if (binding.getObject() instanceof Context)
  +            newKey.append(nameClassPair.getName());
  +            if (parentContext.lookup(nameClassPair.getName()) instanceof Context)
               {
  -                Context context = (Context) binding.getObject();
  -                recursiveGetKeys(keys, context.listBindings(""), newKey.toString());
  +                Context context = (Context) parentContext.lookup(nameClassPair.getName());
  +                recursiveGetKeys(keys, context, newKey.toString());
               }
               else
               {
  @@ -138,14 +142,12 @@
               }
               else
               {
  -                context = getStartingContextPoint(keys, getContext().listBindings(""));
  +                context = getStartingContextPoint(keys, getContext(),getContext().list(""));
               }
   
               if (context != null)
               {
  -                NamingEnumeration enum = context.listBindings("");
  -
  -                recursiveGetKeys(keys, enum, key);
  +                recursiveGetKeys(keys, context, key);
               }
           }
           catch (NamingException ne)
  @@ -165,28 +167,29 @@
        * @return The context at that key's location in the JNDI tree, or null if not found
        * @throws NamingException if JNDI has an issue
        */
  -    private Context getStartingContextPoint(List keys, NamingEnumeration enum) throws NamingException
  +    private Context getStartingContextPoint(List keys, Context parentContext, NamingEnumeration enum) throws NamingException
       {
           String keyToSearchFor = (String) keys.get(0);
           log.debug("Key to search for is " + keyToSearchFor);
           while (enum.hasMoreElements())
  -        {
  -            Binding binding = (Binding) enum.next();
  +        {            
  +            NameClassPair nameClassPair = (NameClassPair) enum.next();
  +            Object o = parentContext.lookup(nameClassPair.getName());
               log.debug(
                   "Binding for name: "
  -                    + binding.getName()
  +                    + nameClassPair.getName()
                       + ", object:"
  -                    + binding.getObject()
  +                    + parentContext.lookup(nameClassPair.getName())
                       + ", class:"
  -                    + binding.getClassName());
  -            if (binding.getObject() instanceof Context
  -                && binding.getName().equals(keyToSearchFor))
  +                    + nameClassPair.getClassName());
  +            if (o instanceof Context
  +                && nameClassPair.getName().equals(keyToSearchFor))
               {
                   keys.remove(0);
  -                Context c = (Context) binding.getObject();
  +                Context c = (Context) o;
                   if (!keys.isEmpty())
                   {
  -                    return getStartingContextPoint(keys, c.listBindings(""));
  +                    return getStartingContextPoint(keys,c, c.list(""));
                   }
                   else
                   {
  @@ -214,7 +217,7 @@
       {
           try
           {
  -            NamingEnumeration enum = getContext().listBindings("");
  +            NamingEnumeration enum = getContext().list("");
               return !enum.hasMore();
           }
           catch (NamingException ne)
  @@ -317,6 +320,7 @@
           }
           catch (NamingException ne)
           {
  +            ne.printStackTrace();
               return null;
           }
       }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org