Author: antelder
Date: Tue Jun 28 07:02:58 2011
New Revision: 1140455

URL: http://svn.apache.org/viewvc?rev=1140455&view=rev
Log:
Add some guards around setting the contribution classloader

Modified:
    
tuscany/sca-java-2.x/trunk/modules/domain-node/src/main/java/org/apache/tuscany/sca/impl/DeployedComposite.java

Modified: 
tuscany/sca-java-2.x/trunk/modules/domain-node/src/main/java/org/apache/tuscany/sca/impl/DeployedComposite.java
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/domain-node/src/main/java/org/apache/tuscany/sca/impl/DeployedComposite.java?rev=1140455&r1=1140454&r2=1140455&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/modules/domain-node/src/main/java/org/apache/tuscany/sca/impl/DeployedComposite.java
 (original)
+++ 
tuscany/sca-java-2.x/trunk/modules/domain-node/src/main/java/org/apache/tuscany/sca/impl/DeployedComposite.java
 Tue Jun 28 07:02:58 2011
@@ -36,6 +36,7 @@ import org.apache.tuscany.sca.contributi
 import 
org.apache.tuscany.sca.contribution.processor.ContributionResolveException;
 import org.apache.tuscany.sca.contribution.resolver.ClassReference;
 import org.apache.tuscany.sca.contribution.resolver.ExtensibleModelResolver;
+import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
 import org.apache.tuscany.sca.core.ExtensionPointRegistry;
 import org.apache.tuscany.sca.deployment.Deployer;
 import org.apache.tuscany.sca.monitor.Monitor;
@@ -106,8 +107,13 @@ public class DeployedComposite {
         builtComposite.setURI(composite.getURI());
         builtComposite.setContributionURI(composite.getContributionURI());
         
-        if (contribution.getClassLoader() == null) {
-            
contribution.setClassLoader((ClassLoader)((ExtensibleModelResolver)contribution.getModelResolver()).getModelResolverInstance(ClassReference.class));
        
+        // attempt to ensure the contribution classloader is set
+        // TODO: ideally the runtime would do this itself
+        if (contribution.getClassLoader() == null && 
contribution.getModelResolver() instanceof ExtensibleModelResolver) {
+            ModelResolver o = 
((ExtensibleModelResolver)contribution.getModelResolver()).getModelResolverInstance(ClassReference.class);
+            if (o instanceof ClassLoader) {
+                contribution.setClassLoader((ClassLoader)o);        
+            }
         }
 
         compositeContext = new CompositeContext(extensionPointRegistry, 


Reply via email to