Author: slaws
Date: Tue Apr 13 18:50:44 2010
New Revision: 933740

URL: http://svn.apache.org/viewvc?rev=933740&view=rev
Log:
TUSCANY-3533 - break the loop of CLMR through contribution to the components an 
the implementations themselves that are loaded by CLMR

Modified:
    
tuscany/sca-java-2.x/trunk/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/java/impl/ClassLoaderModelResolver.java

Modified: 
tuscany/sca-java-2.x/trunk/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/java/impl/ClassLoaderModelResolver.java
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/java/impl/ClassLoaderModelResolver.java?rev=933740&r1=933739&r2=933740&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/java/impl/ClassLoaderModelResolver.java
 (original)
+++ 
tuscany/sca-java-2.x/trunk/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/java/impl/ClassLoaderModelResolver.java
 Tue Apr 13 18:50:44 2010
@@ -20,6 +20,7 @@
 package org.apache.tuscany.sca.contribution.java.impl;
 
 import java.io.IOException;
+import java.lang.ref.WeakReference;
 import java.net.URL;
 import java.net.URLClassLoader;
 import java.util.ArrayList;
@@ -45,7 +46,7 @@ import org.apache.tuscany.sca.extensibil
  * @version $Rev$ $Date$
  */
 public class ClassLoaderModelResolver extends URLClassLoader implements 
ModelResolver {
-    private Contribution contribution;
+    private WeakReference<Contribution> contribution;
     private ProcessorContext context;
     private Map<String, ModelResolver> importResolvers = new HashMap<String, 
ModelResolver>();
 
@@ -70,10 +71,10 @@ public class ClassLoaderModelResolver ex
 
     public ClassLoaderModelResolver(final Contribution contribution, 
FactoryExtensionPoint modelFactories) throws IOException {
         super(getContributionURLs(contribution), 
parentClassLoader(contribution));
-        this.contribution = contribution;
+        this.contribution = new WeakReference<Contribution>(contribution);
         // Index Java import resolvers by package name
         Map<String, List<ModelResolver>> resolverMap = new HashMap<String, 
List<ModelResolver>>();
-        for (Import import_: this.contribution.getImports()) {
+        for (Import import_: this.contribution.get().getImports()) {
             if (import_ instanceof JavaImport) {
                 JavaImport javaImport = (JavaImport)import_;
                 List<ModelResolver> resolvers = 
resolverMap.get(javaImport.getPackage());


Reply via email to