You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by jb...@apache.org on 2015/06/02 10:09:39 UTC

karaf git commit: [KARAF-3747] Handle local context aliasing

Repository: karaf
Updated Branches:
  refs/heads/master ffb706534 -> 1a94fcc5b


[KARAF-3747] Handle local context aliasing


Project: http://git-wip-us.apache.org/repos/asf/karaf/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/1a94fcc5
Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/1a94fcc5
Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/1a94fcc5

Branch: refs/heads/master
Commit: 1a94fcc5bd6f7740c071f288be65fc26fe6d4c98
Parents: ffb7065
Author: Jean-Baptiste Onofré <jb...@apache.org>
Authored: Mon Jun 1 20:56:14 2015 +0200
Committer: Jean-Baptiste Onofré <jb...@apache.org>
Committed: Tue Jun 2 07:54:26 2015 +0200

----------------------------------------------------------------------
 .../apache/karaf/jndi/internal/JndiServiceImpl.java | 16 +++++++++++-----
 1 file changed, 11 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/karaf/blob/1a94fcc5/jndi/src/main/java/org/apache/karaf/jndi/internal/JndiServiceImpl.java
----------------------------------------------------------------------
diff --git a/jndi/src/main/java/org/apache/karaf/jndi/internal/JndiServiceImpl.java b/jndi/src/main/java/org/apache/karaf/jndi/internal/JndiServiceImpl.java
index 68d6b94..0508462 100644
--- a/jndi/src/main/java/org/apache/karaf/jndi/internal/JndiServiceImpl.java
+++ b/jndi/src/main/java/org/apache/karaf/jndi/internal/JndiServiceImpl.java
@@ -37,7 +37,7 @@ public class JndiServiceImpl implements JndiService {
     private BundleContext bundleContext;
     private ProxyManager proxyManager;
 
-    private final static String OSGI_JNDI_CONTEXT_PREFIX = "osgi:service/";
+    private final static String OSGI_JNDI_CONTEXT_PREFIX = "osgi:service";
     private final static String OSGI_JNDI_SERVICE_PROPERTY = "osgi.jndi.service.name";
 
     @Override
@@ -63,7 +63,9 @@ public class JndiServiceImpl implements JndiService {
                             if (proxyManager.isProxy(actualService)) {
                                 actualService = proxyManager.unwrap(actualService).call();
                             }
-                            map.put(OSGI_JNDI_CONTEXT_PREFIX + service.getProperty(OSGI_JNDI_SERVICE_PROPERTY), actualService.getClass().getName());
+                            if (service.getProperty(OSGI_JNDI_SERVICE_PROPERTY).toString().startsWith("/"))
+                                map.put(OSGI_JNDI_CONTEXT_PREFIX + service.getProperty(OSGI_JNDI_SERVICE_PROPERTY), actualService.getClass().getName());
+                            else map.put(OSGI_JNDI_CONTEXT_PREFIX + "/" + service.getProperty(OSGI_JNDI_SERVICE_PROPERTY), actualService.getClass().getName());
                             bundleContext.ungetService(service);
                         }
                     }
@@ -83,10 +85,14 @@ public class JndiServiceImpl implements JndiService {
                 }
                 if (o instanceof Context) {
                     StringBuilder sb = new StringBuilder();
-                    sb.append("/" + pair.getName());
+                    if (pair.getName().contains(":"))
+                        sb.append(pair.getName());
+                    else sb.append("/" + pair.getName());
                     names((Context) o, sb, map);
                 } else {
-                    map.put("/" + pair.getName(), pair.getClassName());
+                    if (pair.getName().contains(":"))
+                        map.put(pair.getName(), pair.getClassName());
+                    else map.put("/" + pair.getName(), pair.getClassName());
                 }
             }
         }
@@ -235,7 +241,7 @@ public class JndiServiceImpl implements JndiService {
                 ServiceReference<?>[] services = bundle.getRegisteredServices();
                 if (services != null) {
                     for (ServiceReference service : services) {
-                        if (service.getProperty(OSGI_JNDI_SERVICE_PROPERTY) != null && ((String) service.getProperty(OSGI_JNDI_SERVICE_PROPERTY)).equals(name.substring(OSGI_JNDI_CONTEXT_PREFIX.length()))) {
+                        if (service.getProperty(OSGI_JNDI_SERVICE_PROPERTY) != null && ((String) service.getProperty(OSGI_JNDI_SERVICE_PROPERTY)).equals(name.substring(OSGI_JNDI_CONTEXT_PREFIX.length() + 1))) {
                             Object actualService = bundleContext.getService(service);
                             try {
                                 if (proxyManager.isProxy(actualService)) {