Author: antelder
Date: Tue Oct 30 09:56:06 2007
New Revision: 590149

URL: http://svn.apache.org/viewvc?rev=590149&view=rev
Log:
Restore ability to hot deploy contributions to a running node

Modified:
    
incubator/tuscany/java/sca/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/SCANodeImpl.java

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=590149&r1=590148&r2=590149&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
 Tue Oct 30 09:56:06 2007
@@ -38,6 +38,7 @@
 import org.apache.tuscany.sca.assembly.ComponentService;
 import org.apache.tuscany.sca.assembly.Composite;
 import org.apache.tuscany.sca.assembly.Service;
+import org.apache.tuscany.sca.assembly.builder.CompositeBuilderException;
 import org.apache.tuscany.sca.assembly.xml.Constants;
 import org.apache.tuscany.sca.contribution.Contribution;
 import org.apache.tuscany.sca.contribution.DeployedArtifact;
@@ -314,7 +315,22 @@
             throw new NodeException(ex);
         }        
     }
-    
+
+    public void startContribution(String contributionURI) throws NodeException 
{
+        try {
+
+            Contribution contribution = contributions.get(contributionURI);
+            for (Composite composite : contribution.getDeployables()) {
+                    startComposite(composite);
+            }  
+
+        } catch (ActivationException e) {
+            throw new NodeException(e);
+        } catch (CompositeBuilderException e) {
+            throw new NodeException(e);
+        }
+    }
+
     public void removeContribution(String contributionURI) throws 
NodeException {
         try { 
             Contribution contribution = contributions.get(contributionURI);
@@ -454,17 +470,7 @@
                     if (composite == null) {
                         logger.log(Level.INFO, "Composite not found during 
start: " + compositeName);
                     } else {
-                        logger.log(Level.INFO, "Starting composite: " + 
compositeName);
-                        
-                        // Add the composite to the top level domain
-                        nodeComposite.getIncludes().add(composite);
-                        nodeRuntime.getCompositeBuilder().build(composite); 
-                        
-                        // activate the composite
-                        
nodeRuntime.getCompositeActivator().activate(composite);              
-                        
-                        //start the composite
-                        nodeRuntime.getCompositeActivator().start(composite);
+                        startComposite(composite);
                     }
                 }
             }
@@ -472,6 +478,20 @@
         } catch (Exception ex) {
             throw new NodeException(ex);
         }  
+    }
+
+    private void startComposite(Composite composite) throws 
CompositeBuilderException, ActivationException {
+        logger.log(Level.INFO, "Starting composite: " + composite.getName());
+        
+        // Add the composite to the top level domain
+        nodeComposite.getIncludes().add(composite);
+        nodeRuntime.getCompositeBuilder().build(composite); 
+        
+        // activate the composite
+        nodeRuntime.getCompositeActivator().activate(composite);              
+        
+        //start the composite
+        nodeRuntime.getCompositeActivator().start(composite);
     }    
 
     private void stopComposites() throws NodeException {



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to