diff options
author | antelder <antelder@13f79535-47bb-0310-9956-ffa450edef68> | 2010-07-03 06:30:18 +0000 |
---|---|---|
committer | antelder <antelder@13f79535-47bb-0310-9956-ffa450edef68> | 2010-07-03 06:30:18 +0000 |
commit | 355268626d0493523956137113a8e61dcf615e46 (patch) | |
tree | 9b7bb71b6303bf3b22853fdbe2121f58c8524203 /sca-java-2.x/trunk/modules/domain-node/src/main/java/org/apache/tuscany/sca/node2/impl/NodeImpl.java | |
parent | efe9a1562dcad578b80c02a628c045c9febd01f2 (diff) |
Clean up factory instantiation, add a static helper to create simple nodes, and update impl to correctly resolve dependencies for installed contributions
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@960160 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'sca-java-2.x/trunk/modules/domain-node/src/main/java/org/apache/tuscany/sca/node2/impl/NodeImpl.java')
-rw-r--r-- | sca-java-2.x/trunk/modules/domain-node/src/main/java/org/apache/tuscany/sca/node2/impl/NodeImpl.java | 73 |
1 files changed, 42 insertions, 31 deletions
diff --git a/sca-java-2.x/trunk/modules/domain-node/src/main/java/org/apache/tuscany/sca/node2/impl/NodeImpl.java b/sca-java-2.x/trunk/modules/domain-node/src/main/java/org/apache/tuscany/sca/node2/impl/NodeImpl.java index a52770860d..b59d7b5555 100644 --- a/sca-java-2.x/trunk/modules/domain-node/src/main/java/org/apache/tuscany/sca/node2/impl/NodeImpl.java +++ b/sca-java-2.x/trunk/modules/domain-node/src/main/java/org/apache/tuscany/sca/node2/impl/NodeImpl.java @@ -31,7 +31,6 @@ import java.util.Set; import javax.xml.namespace.QName; import javax.xml.stream.XMLStreamException; -import org.apache.tuscany.sca.assembly.AssemblyFactory; import org.apache.tuscany.sca.assembly.Composite; import org.apache.tuscany.sca.common.java.io.IOHelper; import org.apache.tuscany.sca.contribution.Artifact; @@ -39,11 +38,11 @@ import org.apache.tuscany.sca.contribution.Contribution; import org.apache.tuscany.sca.contribution.ContributionMetadata; import org.apache.tuscany.sca.contribution.processor.ContributionReadException; import org.apache.tuscany.sca.core.ExtensionPointRegistry; -import org.apache.tuscany.sca.core.FactoryExtensionPoint; import org.apache.tuscany.sca.deployment.Deployer; import org.apache.tuscany.sca.monitor.Monitor; import org.apache.tuscany.sca.monitor.ValidationException; import org.apache.tuscany.sca.node2.Node; +import org.apache.tuscany.sca.node2.NodeFactory; import org.apache.tuscany.sca.runtime.ActivationException; import org.apache.tuscany.sca.runtime.CompositeActivator; import org.apache.tuscany.sca.runtime.EndpointRegistry; @@ -59,13 +58,15 @@ public class NodeImpl implements Node { private CompositeActivator compositeActivator; private EndpointRegistry endpointRegistry; private ExtensionPointRegistry extensionPointRegistry; + private NodeFactory nodeFactory; - public NodeImpl(String domainName, Deployer deployer, CompositeActivator compositeActivator, EndpointRegistry endpointRegistry, ExtensionPointRegistry extensionPointRegistry) { + public NodeImpl(String domainName, Deployer deployer, CompositeActivator compositeActivator, EndpointRegistry endpointRegistry, ExtensionPointRegistry extensionPointRegistry, NodeFactory nodeFactory) { this.domainName = domainName; this.deployer = deployer; this.compositeActivator = compositeActivator; this.endpointRegistry = endpointRegistry; this.extensionPointRegistry = extensionPointRegistry; + this.nodeFactory = nodeFactory; } public String installContribution(String contributionURL) throws ContributionReadException, ActivationException, ValidationException { @@ -112,7 +113,38 @@ public class NodeImpl implements Node { for (Composite c : ic.getDefaultDeployables()) { runComposite(c, ic); } + } else { + contribution.getDeployables().clear(); + + List<Contribution> dependentContributions = calculateDependentContributions(ic); + + Monitor monitor = deployer.createMonitor(); + try { + deployer.resolve(contribution, dependentContributions, monitor); + } catch (Exception e) { + throw new RuntimeException(e); + } + monitor.analyzeProblems(); + } + } + + protected List<Contribution> calculateDependentContributions(InstalledContribution ic) { + List<Contribution> dependentContributions = new ArrayList<Contribution>(); + if (ic.getDependentContributionURIs() != null) { + // if the install specified dependent uris use just those contributions + for (String uri : ic.getDependentContributionURIs()) { + InstalledContribution dependee = installedContributions.get(uri); + if (dependee != null) { + dependentContributions.add(dependee.getContribution()); + } + } + } else { + // otherwise use all available contributions for dependents + for (InstalledContribution ics : installedContributions.values()) { + dependentContributions.add(ics.getContribution()); + } } + return dependentContributions; } public String addDeploymentComposite(String contributionURI, Reader compositeXML) throws ContributionReadException, XMLStreamException, ActivationException, ValidationException { @@ -122,7 +154,7 @@ public class NodeImpl implements Node { return addDeploymentComposite(contributionURI, composite); } - public String addDeploymentComposite(String contributionURI, Composite composite) throws ActivationException { + public String addDeploymentComposite(String contributionURI, Composite composite) throws ActivationException, ValidationException { InstalledContribution ic = installedContributions.get(contributionURI); if (ic == null) { throw new IllegalArgumentException("contribution not installed: " + contributionURI); @@ -132,7 +164,7 @@ public class NodeImpl implements Node { return compositeArtifcatURI; } - public void addToDomainLevelComposite(String compositeURI) throws ActivationException { + public void addToDomainLevelComposite(String compositeURI) throws ActivationException, ValidationException { String contributionURI = getContributionUriForArtifact(compositeURI); InstalledContribution ic = installedContributions.get(contributionURI); if (ic == null) { @@ -222,6 +254,9 @@ public class NodeImpl implements Node { e.printStackTrace(); } } + if (nodeFactory != null) { + nodeFactory.stop(); + } } public <T> T getService(Class<T> interfaze, String serviceURI) throws NoSuchServiceException { @@ -272,22 +307,8 @@ public class NodeImpl implements Node { return contributionURI; } - protected void runComposite(Composite c, InstalledContribution ic) throws ActivationException { - List<Contribution> dependentContributions = new ArrayList<Contribution>(); - if (ic.getDependentContributionURIs() != null) { - // if the install specified dependent uris use just those contributions - for (String uri : ic.getDependentContributionURIs()) { - InstalledContribution dependee = installedContributions.get(uri); - if (dependee != null) { - dependentContributions.add(dependee.getContribution()); - } - } - } else { - // otherwise use all available contributions for dependents - for (InstalledContribution ics : installedContributions.values()) { - dependentContributions.add(ics.getContribution()); - } - } + protected void runComposite(Composite c, InstalledContribution ic) throws ActivationException, ValidationException { + List<Contribution> dependentContributions = calculateDependentContributions(ic); DeployedComposite dc = new DeployedComposite(c, ic, dependentContributions, deployer, compositeActivator, endpointRegistry, extensionPointRegistry); ic.getDeployedComposites().add(dc); @@ -309,14 +330,4 @@ public class NodeImpl implements Node { } return dependentContributionURIs; } - - public Deployer getDeployer() { - return deployer; - } - - public AssemblyFactory getAssemblyFactory() { - FactoryExtensionPoint factories = extensionPointRegistry.getExtensionPoint(FactoryExtensionPoint.class); - return factories.getFactory(AssemblyFactory.class); - } - } |