You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by sl...@apache.org on 2007/10/19 17:57:37 UTC

svn commit: r586513 - in /incubator/tuscany/java/sca: distribution/webapp/src/main/java/org/apache/tuscany/sca/webapp/ distribution/webapp/src/main/resources/_node/ distribution/webapp/src/main/resources/_node/META-INF/ distribution/webapp/src/main/res...

Author: slaws
Date: Fri Oct 19 08:57:35 2007
New Revision: 586513

URL: http://svn.apache.org/viewvc?rev=586513&view=rev
Log:
Bring the distribution/webapp but up with the new domain/node implementation. Still need to fix the mode of operation where a new node is created for each new contribution but that can now be done from a working base. 

Added:
    incubator/tuscany/java/sca/modules/domain-impl/src/main/java/org/apache/tuscany/sca/domain/management/impl/ContributionInfoImpl.java
    incubator/tuscany/java/sca/modules/domain/src/main/java/org/apache/tuscany/sca/domain/management/ContributionInfo.java
Removed:
    incubator/tuscany/java/sca/distribution/webapp/src/main/resources/_node/META-INF/
    incubator/tuscany/java/sca/distribution/webapp/src/main/resources/_node/management.composite
    incubator/tuscany/java/sca/distribution/webapp/src/main/resources/_node/webroot/
Modified:
    incubator/tuscany/java/sca/distribution/webapp/src/main/java/org/apache/tuscany/sca/webapp/WarContextListener.java
    incubator/tuscany/java/sca/distribution/webapp/src/main/webapp/WEB-INF/web.xml
    incubator/tuscany/java/sca/modules/binding-sca-axis2/src/test/java/org/apache/tuscany/sca/binding/sca/axis2/TestDomain.java
    incubator/tuscany/java/sca/modules/domain-impl/src/main/java/org/apache/tuscany/sca/domain/impl/DomainManagerNodeImpl.java
    incubator/tuscany/java/sca/modules/domain-impl/src/main/java/org/apache/tuscany/sca/domain/impl/DomainManagerServiceImpl.java
    incubator/tuscany/java/sca/modules/domain-impl/src/main/java/org/apache/tuscany/sca/domain/impl/SCADomainImpl.java
    incubator/tuscany/java/sca/modules/domain-impl/src/main/java/org/apache/tuscany/sca/domain/model/impl/ContributionImpl.java
    incubator/tuscany/java/sca/modules/domain/src/main/java/org/apache/tuscany/sca/domain/DomainManagerNodeEventService.java
    incubator/tuscany/java/sca/modules/domain/src/main/java/org/apache/tuscany/sca/domain/SCADomainSPI.java
    incubator/tuscany/java/sca/modules/domain/src/main/java/org/apache/tuscany/sca/domain/model/Contribution.java
    incubator/tuscany/java/sca/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/DomainManagerServiceImpl.java
    incubator/tuscany/java/sca/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/SCADomainImpl.java
    incubator/tuscany/java/sca/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/SCANodeImpl.java

Modified: incubator/tuscany/java/sca/distribution/webapp/src/main/java/org/apache/tuscany/sca/webapp/WarContextListener.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/distribution/webapp/src/main/java/org/apache/tuscany/sca/webapp/WarContextListener.java?rev=586513&r1=586512&r2=586513&view=diff
==============================================================================
--- incubator/tuscany/java/sca/distribution/webapp/src/main/java/org/apache/tuscany/sca/webapp/WarContextListener.java (original)
+++ incubator/tuscany/java/sca/distribution/webapp/src/main/java/org/apache/tuscany/sca/webapp/WarContextListener.java Fri Oct 19 08:57:35 2007
@@ -40,6 +40,7 @@
 import org.apache.tuscany.sca.assembly.builder.CompositeBuilderException;
 import org.apache.tuscany.sca.contribution.service.ContributionException;
 import org.apache.tuscany.sca.core.assembly.ActivationException;
+import org.apache.tuscany.sca.domain.SCADomain;
 import org.apache.tuscany.sca.node.NodeException;
 import org.apache.tuscany.sca.node.SCANode;
 import org.apache.tuscany.sca.node.SCANodeFactory;
@@ -56,6 +57,7 @@
     private final static Logger logger = Logger.getLogger(WarContextListener.class.getName());
 
     protected SCANode node;
+    protected SCADomain domain;
     protected AddableURLClassLoader classLoader;
     protected File repository;
 
