diff options
author | rfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68> | 2009-10-16 05:42:26 +0000 |
---|---|---|
committer | rfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68> | 2009-10-16 05:42:26 +0000 |
commit | 4ae4002366ded3f4b19cd96f403d8b418fcf00a1 (patch) | |
tree | 9179891f11c9add734a777713cabf7e39a980908 /java/sca/modules/contribution-osgi | |
parent | d4cc9a0bdd43477858b8ac67b69a4cdd615ec741 (diff) |
This is to change the Monitor to be request scoped for most of the cases:
Refactor the ArtifactProcessor/ModelResolver to take a ProcessorContext that holds context such as Monitor, Contribution for the contribution/artifact processing methods
Refactor the Builder to take a BuilderContext that holds context such as Monitor, Definitions, Base binding mapping for the building methods
Change the processor/resolver/builder implementation classes to not cache the Monitor
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@825773 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java/sca/modules/contribution-osgi')
2 files changed, 14 insertions, 13 deletions
diff --git a/java/sca/modules/contribution-osgi/src/main/java/org/apache/tuscany/sca/contribution/osgi/impl/OSGiBundleReferenceModelResolver.java b/java/sca/modules/contribution-osgi/src/main/java/org/apache/tuscany/sca/contribution/osgi/impl/OSGiBundleReferenceModelResolver.java index 173ac0832d..7958eb4b6d 100644 --- a/java/sca/modules/contribution-osgi/src/main/java/org/apache/tuscany/sca/contribution/osgi/impl/OSGiBundleReferenceModelResolver.java +++ b/java/sca/modules/contribution-osgi/src/main/java/org/apache/tuscany/sca/contribution/osgi/impl/OSGiBundleReferenceModelResolver.java @@ -25,9 +25,9 @@ import java.util.Map; import org.apache.tuscany.sca.contribution.Contribution; import org.apache.tuscany.sca.contribution.Import; import org.apache.tuscany.sca.contribution.osgi.BundleReference; +import org.apache.tuscany.sca.contribution.processor.ProcessorContext; import org.apache.tuscany.sca.contribution.resolver.ModelResolver; import org.apache.tuscany.sca.core.FactoryExtensionPoint; -import org.apache.tuscany.sca.monitor.Monitor; import org.osgi.framework.Bundle; /** @@ -41,32 +41,33 @@ public class OSGiBundleReferenceModelResolver implements ModelResolver { private OSGiBundleProcessor bundleProcessor; - public OSGiBundleReferenceModelResolver(Contribution contribution, FactoryExtensionPoint modelFactories, Monitor monitor) { + public OSGiBundleReferenceModelResolver(Contribution contribution, FactoryExtensionPoint modelFactories) { this.contribution = contribution; this.bundleProcessor = new OSGiBundleProcessor(); } - public void addModel(Object resolved) { + public void addModel(Object resolved, ProcessorContext context) { BundleReference bundleRef = (BundleReference)resolved; refs.put(bundleRef, bundleRef); } - public Object removeModel(Object resolved) { + public Object removeModel(Object resolved, ProcessorContext context) { return refs.remove(resolved); } /** * Handle artifact resolution when the specific class reference is imported from another contribution * @param unresolved + * @param context * @return */ - private BundleReference resolveImportedModel(BundleReference unresolved) { + private BundleReference resolveImportedModel(BundleReference unresolved, ProcessorContext context) { BundleReference resolved = unresolved; if (this.contribution != null) { for (Import import_ : this.contribution.getImports()) { - resolved = import_.getModelResolver().resolveModel(BundleReference.class, unresolved); + resolved = import_.getModelResolver().resolveModel(BundleReference.class, unresolved, context); if (resolved != unresolved) break; } @@ -75,7 +76,7 @@ public class OSGiBundleReferenceModelResolver implements ModelResolver { return resolved; } - public <T> T resolveModel(Class<T> modelClass, T unresolved) { + public <T> T resolveModel(Class<T> modelClass, T unresolved, ProcessorContext context) { Object resolved = refs.get(unresolved); if (resolved != null) { @@ -108,7 +109,7 @@ public class OSGiBundleReferenceModelResolver implements ModelResolver { return modelClass.cast(bundleReference); } else { //delegate resolution of the class - resolved = this.resolveImportedModel((BundleReference)unresolved); + resolved = this.resolveImportedModel((BundleReference)unresolved, context); return modelClass.cast(resolved); } diff --git a/java/sca/modules/contribution-osgi/src/main/java/org/apache/tuscany/sca/contribution/osgi/impl/OSGiClassReferenceModelResolver.java b/java/sca/modules/contribution-osgi/src/main/java/org/apache/tuscany/sca/contribution/osgi/impl/OSGiClassReferenceModelResolver.java index c3d79b5595..3963968940 100644 --- a/java/sca/modules/contribution-osgi/src/main/java/org/apache/tuscany/sca/contribution/osgi/impl/OSGiClassReferenceModelResolver.java +++ b/java/sca/modules/contribution-osgi/src/main/java/org/apache/tuscany/sca/contribution/osgi/impl/OSGiClassReferenceModelResolver.java @@ -20,10 +20,10 @@ package org.apache.tuscany.sca.contribution.osgi.impl; import org.apache.tuscany.sca.contribution.Contribution; +import org.apache.tuscany.sca.contribution.processor.ProcessorContext; import org.apache.tuscany.sca.contribution.resolver.ClassReference; import org.apache.tuscany.sca.contribution.resolver.ModelResolver; import org.apache.tuscany.sca.core.FactoryExtensionPoint; -import org.apache.tuscany.sca.monitor.Monitor; import org.osgi.framework.Bundle; /** @@ -35,19 +35,19 @@ public class OSGiClassReferenceModelResolver implements ModelResolver { // private Contribution contribution; private Bundle bundle; - public OSGiClassReferenceModelResolver(Contribution contribution, FactoryExtensionPoint modelFactories, Monitor monitor) { + public OSGiClassReferenceModelResolver(Contribution contribution, FactoryExtensionPoint modelFactories) { // this.contribution = contribution; this.bundle = OSGiBundleActivator.findBundle(contribution.getLocation()); } - public void addModel(Object resolved) { + public void addModel(Object resolved, ProcessorContext context) { } - public Object removeModel(Object resolved) { + public Object removeModel(Object resolved, ProcessorContext context) { return resolved; } - public <T> T resolveModel(Class<T> modelClass, T unresolved) { + public <T> T resolveModel(Class<T> modelClass, T unresolved, ProcessorContext context) { //Load a class on demand Class<?> clazz = null; if (bundle != null) { |