summaryrefslogtreecommitdiffstats
path: root/sca-java-2.x/trunk/modules/extensibility/src/main/java
diff options
context:
space:
mode:
authorrfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68>2010-02-26 22:09:55 +0000
committerrfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68>2010-02-26 22:09:55 +0000
commit8c8aca83d8a89b2a76b53b4c3398efe1406a1870 (patch)
tree7ddd39fe17e05fc0eb9bdfaec0dcb8d62004033f /sca-java-2.x/trunk/modules/extensibility/src/main/java
parent736d9f948449d956568d122224278acd1af9b19e (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')
-rw-r--r--sca-java-2.x/trunk/modules/extensibility/src/main/java/org/apache/tuscany/sca/core/DefaultExtensionPointRegistry.java2
-rw-r--r--sca-java-2.x/trunk/modules/extensibility/src/main/java/org/apache/tuscany/sca/extensibility/ContextClassLoaderServiceDiscoverer.java16
-rw-r--r--sca-java-2.x/trunk/modules/extensibility/src/main/java/org/apache/tuscany/sca/extensibility/ServiceDiscovery.java2
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;
}