@@ -67,7 +69,6 @@
     protected HashMap<URL, Long> existingContributions; // value is last modified time
 
     private String domainName;
-
     private String nodeName;
 
     protected static final String NODE_ATTRIBUTE = WarContextListener.class.getName() + ".TuscanyNode";
@@ -114,15 +115,16 @@
             
             SCANodeFactory nodeFactory = SCANodeFactory.newInstance();
             node = nodeFactory.createSCANode(nodeName, domainName);
-            node.start();
+            domain = node.getDomain();
+            
     
             existingContributions = new HashMap<URL, Long>();
             URL[] contributions = getContributionJarURLs(repository);
             for (URL contribution : contributions) {
-    
                     addContribution(contribution);
-    
             }
+            
+            node.start();
     
             initHotDeploy(repository);
         } catch (Throwable e) {

Modified: incubator/tuscany/java/sca/distribution/webapp/src/main/webapp/WEB-INF/web.xml
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/distribution/webapp/src/main/webapp/WEB-INF/web.xml?rev=586513&r1=586512&r2=586513&view=diff
==============================================================================
--- incubator/tuscany/java/sca/distribution/webapp/src/main/webapp/WEB-INF/web.xml (original)
+++ incubator/tuscany/java/sca/distribution/webapp/src/main/webapp/WEB-INF/web.xml Fri Oct 19 08:57:35 2007
@@ -30,11 +30,11 @@
 
   <context-param>
      <param-name>domainName</param-name>
-     <param-value>http://localhost:8080/</param-value>
+     <param-value>http://localhost:8877/</param-value>
   </context-param>
   <context-param>
      <param-name>nodeName</param-name>
-     <param-value>http://localhost:8081/</param-value>
+     <param-value>http://localhost:8080/</param-value>
   </context-param>
   <context-param>
      <param-name>hotDeployInterval</param-name>

Modified: incubator/tuscany/java/sca/modules/binding-sca-axis2/src/test/java/org/apache/tuscany/sca/binding/sca/axis2/TestDomain.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-sca-axis2/src/test/java/org/apache/tuscany/sca/binding/sca/axis2/TestDomain.java?rev=586513&r1=586512&r2=586513&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/binding-sca-axis2/src/test/java/org/apache/tuscany/sca/binding/sca/axis2/TestDomain.java (original)
+++ incubator/tuscany/java/sca/modules/binding-sca-axis2/src/test/java/org/apache/tuscany/sca/binding/sca/axis2/TestDomain.java Fri Oct 19 08:57:35 2007
@@ -184,6 +184,12 @@
         return null;
     }
     
+    public void registerContribution(String nodeURI, String contributionURI, String contributionURL){
+    }
+    
+    public void unregisterContribution(String contributionURI){
+    }    
+    
     public void addContribution(String contributionURI, URL contributionURL) throws DomainException {
     }
         

Modified: incubator/tuscany/java/sca/modules/domain-impl/src/main/java/org/apache/tuscany/sca/domain/impl/DomainManagerNodeImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/domain-impl/src/main/java/org/apache/tuscany/sca/domain/impl/DomainManagerNodeImpl.java?rev=586513&r1=586512&r2=586513&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/domain-impl/src/main/java/org/apache/tuscany/sca/domain/impl/DomainManagerNodeImpl.java (original)
+++ incubator/tuscany/java/sca/modules/domain-impl/src/main/java/org/apache/tuscany/sca/domain/impl/DomainManagerNodeImpl.java Fri Oct 19 08:57:35 2007
@@ -58,6 +58,12 @@
             return null;
         }
         
+        public void registerContribution(String nodeURI, String contributionURI, String contributionURL) {
+        }
+        
+        public void unregisterContribution(String contributionURI){
+        }        
+        
         public String  registerServiceEndpoint(String domainUri, String nodeUri, String serviceName, String bindingName, String URL){
             return null;
         }

