From 8c8aca83d8a89b2a76b53b4c3398efe1406a1870 Mon Sep 17 00:00:00 2001 From: rfeng Date: Fri, 26 Feb 2010 22:09:55 +0000 Subject: 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 --- .../tuscany/sca/core/DefaultExtensionPointRegistry.java | 2 +- .../ContextClassLoaderServiceDiscoverer.java | 16 ++++++++++++---- .../tuscany/sca/extensibility/ServiceDiscovery.java | 2 +- 3 files changed, 14 insertions(+), 6 deletions(-) (limited to 'sca-java-2.x/trunk/modules/extensibility/src/main/java') 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); } + public ContextClassLoaderServiceDiscoverer(ClassLoader classLoader) { + if (classLoader == null) { + classLoader = Thread.currentThread().getContextClassLoader(); + } + this.classLoaderReference = new WeakReference(classLoader); + } + public ClassLoader getContextClassLoader() { //return classLoaderReference.get(); return Thread.currentThread().getContextClassLoader(); } - private List getResources(final String name) throws IOException { + private Collection getResources(final String name) throws IOException { try { - return AccessController.doPrivileged(new PrivilegedExceptionAction>() { - public List run() throws IOException { + return AccessController.doPrivileged(new PrivilegedExceptionAction>() { + public Collection run() throws IOException { List urls = Collections.list(classLoaderReference.get().getResources(name)); - return urls; + // Eliminate the duplicate URLs (which can be found from child/parent classloaders) + return new HashSet(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; } -- cgit v1.2.3