summaryrefslogtreecommitdiffstats
path: root/sca-java-2.x/contrib/modules/section10/src/main/java/org/apache/tuscany/sca/something/impl/Section10Impl.java
diff options
context:
space:
mode:
Diffstat (limited to 'sca-java-2.x/contrib/modules/section10/src/main/java/org/apache/tuscany/sca/something/impl/Section10Impl.java')
-rw-r--r--sca-java-2.x/contrib/modules/section10/src/main/java/org/apache/tuscany/sca/something/impl/Section10Impl.java172
1 files changed, 43 insertions, 129 deletions
diff --git a/sca-java-2.x/contrib/modules/section10/src/main/java/org/apache/tuscany/sca/something/impl/Section10Impl.java b/sca-java-2.x/contrib/modules/section10/src/main/java/org/apache/tuscany/sca/something/impl/Section10Impl.java
index 4130af2a94..608a131505 100644
--- a/sca-java-2.x/contrib/modules/section10/src/main/java/org/apache/tuscany/sca/something/impl/Section10Impl.java
+++ b/sca-java-2.x/contrib/modules/section10/src/main/java/org/apache/tuscany/sca/something/impl/Section10Impl.java
@@ -19,7 +19,6 @@
package org.apache.tuscany.sca.something.impl;
-import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.Reader;
import java.net.MalformedURLException;
@@ -32,33 +31,19 @@ import java.util.Map;
import java.util.Properties;
import javax.xml.namespace.QName;
-import javax.xml.stream.XMLOutputFactory;
-import org.apache.tuscany.sca.assembly.Component;
import org.apache.tuscany.sca.assembly.Composite;
import org.apache.tuscany.sca.common.java.io.IOHelper;
-import org.apache.tuscany.sca.context.CompositeContext;
import org.apache.tuscany.sca.contribution.Artifact;
import org.apache.tuscany.sca.contribution.Contribution;
import org.apache.tuscany.sca.contribution.processor.ContributionReadException;
-import org.apache.tuscany.sca.contribution.processor.ProcessorContext;
-import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor;
-import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessorExtensionPoint;
-import org.apache.tuscany.sca.core.ExtensionPointRegistry;
-import org.apache.tuscany.sca.core.FactoryExtensionPoint;
-import org.apache.tuscany.sca.core.UtilityExtensionPoint;
import org.apache.tuscany.sca.deployment.Deployer;
import org.apache.tuscany.sca.monitor.Monitor;
-import org.apache.tuscany.sca.monitor.MonitorFactory;
import org.apache.tuscany.sca.monitor.Problem;
import org.apache.tuscany.sca.monitor.Problem.Severity;
import org.apache.tuscany.sca.node.NodeFactory;
-import org.apache.tuscany.sca.node.configuration.NodeConfiguration;
import org.apache.tuscany.sca.node.impl.NodeFactoryImpl;
-import org.apache.tuscany.sca.runtime.CompositeActivator;
-import org.apache.tuscany.sca.runtime.DomainRegistryFactory;
-import org.apache.tuscany.sca.runtime.EndpointRegistry;
-import org.apache.tuscany.sca.runtime.ExtensibleDomainRegistryFactory;
+import org.apache.tuscany.sca.runtime.ActivationException;
import org.apache.tuscany.sca.something.Section10;
import org.oasisopen.sca.NoSuchDomainException;
import org.oasisopen.sca.NoSuchServiceException;
@@ -75,25 +60,25 @@ public class Section10Impl implements Section10 {
((NodeFactoryImpl)nodeFactory).start();
}
- public String installContribution(String contributionURL) throws ContributionReadException, MalformedURLException {
+ public String installContribution(String contributionURL) throws ContributionReadException, ActivationException {
installContribution(contributionURL, contributionURL, null, true);
return contributionURL;
}
- public String installContribution(String contributionURL, boolean autoDeploy) throws ContributionReadException, MalformedURLException {
+ public String installContribution(String contributionURL, boolean autoDeploy) throws ContributionReadException, ActivationException {
installContribution(contributionURL, contributionURL, null, autoDeploy);
return contributionURL;
}
- public void installContribution(String uri, String contributionURL) throws ContributionReadException, MalformedURLException {
+ public void installContribution(String uri, String contributionURL) throws ContributionReadException, ActivationException {
installContribution(uri, contributionURL, null, true);
}
- public void installContribution(String uri, String contributionURL, List<String> dependentContributionURIs) throws ContributionReadException, MalformedURLException {
+ public void installContribution(String uri, String contributionURL, List<String> dependentContributionURIs) throws ContributionReadException, ActivationException {
installContribution(uri, contributionURL, dependentContributionURIs, true);
}
- public void installContribution(String uri, String contributionURL, List<String> dependentContributionURIs, boolean autoDeploy) throws ContributionReadException, MalformedURLException {
+ public void installContribution(String uri, String contributionURL, List<String> dependentContributionURIs, boolean autoDeploy) throws ContributionReadException, ActivationException {
Deployer deployer = nodeFactory.getDeployer();
Monitor monitor = deployer.createMonitor();
URL url = getLocationAsURL(contributionURL);
@@ -102,12 +87,7 @@ public class Section10Impl implements Section10 {
installedContributions.put(uri, ic);
if (autoDeploy) {
for (Composite c : contribution.getDeployables()) {
- try {
- deployComposite(c, ic);
- } catch (Throwable e) {
- // TODO tidy up the exceptions
- throw new RuntimeException(e);
- }
+ deployComposite(c, ic);
}
}
}
@@ -122,7 +102,7 @@ public class Section10Impl implements Section10 {
return null;
}
- public void addToDomainLevelComposite(String compositeURI) {
+ public void addToDomainLevelComposite(String compositeURI) throws ActivationException {
String contributionURI = getContributionUriForArtifact(compositeURI);
InstalledContribution ic = installedContributions.get(contributionURI);
if (ic == null) {
@@ -132,25 +112,22 @@ public class Section10Impl implements Section10 {
for (Artifact a : ic.getContribution().getArtifacts()) {
if (a.getURI().equals(relativeURI)) {
Composite c = (Composite) a.getModel();
- try {
- deployComposite(c, ic);
- } catch (Throwable e) {
- // TODO tidy up the exceptions
- throw new RuntimeException(e);
- }
+ deployComposite(c, ic);
return;
}
}
throw new IllegalArgumentException("composite not found: " + compositeURI);
}
- public void removeFromDomainLevelComposite(String compositeURI) {
+ public void removeFromDomainLevelComposite(String compositeURI) throws ActivationException {
String contributionURI = getContributionUriForArtifact(compositeURI);
InstalledContribution ic = installedContributions.get(contributionURI);
String relativeURI = compositeURI.substring(contributionURI.length()+1);
- for (Composite c : ic.getDeployedComposites()) {
- if (relativeURI.equals(c.getURI())) {
- undeployComposite(c, ic);
+ for (DeployedComposite dc : ic.getDeployedComposites()) {
+ if (relativeURI.equals(dc.getURI())) {
+// undeployComposite(dc, ic);
+ ic.getDeployedComposites().remove(dc);
+ dc.unDeploy();
return;
}
}
@@ -163,9 +140,8 @@ public class Section10Impl implements Section10 {
}
public String getDomainLevelCompositeAsString() {
- StAXArtifactProcessorExtensionPoint xmlProcessors = getExtensionRegistry().getExtensionPoint(StAXArtifactProcessorExtensionPoint.class);
- StAXArtifactProcessor<Composite> compositeProcessor = xmlProcessors.getProcessor(Composite.class);
- return writeComposite(getDomainLevelComposite(), compositeProcessor);
+ // TODO Auto-generated method stub
+ return null;
}
public Object getQNameDefinition(String contributionURI, QName definition, QName symbolSpace) {
@@ -173,15 +149,17 @@ public class Section10Impl implements Section10 {
return null;
}
- public void removeContribution(String contributionURI) {
+ public void removeContribution(String contributionURI) throws ActivationException {
// TODO: what about dependent contributions
InstalledContribution ic = installedContributions.remove(contributionURI);
if (ic == null) {
throw new IllegalArgumentException("Contribution not installed: " + contributionURI);
}
- for (Composite c : ic.getDeployedComposites()) {
- undeployComposite(c, ic);
+ for (DeployedComposite dc : ic.getDeployedComposites()) {
+// undeployComposite(dc, ic);
+ dc.unDeploy();
}
+ ic.getDeployedComposites().clear();
}
public void updateContribution(String uri, String contributionURL) {
@@ -220,13 +198,17 @@ public class Section10Impl implements Section10 {
}
public List<String> getDeployedCompostes(String contributionURI) {
- // TODO Auto-generated method stub
- return null;
+ ArrayList<String> compositeURIs = new ArrayList<String>();
+ for (InstalledContribution ic : installedContributions.values()) {
+ for (DeployedComposite dc : ic.getDeployedComposites()) {
+ compositeURIs.add(ic.getURI() + "/" + dc.getURI());
+ }
+ }
+ return compositeURIs;
}
- public List<String> getInstalledContributions(String contributionURI) {
- // TODO Auto-generated method stub
- return null;
+ public List<String> getInstalledContributions() {
+ return new ArrayList<String>(installedContributions.keySet());
}
protected String getContributionUriForArtifact(String artifactURI) {
@@ -243,95 +225,27 @@ public class Section10Impl implements Section10 {
return contributionURI;
}
- protected void deployComposite(Composite c, InstalledContribution ic) throws Throwable {
- // TODO Auto-generated method stub
-
- UtilityExtensionPoint utilities = getExtensionRegistry().getExtensionPoint(UtilityExtensionPoint.class);
- CompositeActivator compositeActivator = utilities.getUtility(CompositeActivator.class);
- MonitorFactory monitorFactory = utilities.getUtility(MonitorFactory.class);
-
- DomainRegistryFactory domainRegistryFactory = ExtensibleDomainRegistryFactory.getInstance(getExtensionRegistry());
- EndpointRegistry endpointRegistry = domainRegistryFactory.getEndpointRegistry("default", getDomainName());
-
- Monitor monitor = monitorFactory.createMonitor();
- ProcessorContext context = new ProcessorContext(monitor);
-
- Composite domainComposite;
- CompositeContext compositeContext;
- Monitor tcm = monitorFactory.setContextMonitor(monitor);
- try {
-
- NodeConfiguration configuration;
- List<Contribution> allContributions = new ArrayList<Contribution>();
- for (InstalledContribution ics : installedContributions.values()) {
- allContributions.add(ics.getContribution());
- }
-
- List<Contribution> contributions = new ArrayList<Contribution>();
- contributions.add(ic.getContribution());
- contributions.get(0).getDeployables().clear();
- contributions.get(0).getDeployables().add(c);
- domainComposite = nodeFactory.getDeployer().build(contributions, allContributions, new HashMap<QName, List<String>>(), monitor);
- analyzeProblems(monitor);
+ protected void deployComposite(Composite c, InstalledContribution ic) throws ActivationException {
- compositeContext = new CompositeContext(getExtensionRegistry(),
- endpointRegistry,
- domainComposite,
- getDomainName(),
- "whatIsThisURIfor",
- nodeFactory.getDeployer().getSystemDefinitions());
-
- CompositeContext.setThreadCompositeContext(compositeContext);
- } finally {
- monitorFactory.setContextMonitor(tcm);
+ List<Contribution> dependentContributions = new ArrayList<Contribution>();
+ for (InstalledContribution ics : installedContributions.values()) {
+ dependentContributions.add(ics.getContribution());
}
-
- compositeActivator.activate(compositeContext, domainComposite);
- compositeActivator.start(compositeContext, domainComposite);
-
- ic.getDeployedComposites().add(c);
- }
-
- protected void undeployComposite(Composite c, InstalledContribution ic) {
- ic.getDeployedComposites().remove(c);
- // TODO Auto-generated method stub
- }
-
- protected ExtensionPointRegistry getExtensionRegistry() {
- ExtensionPointRegistry reg = nodeFactory.getExtensionPointRegistry();
- return reg;
- }
- protected String writeComposite(Composite composite, StAXArtifactProcessor<Composite> compositeProcessor){
- XMLOutputFactory outputFactory = getExtensionRegistry().getExtensionPoint(FactoryExtensionPoint.class).getFactory(XMLOutputFactory.class);
-
- ByteArrayOutputStream bos = new ByteArrayOutputStream();
- try {
- compositeProcessor.write(composite, outputFactory.createXMLStreamWriter(bos), new ProcessorContext(getExtensionRegistry()));
- } catch(Exception e) {
- throw new RuntimeException(e);
- }
-
- String result = bos.toString();
-
- // write out and nested composites
- for (Component component : composite.getComponents()) {
- if (component.getImplementation() instanceof Composite) {
- result += "\n<!-- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -->\n";
- result += writeComposite((Composite)component.getImplementation(), compositeProcessor);
- }
- }
-
- return result;
+ DeployedComposite dc = Helper.createDeployedComposite(c, ic, dependentContributions, getDomainName(), nodeFactory);
+ ic.getDeployedComposites().add(dc);
}
- protected URL getLocationAsURL(String location) throws MalformedURLException {
+ protected URL getLocationAsURL(String location) throws ContributionReadException {
URI uri = IOHelper.createURI(location);
if (uri.getScheme() == null) {
uri = new File(location).toURI();
}
- URL url = uri.toURL();
- return url;
+ try {
+ return uri.toURL();
+ } catch (MalformedURLException e) {
+ throw new ContributionReadException(e);
+ }
}
protected void analyzeProblems(Monitor monitor) throws Throwable {