Modified: incubator/tuscany/java/sca/modules/domain-impl/src/main/java/org/apache/tuscany/sca/domain/impl/DomainManagerServiceImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/domain-impl/src/main/java/org/apache/tuscany/sca/domain/impl/DomainManagerServiceImpl.java?rev=586513&r1=586512&r2=586513&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/domain-impl/src/main/java/org/apache/tuscany/sca/domain/impl/DomainManagerServiceImpl.java (original)
+++ incubator/tuscany/java/sca/modules/domain-impl/src/main/java/org/apache/tuscany/sca/domain/impl/DomainManagerServiceImpl.java Fri Oct 19 08:57:35 2007
@@ -62,7 +62,15 @@
     
     public String removeNode(String nodeURI){ 
         return scaDomain.removeNode(nodeURI);
-    }      
+    }  
+    
+    public void registerContribution(String nodeURI, String contributionURI, String contributionURL) {
+        scaDomain.registerContribution(nodeURI, contributionURI, contributionURL);
+    }
+    
+    public void unregisterContribution(String contributionURI){
+        scaDomain.unregisterContribution(contributionURI);
+    }
     
     public String  registerServiceEndpoint(String domainUri, String nodeUri, String serviceName, String bindingName, String URL){
         return scaDomain.registerServiceEndpoint(domainUri, nodeUri, serviceName, bindingName, URL);

Modified: incubator/tuscany/java/sca/modules/domain-impl/src/main/java/org/apache/tuscany/sca/domain/impl/SCADomainImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/domain-impl/src/main/java/org/apache/tuscany/sca/domain/impl/SCADomainImpl.java?rev=586513&r1=586512&r2=586513&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/domain-impl/src/main/java/org/apache/tuscany/sca/domain/impl/SCADomainImpl.java (original)
+++ incubator/tuscany/java/sca/modules/domain-impl/src/main/java/org/apache/tuscany/sca/domain/impl/SCADomainImpl.java Fri Oct 19 08:57:35 2007
@@ -205,6 +205,7 @@
     }       
     
     // SCADomain SPI methods 
+    
     public Domain getDomainModel(){        
         return domainModel;
     }    
@@ -235,6 +236,31 @@
         return "DummyReturn";
     }
     
+
+    public void registerContribution(String nodeURI, String contributionURI, String contributionURL){
+        try {
+            if ( domainModel.getContributions().containsKey(contributionURI) == false ){
+                // add the contribution information to the domain model
+                org.apache.tuscany.sca.domain.model.Contribution contributionModel = 
+                    parseContribution(contributionURI, contributionURL);
+            }
+
+        
+            // assign the contribution to the referenced node
+        } catch (Exception ex) {
+            logger.log(Level.SEVERE, "Exception when registering contribution " + 
+                                     contributionURI + 
+                                     ex.toString() );
+        }
+        
+    }
+    
+
+    public void unregisterContribution(String contributionURI){
+        // TODO
+        
+    }
+    
     public String  registerServiceEndpoint(String domainURI, String nodeURI, String serviceName, String bindingName, String URL){
         // if the service name ends in a "/" remove it
         String modifiedServiceName = null;
@@ -335,7 +361,7 @@
         return domainModel.getDomainURI();
     }
     
-    public void addContribution(String contributionURI, URL contributionURL) throws DomainException {
+    private org.apache.tuscany.sca.domain.model.Contribution parseContribution(String contributionURI, String contributionURL) throws DomainException {
         // add the contribution information to the domain model
         org.apache.tuscany.sca.domain.model.Contribution contributionModel = domainModelFactory.createContribution();
         contributionModel.setContributionURI(contributionURI);
@@ -347,7 +373,7 @@
             // Create a local model from the contribution. Using the contribution
             // processor from the domain management runtime just because we already have it
             Contribution contribution =  domainManagementContributionService.contribute(contributionURI, 
-                                                                                        contributionURL, 
+                                                                                        new URL(contributionURL), 
                                                                                         false);
             
             // store the contribution
@@ -383,8 +409,12 @@
             
         } catch(Exception ex) {
             throw new DomainException(ex);
-        }       
+        } 
         
+        return contributionModel;
+    }
+    
+    private void assignContributionToNode(org.apache.tuscany.sca.domain.model.Contribution contributionModel) throws DomainException {
         // Find a node to run the contribution. 
         // TODO - add some more sophisticated algorithm here
         // find a node without a contribution and add it to it. There is no deployment
@@ -395,15 +425,23 @@
         for(Node node : domainModel.getNodes().values()) {
             if ( node.getContributions().isEmpty()){
                 foundFreeNode = true;
-                node.getContributions().put(contributionURI, contributionModel);
+                node.getContributions().put(contributionModel.getContributionURI(), contributionModel);
                 break;
             }
         }      
         
         if (foundFreeNode == false){
             throw new DomainException("No free node available for contribution " + 
-                                      contributionURI);
+                                      contributionModel.getContributionURI());
         }
