Author: jbonofre
Date: Sun Dec 15 05:36:39 2013
New Revision: 1551000
URL: http://svn.apache.org/r1551000
Log:
Fix jndi contexts list
Modified:
karaf/trunk/jndi/core/src/main/java/org/apache/karaf/jndi/JndiMBean.java
karaf/trunk/jndi/core/src/main/java/org/apache/karaf/jndi/internal/JndiMBeanImpl.java
karaf/trunk/jndi/core/src/main/java/org/apache/karaf/jndi/internal/JndiServiceImpl.java
Modified:
karaf/trunk/jndi/core/src/main/java/org/apache/karaf/jndi/JndiMBean.java
URL:
http://svn.apache.org/viewvc/karaf/trunk/jndi/core/src/main/java/org/apache/karaf/jndi/JndiMBean.java?rev=1551000&r1=1550999&r2=1551000&view=diff
==============================================================================
--- karaf/trunk/jndi/core/src/main/java/org/apache/karaf/jndi/JndiMBean.java
(original)
+++ karaf/trunk/jndi/core/src/main/java/org/apache/karaf/jndi/JndiMBean.java
Sun Dec 15 05:36:39 2013
@@ -34,21 +34,21 @@ public interface JndiMBean {
public Map<String, String> getNames() throws MBeanException;
/**
- * Get a map of JNDI names/class names children of a given base context.
+ * Get a list of JNDI sub-contexts (as attribute).
*
- * @param context the base context.
- * @return the map of names/class names.
+ * @return the MBean attribute containing the list of sub-contexts.
* @throws MBeanException
*/
- public Map<String, String> getNames(String context) throws MBeanException;
+ public List<String> getContexts() throws MBeanException;
/**
- * Get a list of JNDI sub-contexts (as attribute).
+ * Get a map of JNDI names/class names children of a given base context.
*
- * @return the MBean attribute containing the list of sub-contexts.
+ * @param context the base context.
+ * @return the map of names/class names.
* @throws MBeanException
*/
- public List<String> getContexts() throws MBeanException;
+ public Map<String, String> getNames(String context) throws MBeanException;
/**
* Get a list of JNDI sub-contexts children of a given base context.
Modified:
karaf/trunk/jndi/core/src/main/java/org/apache/karaf/jndi/internal/JndiMBeanImpl.java
URL:
http://svn.apache.org/viewvc/karaf/trunk/jndi/core/src/main/java/org/apache/karaf/jndi/internal/JndiMBeanImpl.java?rev=1551000&r1=1550999&r2=1551000&view=diff
==============================================================================
---
karaf/trunk/jndi/core/src/main/java/org/apache/karaf/jndi/internal/JndiMBeanImpl.java
(original)
+++
karaf/trunk/jndi/core/src/main/java/org/apache/karaf/jndi/internal/JndiMBeanImpl.java
Sun Dec 15 05:36:39 2013
@@ -40,18 +40,18 @@ public class JndiMBeanImpl implements Jn
}
@Override
- public Map<String, String> getNames(String context) throws MBeanException {
+ public List<String> getContexts() throws MBeanException {
try {
- return this.jndiService.names(context);
+ return this.jndiService.contexts();
} catch (Throwable t) {
throw new MBeanException(null, t.getMessage());
}
}
@Override
- public List<String> getContexts() throws MBeanException {
+ public Map<String, String> getNames(String context) throws MBeanException {
try {
- return this.jndiService.contexts();
+ return this.jndiService.names(context);
} catch (Throwable t) {
throw new MBeanException(null, t.getMessage());
}
Modified:
karaf/trunk/jndi/core/src/main/java/org/apache/karaf/jndi/internal/JndiServiceImpl.java
URL:
http://svn.apache.org/viewvc/karaf/trunk/jndi/core/src/main/java/org/apache/karaf/jndi/internal/JndiServiceImpl.java?rev=1551000&r1=1550999&r2=1551000&view=diff
==============================================================================
---
karaf/trunk/jndi/core/src/main/java/org/apache/karaf/jndi/internal/JndiServiceImpl.java
(original)
+++
karaf/trunk/jndi/core/src/main/java/org/apache/karaf/jndi/internal/JndiServiceImpl.java
Sun Dec 15 05:36:39 2013
@@ -112,22 +112,25 @@ public class JndiServiceImpl implements
if (o instanceof Context) {
StringBuilder sb = new StringBuilder();
sb.append(pair.getName());
- contexts((Context) o, sb);
- contexts.add(sb.toString());
+ contexts((Context) o, sb, contexts);
}
}
return contexts;
}
- private void contexts(Context context, StringBuilder sb) throws Exception {
+ private void contexts(Context context, StringBuilder sb, List<String>
contexts) throws Exception {
NamingEnumeration list = context.listBindings("");
while (list.hasMore()) {
Binding item = (Binding) list.next();
String name = item.getName();
Object o = item.getObject();
if (o instanceof Context) {
- sb.append("/").append(name);
- contexts((Context) o, sb);
+ if (((Context) o).list("").hasMoreElements()) {
+ sb.append("/").append(name);
+ contexts((Context) o, sb, contexts);
+ } else {
+ contexts.add(sb.toString() + "/" + name);
+ }
}
}
}