You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by sl...@apache.org on 2010/04/13 20:50:45 UTC
svn commit: r933740 -
/tuscany/sca-java-2.x/trunk/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/java/impl/ClassLoaderModelResolver.java
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());