+    }
+    
+    public void addContribution(String contributionURI, URL contributionURL) throws DomainException {
+        // add the contribution information to the domain model
+        org.apache.tuscany.sca.domain.model.Contribution contributionModel = 
+            parseContribution(contributionURI, contributionURL.toExternalForm());
+
+        assignContributionToNode(contributionModel);
     }
 
     public void removeContribution(String uri) throws DomainException {

Added: incubator/tuscany/java/sca/modules/domain-impl/src/main/java/org/apache/tuscany/sca/domain/management/impl/ContributionInfoImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/domain-impl/src/main/java/org/apache/tuscany/sca/domain/management/impl/ContributionInfoImpl.java?rev=586513&view=auto
==============================================================================
--- incubator/tuscany/java/sca/modules/domain-impl/src/main/java/org/apache/tuscany/sca/domain/management/impl/ContributionInfoImpl.java (added)
+++ incubator/tuscany/java/sca/modules/domain-impl/src/main/java/org/apache/tuscany/sca/domain/management/impl/ContributionInfoImpl.java Fri Oct 19 08:57:35 2007
@@ -0,0 +1,89 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.    
+ */
+
+package org.apache.tuscany.sca.domain.management.impl;
+
+import java.io.Serializable;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.xml.namespace.QName;
+
+import org.apache.tuscany.sca.domain.management.ContributionInfo;
+/**
+ * Information relating to an exposed service
+ * 
+ * @version $Rev: 552343 $ $Date: 2007-09-07 12:41:52 +0100 (Fri, 07 Sep 2007) $
+ */
+public class ContributionInfoImpl implements ContributionInfo, Serializable {
+    
+    static final long serialVersionUID = 7669181086005969428L;    
+    
+    private String contributionURI;
+    private URL contributionURL;
+    private List<QName> composites = new ArrayList<QName>();   
+    private List<QName> deployableComposites = new ArrayList<QName>();  
+    
+    
+    /**
+     * Retrieve the contribution uri
+     * 
+     * @return contribution uri
+     */
+    public String getContributionURI() {
+        return contributionURI;
+    }
+    
+    /**
+     * Set the contribution uri
+     * 
+     * @param contributionURI
+     */    
+    public void setContributionURI(String contributionURI){
+        this.contributionURI = contributionURI;
+    }
+    
+    /**
+     * Retrieve the contribution url
+     * 
+     * @return contribution url
+     */    
+    public URL getContributionURL(){
+        return contributionURL;
+    }
+   
+    /**
+     * Set the contribution url
+     * 
+     * @param contributionURL
+     */    
+    public void setContributionURL(URL contributionURL){
+        this.contributionURL = contributionURL;
+    }
+    
+    public List<QName> getComposites(){
+        return composites;
+    }   
+    
+    public List<QName> getDeployableComposites(){
+        return deployableComposites;
+    }
+    
+}

Modified: incubator/tuscany/java/sca/modules/domain-impl/src/main/java/org/apache/tuscany/sca/domain/model/impl/ContributionImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/domain-impl/src/main/java/org/apache/tuscany/sca/domain/model/impl/ContributionImpl.java?rev=586513&r1=586512&r2=586513&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/domain-impl/src/main/java/org/apache/tuscany/sca/domain/model/impl/ContributionImpl.java (original)
+++ incubator/tuscany/java/sca/modules/domain-impl/src/main/java/org/apache/tuscany/sca/domain/model/impl/ContributionImpl.java Fri Oct 19 08:57:35 2007
@@ -36,7 +36,7 @@
 public class ContributionImpl implements Contribution {
     
     private String contributionURI;
-    private URL contributionURL;
+    private String contributionURL;
     private Map<QName, Composite> composites = new HashMap<QName, Composite>();   
     private Map<QName, Composite> deployableComposites = new HashMap<QName, Composite>();  
     
@@ -64,7 +64,7 @@
      * 
      * @return contribution url
      */    
-    public URL getContributionURL(){
+    public String getContributionURL(){
         return contributionURL;
     }
    
@@ -73,7 +73,7 @@
      * 
      * @param contributionURL
      */    
-    public void setContributionURL(URL contributionURL){
+    public void setContributionURL(String contributionURL){
         this.contributionURL = contributionURL;
     }
     

Modified: incubator/tuscany/java/sca/modules/domain/src/main/java/org/apache/tuscany/sca/domain/DomainManagerNodeEventService.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/domain/src/main/java/org/apache/tuscany/sca/domain/DomainManagerNodeEventService.java?rev=586513&r1=586512&r2=586513&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/domain/src/main/java/org/apache/tuscany/sca/domain/DomainManagerNodeEventService.java (original)
+++ incubator/tuscany/java/sca/modules/domain/src/main/java/org/apache/tuscany/sca/domain/DomainManagerNodeEventService.java Fri Oct 19 08:57:35 2007
@@ -54,7 +54,30 @@
      * @param nodeUri the string uri for the current node
      * @param nodeManagementUrl the endpoint for the nodes management service
      */
-    public String removeNode(String nodeURI);     
+    public String removeNode(String nodeURI);  
+    
+
+    /**
+     * In the case where a contribution is added at a node this method is used to 
+     * record the relationship directly. This is different from adding a contribution
+     * to a domain as the contribution has alread been allocated to a node
+     * 
+     * @param nodeURI the string uri for the node
+     * @param contributionURI the string uri for the contribution
+     * @param nodeURL the location of the contribution
+     * @return
+     */
+    public void registerContribution(String nodeURI, String contributionURI, String contributionURL);
+    
+
+    /** 
+     * In the case where a contribution is removed from a node locally this method is
+     * used to remove the contribution from the domain
+     * 
+     * @param contributionURI the string uri for the contribution
+     * @return
+     */
+    public void unregisterContribution(String contributionURI);     
      
     /**
      * Accepts information about a service endpoint and holds onto it

Modified: incubator/tuscany/java/sca/modules/domain/src/main/java/org/apache/tuscany/sca/domain/SCADomainSPI.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/domain/src/main/java/org/apache/tuscany/sca/domain/SCADomainSPI.java?rev=586513&r1=586512&r2=586513&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/domain/src/main/java/org/apache/tuscany/sca/domain/SCADomainSPI.java (original)
+++ incubator/tuscany/java/sca/modules/domain/src/main/java/org/apache/tuscany/sca/domain/SCADomainSPI.java Fri Oct 19 08:57:35 2007
@@ -49,6 +49,28 @@
      * @return
      */
     public String removeNode(String nodeURI);
+    
+    /**
+     * In the case where a contribution is added at a node this method is used to 
+     * record the relationship directly. This is different from adding a contribution
+     * to a domain as the contribution has alread been allocated to a node
+     * 
+     * @param nodeURI the string uri for the node
+     * @param contributionURI the string uri for the contribution
+     * @param nodeURL the location of the contribution
+     * @return
+     */
+    public void registerContribution(String nodeURI, String contributionURI, String contributionURL);
+    
+
+    /** 
+     * In the case where a contribution is removed from a node locally this method is
+     * used to remove the contribution from the domain
+     * 
+     * @param contributionURI the string uri for the contribution
+     * @return
+     */
+    public void unregisterContribution(String contributionURI);     
 
     
     /**
@@ -58,7 +80,7 @@
      * @param nodeUri the string uri for the current node
      * @param serviceName the name of the service that is exposed and the provided endpoint
      * @param bindingName the remote binding that is providing the endpoint
-     * @param url the enpoint url
+     * @param url the endpoint url
      * @return TBD - information about the registration
      */
     public String registerServiceEndpoint(String domainUri, String nodeUri, String serviceName, String bindingName, String URL);
@@ -89,19 +111,6 @@
      * @return
      */
     public Domain getDomainModel();
-    
-    /** 
-     * Returns information for all registered services
-     * @return
-     */
-   // public ServiceInfo getServiceInfo(); 
-    
-    
-    /**
-     * Return information about all the nodes in the domain
-     * 
-     * @return
-     */
-  //  public List<NodeInfo> getNodeInfo();    
+  
     
 }

Added: incubator/tuscany/java/sca/modules/domain/src/main/java/org/apache/tuscany/sca/domain/management/ContributionInfo.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/domain/src/main/java/org/apache/tuscany/sca/domain/management/ContributionInfo.java?rev=586513&view=auto
==============================================================================
--- incubator/tuscany/java/sca/modules/domain/src/main/java/org/apache/tuscany/sca/domain/management/ContributionInfo.java (added)
+++ incubator/tuscany/java/sca/modules/domain/src/main/java/org/apache/tuscany/sca/domain/management/ContributionInfo.java Fri Oct 19 08:57:35 2007
@@ -0,0 +1,72 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.    
+ */
+
+package org.apache.tuscany.sca.domain.management;
+
+import java.net.URL;
+import java.util.List;
+import java.util.Map;
+
+import javax.xml.namespace.QName;
+
+import org.apache.tuscany.sca.domain.model.Composite;
+import org.apache.tuscany.sca.domain.model.Contribution;
+import org.apache.tuscany.sca.domain.model.Service;
+
+
+/**
+ * A collection of info for a contribution
+ * 
+ * @version $Rev: 552343 $ $Date: 2007-09-07 12:41:52 +0100 (Fri, 07 Sep 2007) $
+ */
+public interface ContributionInfo {
+    
+    
+    /**
+     * Retrieve the contribution uri
+     * 
+     * @return contribution uri
+     */
+    public String getContributionURI();
+    
+    /**
+     * Set the contribution uri
+     * 
+     * @param contributionURI
+     */    
+    public void setContributionURI(String contributionURI);    
+    
+    /**
+     * Retrieve the contribution url
+     * 
+     * @return contribution url
+     */    
+    public URL getContributionURL();
+   
+    /**
+     * Set the contribution url
+     * 
+     * @param contributionURL
+     */    
+    public void setContributionURL(URL contributionURL);
+    
+    public List<QName> getComposites();       
+    public List<QName> getDeployableComposites();
+ 
+}

Modified: incubator/tuscany/java/sca/modules/domain/src/main/java/org/apache/tuscany/sca/domain/model/Contribution.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/domain/src/main/java/org/apache/tuscany/sca/domain/model/Contribution.java?rev=586513&r1=586512&r2=586513&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/domain/src/main/java/org/apache/tuscany/sca/domain/model/Contribution.java (original)
+++ incubator/tuscany/java/sca/modules/domain/src/main/java/org/apache/tuscany/sca/domain/model/Contribution.java Fri Oct 19 08:57:35 2007
@@ -50,14 +50,14 @@
      * 
      * @return contribution url
      */    
-    public URL getContributionURL();
+    public String getContributionURL();
    
     /**
      * Set the contribution url
      * 
      * @param contributionURL
      */    
-    public void setContributionURL(URL contributionURL);
+    public void setContributionURL(String contributionURL);
     
     public Map<QName, Composite> getComposites();       
     public Map<QName, Composite> getDeployableComposites();   

Modified: incubator/tuscany/java/sca/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/DomainManagerServiceImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/DomainManagerServiceImpl.java?rev=586513&r1=586512&r2=586513&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/DomainManagerServiceImpl.java (original)
+++ incubator/tuscany/java/sca/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/DomainManagerServiceImpl.java Fri Oct 19 08:57:35 2007
@@ -77,6 +77,14 @@
     public String removeNode(String nodeURI) {
         return domainManager.removeNode(nodeURI);
     }
+    
+    public void registerContribution(String nodeURI, String contributionURI, String contributionURL){
+        domainManager.registerContribution(nodeURI, contributionURI, contributionURL);
+    }
+    
+    public void unregisterContribution(String contributionURI){
+        domainManager.unregisterContribution(contributionURI);
+    }
 
 
     public String registerServiceEndpoint(String domainUri, String nodeUri, String serviceName, String bindingName, String URL){

Modified: incubator/tuscany/java/sca/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/SCADomainImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/SCADomainImpl.java?rev=586513&r1=586512&r2=586513&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/SCADomainImpl.java (original)
+++ incubator/tuscany/java/sca/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/SCADomainImpl.java Fri Oct 19 08:57:35 2007
@@ -233,6 +233,14 @@
         }  
         
         this.nodeImpl = null;
+    }  
+    
+    public void registerContribution(String nodeURI, String contributionURI, String contributionURL){
+        domainManager.registerContribution(nodeURI, contributionURI, contributionURL);
+    }
+    
+    public void unregisterContribution(String contributionURI){
+        domainManager.unregisterContribution(contributionURI);
     }    
      
 

Modified: incubator/tuscany/java/sca/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/SCANodeImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/SCANodeImpl.java?rev=586513&r1=586512&r2=586513&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/SCANodeImpl.java (original)
+++ incubator/tuscany/java/sca/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/SCANodeImpl.java Fri Oct 19 08:57:35 2007
@@ -276,7 +276,12 @@
                 // remember all the deployable composites ready to be started
                 for (Composite composite : contribution.getDeployables()) {
                     compositesToStart.add(composite.getName());
-                }                
+                }  
+                
+                
+                // add the contribution to the domain. It will generally already be there
+                // unless the contribution has been added to the node itself. 
+                ((SCADomainImpl)scaDomain).registerContribution(nodeURI, contributionURI, contributionURL.toExternalForm());                  
                 
             } else {
                     throw new ActivationException("Contribution " + contributionURL + " not found");



---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org