From 0c1527f0415fb7d6c06b0ad2a1d4ce73cd728852 Mon Sep 17 00:00:00 2001 From: rfeng Date: Wed, 27 Jan 2010 04:33:47 +0000 Subject: Fix multiple concurrency related issues git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@903542 13f79535-47bb-0310-9956-ffa450edef68 --- .../apache/tuscany/sca/deployment/impl/DeployerImpl.java | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) (limited to 'sca-java-2.x/trunk/modules/deployment/src/main') diff --git a/sca-java-2.x/trunk/modules/deployment/src/main/java/org/apache/tuscany/sca/deployment/impl/DeployerImpl.java b/sca-java-2.x/trunk/modules/deployment/src/main/java/org/apache/tuscany/sca/deployment/impl/DeployerImpl.java index e4340102fc..f65371ac5f 100644 --- a/sca-java-2.x/trunk/modules/deployment/src/main/java/org/apache/tuscany/sca/deployment/impl/DeployerImpl.java +++ b/sca-java-2.x/trunk/modules/deployment/src/main/java/org/apache/tuscany/sca/deployment/impl/DeployerImpl.java @@ -301,18 +301,20 @@ public class DeployerImpl implements Deployer { compositeBuilder = compositeBuilders.getCompositeBuilder("org.apache.tuscany.sca.assembly.builder.CompositeBuilder"); - loadSystemContribution(monitorFactory.createMonitor()); + loadSystemContribution(new ProcessorContext(monitorFactory.createMonitor())); inited = true; } - protected void loadSystemContribution(Monitor monitor) { + protected void loadSystemContribution(ProcessorContext context) { DefinitionsFactory definitionsFactory = modelFactories.getFactory(DefinitionsFactory.class); systemDefinitions = definitionsFactory.createDefinitions(); DefinitionsExtensionPoint definitionsExtensionPoint = registry.getExtensionPoint(DefinitionsExtensionPoint.class); + + Monitor monitor = context.getMonitor(); monitor.pushContext("Extension points definitions"); try { for (Definitions defs : definitionsExtensionPoint.getDefinitions()) { @@ -339,6 +341,13 @@ public class DeployerImpl implements Deployer { artifact.setLocation("Derived"); artifact.setModel(systemDefinitions); artifacts.add(artifact); + + // now resolve and add the system contribution + try { + contributionProcessor.resolve(systemContribution, modelResolver, context); + } catch (ContributionResolveException e) { + throw new IllegalStateException(e); + } } protected Contribution cloneSystemContribution(Monitor monitor) { -- cgit v1.2.3