You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by an...@apache.org on 2009/05/25 10:09:49 UTC

svn commit: r778343 - /tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/java/impl/ClassLoaderModelResolver.java

Author: antelder
Date: Mon May 25 08:09:48 2009
New Revision: 778343

URL: http://svn.apache.org/viewvc?rev=778343&view=rev
Log:
Update ClassLoaderModelResolver to use the thread context classloader as the parent if its available and its not Equinox, so it works when Tuscany jars are outside of the application

Modified:
    tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/java/impl/ClassLoaderModelResolver.java

Modified: tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/java/impl/ClassLoaderModelResolver.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/java/impl/ClassLoaderModelResolver.java?rev=778343&r1=778342&r2=778343&view=diff
==============================================================================
--- tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/java/impl/ClassLoaderModelResolver.java (original)
+++ tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/java/impl/ClassLoaderModelResolver.java Mon May 25 08:09:48 2009
@@ -48,7 +48,18 @@
     private Map<String, ModelResolver> importResolvers = new HashMap<String, ModelResolver>();
     
     private static ClassLoader parentClassLoader() {
-        ClassLoader parentClassLoader = ServiceDiscovery.getInstance().getServiceDiscoverer().getClass().getClassLoader();
+        ClassLoader parentClassLoader = null;
+
+        // FIXME: Need a better way to not use the ThreadContextClassLoader when running in Equinox
+        if (Thread.currentThread().getContextClassLoader() != null) {
+            if (!"org.apache.tuscany.sca.extensibility.equinox.EquinoxServiceDiscoverer".equals(ServiceDiscovery.getInstance().getServiceDiscoverer().getClass().getName())) {
+                parentClassLoader = Thread.currentThread().getContextClassLoader();
+            }
+        }
+        if (parentClassLoader == null) {
+            parentClassLoader = ServiceDiscovery.getInstance().getServiceDiscoverer().getClass().getClassLoader();
+        }
+
         return parentClassLoader;
     }