diff options
author | rfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68> | 2010-02-26 22:09:55 +0000 |
---|---|---|
committer | rfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68> | 2010-02-26 22:09:55 +0000 |
commit | 8c8aca83d8a89b2a76b53b4c3398efe1406a1870 (patch) | |
tree | 7ddd39fe17e05fc0eb9bdfaec0dcb8d62004033f /sca-java-2.x/trunk/modules/extensibility/src/main/java | |
parent | 736d9f948449d956568d122224278acd1af9b19e (diff) |
Add a test for remote invocations between nodes created from two different node factories
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@916838 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'sca-java-2.x/trunk/modules/extensibility/src/main/java')
3 files changed, 14 insertions, 6 deletions
diff --git a/sca-java-2.x/trunk/modules/extensibility/src/main/java/org/apache/tuscany/sca/core/DefaultExtensionPointRegistry.java b/sca-java-2.x/trunk/modules/extensibility/src/main/java/org/apache/tuscany/sca/core/DefaultExtensionPointRegistry.java index 3ffe893553..57ef069e4f 100644 --- a/sca-java-2.x/trunk/modules/extensibility/src/main/java/org/apache/tuscany/sca/core/DefaultExtensionPointRegistry.java +++ b/sca-java-2.x/trunk/modules/extensibility/src/main/java/org/apache/tuscany/sca/core/DefaultExtensionPointRegistry.java @@ -50,7 +50,7 @@ public class DefaultExtensionPointRegistry implements ExtensionPointRegistry { this.discovery = ServiceDiscovery.getInstance(); } - protected DefaultExtensionPointRegistry(ServiceDiscovery discovery) { + public DefaultExtensionPointRegistry(ServiceDiscovery discovery) { this.discovery = discovery; } diff --git a/sca-java-2.x/trunk/modules/extensibility/src/main/java/org/apache/tuscany/sca/extensibility/ContextClassLoaderServiceDiscoverer.java b/sca-java-2.x/trunk/modules/extensibility/src/main/java/org/apache/tuscany/sca/extensibility/ContextClassLoaderServiceDiscoverer.java index 4e997f4f8b..eec4ff1734 100644 --- a/sca-java-2.x/trunk/modules/extensibility/src/main/java/org/apache/tuscany/sca/extensibility/ContextClassLoaderServiceDiscoverer.java +++ b/sca-java-2.x/trunk/modules/extensibility/src/main/java/org/apache/tuscany/sca/extensibility/ContextClassLoaderServiceDiscoverer.java @@ -115,17 +115,25 @@ public class ContextClassLoaderServiceDiscoverer implements ServiceDiscoverer { this.classLoaderReference = new WeakReference<ClassLoader>(classLoader); } + public ContextClassLoaderServiceDiscoverer(ClassLoader classLoader) { + if (classLoader == null) { + classLoader = Thread.currentThread().getContextClassLoader(); + } + this.classLoaderReference = new WeakReference<ClassLoader>(classLoader); + } + public ClassLoader getContextClassLoader() { //return classLoaderReference.get(); return Thread.currentThread().getContextClassLoader(); } - private List<URL> getResources(final String name) throws IOException { + private Collection<URL> getResources(final String name) throws IOException { try { - return AccessController.doPrivileged(new PrivilegedExceptionAction<List<URL>>() { - public List<URL> run() throws IOException { + return AccessController.doPrivileged(new PrivilegedExceptionAction<Collection<URL>>() { + public Collection<URL> run() throws IOException { List<URL> urls = Collections.list(classLoaderReference.get().getResources(name)); - return urls; + // Eliminate the duplicate URLs (which can be found from child/parent classloaders) + return new HashSet<URL>(urls); } }); } catch (PrivilegedActionException e) { diff --git a/sca-java-2.x/trunk/modules/extensibility/src/main/java/org/apache/tuscany/sca/extensibility/ServiceDiscovery.java b/sca-java-2.x/trunk/modules/extensibility/src/main/java/org/apache/tuscany/sca/extensibility/ServiceDiscovery.java index 00a037b4ed..204d17195b 100644 --- a/sca-java-2.x/trunk/modules/extensibility/src/main/java/org/apache/tuscany/sca/extensibility/ServiceDiscovery.java +++ b/sca-java-2.x/trunk/modules/extensibility/src/main/java/org/apache/tuscany/sca/extensibility/ServiceDiscovery.java @@ -83,7 +83,7 @@ public final class ServiceDiscovery implements ServiceDiscoverer { } } catch (Throwable e) { } - discoverer = new ContextClassLoaderServiceDiscoverer(); + discoverer = new ContextClassLoaderServiceDiscoverer(getClass().getClassLoader()); return discoverer; } |