You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by an...@apache.org on 2010/05/22 09:48:18 UTC

svn commit: r947265 - in /tuscany/sca-java-2.x/contrib/modules/section10/src/main/java/org/apache/tuscany/sca/something: Section10.java impl/Section10Impl.java

Author: antelder
Date: Sat May 22 07:48:18 2010
New Revision: 947265

URL: http://svn.apache.org/viewvc?rev=947265&view=rev
Log:
Start adding code for addDeploymentComposite

Modified:
    tuscany/sca-java-2.x/contrib/modules/section10/src/main/java/org/apache/tuscany/sca/something/Section10.java
    tuscany/sca-java-2.x/contrib/modules/section10/src/main/java/org/apache/tuscany/sca/something/impl/Section10Impl.java

Modified: tuscany/sca-java-2.x/contrib/modules/section10/src/main/java/org/apache/tuscany/sca/something/Section10.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/contrib/modules/section10/src/main/java/org/apache/tuscany/sca/something/Section10.java?rev=947265&r1=947264&r2=947265&view=diff
==============================================================================
--- tuscany/sca-java-2.x/contrib/modules/section10/src/main/java/org/apache/tuscany/sca/something/Section10.java (original)
+++ tuscany/sca-java-2.x/contrib/modules/section10/src/main/java/org/apache/tuscany/sca/something/Section10.java Sat May 22 07:48:18 2010
@@ -23,6 +23,7 @@ import java.io.Reader;
 import java.util.List;
 
 import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamException;
 
 import org.apache.tuscany.sca.assembly.Composite;
 import org.apache.tuscany.sca.contribution.processor.ContributionReadException;
@@ -114,11 +115,11 @@ public interface Section10 {
      * @param uri
      * @param compositeXML
      * @return
+     * @throws XMLStreamException 
+     * @throws ContributionReadException 
+     * @throws ActivationException 
      */
-    String addDeploymentComposite(String contriubutionURI, String compositeXML);
-
-    /* perhaps you may want other forms of that too, eg: */
-    String addDeploymentComposite(String contriubutionURI, Reader compositeXML);
+    String addDeploymentComposite(String contriubutionURI, Reader compositeXML) throws ContributionReadException, XMLStreamException, ActivationException;
 
     /**
      * 4599 10.5.2 add Deployment Composite & update Deployment Composite
@@ -138,9 +139,6 @@ public interface Section10 {
      * @param compositeXML
      * @return
      */
-    String updateDeploymentComposite(String uri, String compositeXML);
-
-    /* and similar alternate form: */
     String updateDeploymentComposite(String uri, Reader compositeXML);
 
     /**

Modified: tuscany/sca-java-2.x/contrib/modules/section10/src/main/java/org/apache/tuscany/sca/something/impl/Section10Impl.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/contrib/modules/section10/src/main/java/org/apache/tuscany/sca/something/impl/Section10Impl.java?rev=947265&r1=947264&r2=947265&view=diff
==============================================================================
--- tuscany/sca-java-2.x/contrib/modules/section10/src/main/java/org/apache/tuscany/sca/something/impl/Section10Impl.java (original)
+++ tuscany/sca-java-2.x/contrib/modules/section10/src/main/java/org/apache/tuscany/sca/something/impl/Section10Impl.java Sat May 22 07:48:18 2010
@@ -31,14 +31,17 @@ import java.util.Map;
 import java.util.Properties;
 
 import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamException;
 
 import org.apache.tuscany.sca.assembly.Composite;
 import org.apache.tuscany.sca.common.java.io.IOHelper;
 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.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.node.NodeFactory;
 import org.apache.tuscany.sca.node.impl.NodeFactoryImpl;
 import org.apache.tuscany.sca.runtime.ActivationException;
@@ -50,11 +53,15 @@ import org.oasisopen.sca.client.SCAClien
 public class Section10Impl implements Section10 {
 
     protected NodeFactoryImpl nodeFactory;
+    protected Deployer deployer;
     protected Map<String, InstalledContribution> installedContributions = new HashMap<String, InstalledContribution>();
+    protected MonitorFactory monitorFactory;
     
     public Section10Impl(Properties config) {
         this.nodeFactory = (NodeFactoryImpl)NodeFactory.newInstance(config);
         ((NodeFactoryImpl)nodeFactory).start();
+        this.deployer = nodeFactory.getDeployer();
+        this.monitorFactory = nodeFactory.getExtensionPointRegistry().getExtensionPoint(UtilityExtensionPoint.class).getUtility(MonitorFactory.class);
     }
 
     public String installContribution(String contributionURL) throws ContributionReadException, ActivationException {
@@ -76,7 +83,6 @@ public class Section10Impl implements Se
     }
     
     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);
         Contribution contribution = deployer.loadContribution(URI.create(uri), url, monitor);
@@ -89,14 +95,27 @@ public class Section10Impl implements Se
         }
     }
 
-    public String addDeploymentComposite(String contriubutionURI, String compositeXML) {
-        // TODO Auto-generated method stub
-        return null;
-    }
+    public String addDeploymentComposite(String contributionURI, Reader compositeXML) throws ContributionReadException, XMLStreamException, ActivationException {
+        InstalledContribution ic = installedContributions.get(contributionURI);
+        if (ic == null) {
+            throw new IllegalArgumentException("contribution not installed: " + contributionURI);
+        }
 
-    public String addDeploymentComposite(String contriubutionURI, Reader compositeXML) {
-        // TODO Auto-generated method stub
-        return null;
+        Monitor monitor = monitorFactory.createMonitor();
+        Composite composite = deployer.loadXMLDocument(compositeXML, monitor);
+        
+        String compositeArtifcatURI = composite.getName().getLocalPart() + ".composite";
+        for (Artifact a : ic.getContribution().getArtifacts()) {
+            if (compositeArtifcatURI.equals(a.getURI())) {
+                throw new IllegalStateException("artifact '" + compositeArtifcatURI + "' already exists in contribution: " + contributionURI);
+            }
+        }
+
+        deployer.attachDeploymentComposite(ic.getContribution(), composite, true);
+        
+        deployComposite(composite, ic);
+
+        return compositeArtifcatURI;
     }
 
     public void addToDomainLevelComposite(String compositeURI) throws ActivationException {
@@ -164,12 +183,6 @@ public class Section10Impl implements Se
         // is this just removeContribution/installContribution?
     }
 
-    public String updateDeploymentComposite(String uri, String compositeXML) {
-        // TODO Auto-generated method stub
-        // is this removeFromDomainLevelComposite/addDeploymentComposite
-        return null;
-    }
-
     public String updateDeploymentComposite(String uri, Reader compositeXML) {
         // TODO Auto-generated method stub
         // is this removeFromDomainLevelComposite/addDeploymentComposite