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)) {