Author: gdamour
Date: Wed Apr  6 03:14:19 2005
New Revision: 160279

URL: http://svn.apache.org/viewcvs?view=rev&rev=160279
Log:
GERONIMO-587 submitted by Toby Cabot

In some specific cases, Deployer returned 0 even if the command was not 
successfully executed.

Modified:
    
geronimo/trunk/modules/deploy-tool/src/java/org/apache/geronimo/deployment/cli/AbstractCommand.java
    
geronimo/trunk/modules/deploy-tool/src/java/org/apache/geronimo/deployment/cli/CommandDeploy.java
    
geronimo/trunk/modules/deploy-tool/src/java/org/apache/geronimo/deployment/cli/CommandDistribute.java
    
geronimo/trunk/modules/deploy-tool/src/java/org/apache/geronimo/deployment/cli/CommandRedeploy.java
    
geronimo/trunk/modules/deploy-tool/src/java/org/apache/geronimo/deployment/cli/CommandStart.java
    
geronimo/trunk/modules/deploy-tool/src/java/org/apache/geronimo/deployment/cli/CommandStop.java
    
geronimo/trunk/modules/deploy-tool/src/java/org/apache/geronimo/deployment/cli/CommandUndeploy.java

Modified: 
geronimo/trunk/modules/deploy-tool/src/java/org/apache/geronimo/deployment/cli/AbstractCommand.java
URL: 
http://svn.apache.org/viewcvs/geronimo/trunk/modules/deploy-tool/src/java/org/apache/geronimo/deployment/cli/AbstractCommand.java?view=diff&r1=160278&r2=160279
==============================================================================
--- 
geronimo/trunk/modules/deploy-tool/src/java/org/apache/geronimo/deployment/cli/AbstractCommand.java
 (original)
+++ 
geronimo/trunk/modules/deploy-tool/src/java/org/apache/geronimo/deployment/cli/AbstractCommand.java
 Wed Apr  6 03:14:19 2005
@@ -69,19 +69,24 @@
         return false;
     }
 
-    protected static TargetModuleID[] waitForProgress(PrintWriter out, 
ProgressObject po) {
+    /**
+     * Busy-waits until the provided <code>ProgressObject</code>
+     * indicates that it's no longer running.
+     *
+     * @param out a <code>PrintWriter</code> value, only used in case
+     * of an <code>InterruptedException</code> to output the stack
+     * trace.
+     * @param po a <code>ProgressObject</code> value
+     */
+    protected static void waitForProgress(PrintWriter out, ProgressObject po) {
         while(po.getDeploymentStatus().isRunning()) {
             try {
                 Thread.sleep(100);
             } catch (InterruptedException e) {
-                e.printStackTrace();
+                e.printStackTrace(out);
             }
         }
-        if(po.getDeploymentStatus().isFailed()) {
-            out.println("Deployment failed");
-            out.println("  Server reports: 
"+po.getDeploymentStatus().getMessage());
-        }
-        return po.getResultTargetModuleIDs();
+        return;
     }
 
     protected static boolean isMultipleTargets(TargetModuleID[] ids) {

Modified: 
geronimo/trunk/modules/deploy-tool/src/java/org/apache/geronimo/deployment/cli/CommandDeploy.java
URL: 
http://svn.apache.org/viewcvs/geronimo/trunk/modules/deploy-tool/src/java/org/apache/geronimo/deployment/cli/CommandDeploy.java?view=diff&r1=160278&r2=160279
==============================================================================
--- 
geronimo/trunk/modules/deploy-tool/src/java/org/apache/geronimo/deployment/cli/CommandDeploy.java
 (original)
+++ 
geronimo/trunk/modules/deploy-tool/src/java/org/apache/geronimo/deployment/cli/CommandDeploy.java
 Wed Apr  6 03:14:19 2005
@@ -51,8 +51,9 @@
     }
 
     protected ProgressObject runCommand(DeploymentManager mgr, PrintWriter 
out, Target[] tlist, File module, File plan) {
-        TargetModuleID[] modules = waitForProgress(out, mgr.distribute(tlist, 
module, plan));
-        return mgr.start(modules);
+        ProgressObject po = mgr.distribute(tlist, module, plan);
+        waitForProgress(out, po);
+        return mgr.start(po.getResultTargetModuleIDs());
     }
 
     public void execute(PrintWriter out, ServerConnection connection, String[] 
args) throws DeploymentException {

Modified: 
geronimo/trunk/modules/deploy-tool/src/java/org/apache/geronimo/deployment/cli/CommandDistribute.java
URL: 
http://svn.apache.org/viewcvs/geronimo/trunk/modules/deploy-tool/src/java/org/apache/geronimo/deployment/cli/CommandDistribute.java?view=diff&r1=160278&r2=160279
==============================================================================
--- 
geronimo/trunk/modules/deploy-tool/src/java/org/apache/geronimo/deployment/cli/CommandDistribute.java
 (original)
+++ 
geronimo/trunk/modules/deploy-tool/src/java/org/apache/geronimo/deployment/cli/CommandDistribute.java
 Wed Apr  6 03:14:19 2005
@@ -131,18 +131,30 @@
         final DeploymentManager mgr = connection.getDeploymentManager();
         TargetModuleID[] results;
         boolean multipleTargets;
+        ProgressObject po;
         if(targets.size() > 0) {
             Target[] tlist = identifyTargets(targets, mgr);
             multipleTargets = tlist.length > 1;
-            results = waitForProgress(out, runCommand(mgr, out, tlist, module, 
plan));
+            po = runCommand(mgr, out, tlist, module, plan);
+            waitForProgress(out, po);
         } else {
             final Target[] tlist = mgr.getTargets();
             multipleTargets = tlist.length > 1;
-            results = waitForProgress(out, runCommand(mgr, out, tlist, module, 
plan));
+            po = runCommand(mgr, out, tlist, module, plan);
+            waitForProgress(out, po);
         }
+
+        // print the results that succeeded
+        results = po.getResultTargetModuleIDs();
         for (int i = 0; i < results.length; i++) {
             TargetModuleID result = results[i];
             out.println(getAction()+" "+result.getModuleID()+(multipleTargets 
? " to "+result.getTarget().getName() : ""));
+        }
+
+        // if any results failed then throw so that we'll return non-0
+        // to the operating system
+        if(po.getDeploymentStatus().isFailed()) {
+            throw new DeploymentException("Deployment failed, Server reports: 
"+po.getDeploymentStatus().getMessage());
         }
     }
 

Modified: 
geronimo/trunk/modules/deploy-tool/src/java/org/apache/geronimo/deployment/cli/CommandRedeploy.java
URL: 
http://svn.apache.org/viewcvs/geronimo/trunk/modules/deploy-tool/src/java/org/apache/geronimo/deployment/cli/CommandRedeploy.java?view=diff&r1=160278&r2=160279
==============================================================================
--- 
geronimo/trunk/modules/deploy-tool/src/java/org/apache/geronimo/deployment/cli/CommandRedeploy.java
 (original)
+++ 
geronimo/trunk/modules/deploy-tool/src/java/org/apache/geronimo/deployment/cli/CommandRedeploy.java
 Wed Apr  6 03:14:19 2005
@@ -27,6 +27,7 @@
 import javax.enterprise.deploy.spi.TargetModuleID;
 import javax.enterprise.deploy.spi.Target;
 import javax.enterprise.deploy.spi.exceptions.TargetException;
+import javax.enterprise.deploy.spi.status.ProgressObject;
 
 /**
  * The CLI deployer logic to redeploy.
@@ -109,10 +110,15 @@
         }
         TargetModuleID[] ids = (TargetModuleID[]) modules.toArray(new 
TargetModuleID[modules.size()]);
         boolean multiple = isMultipleTargets(ids);
-        TargetModuleID[] done = waitForProgress(out, mgr.redeploy(ids, module, 
plan));
+        ProgressObject po = mgr.redeploy(ids, module, plan);
+        waitForProgress(out, po);
+        TargetModuleID[] done = po.getResultTargetModuleIDs();
         for(int i = 0; i < done.length; i++) {
             TargetModuleID id = done[i];
             out.println("Redeployed "+id.getModuleID()+(multiple ? " on 
"+id.getTarget().getName() : ""));
+        }
+        if(po.getDeploymentStatus().isFailed()) {
+            throw new DeploymentException("Deployment failed, Server reports: 
"+po.getDeploymentStatus().getMessage());
         }
     }
 }

Modified: 
geronimo/trunk/modules/deploy-tool/src/java/org/apache/geronimo/deployment/cli/CommandStart.java
URL: 
http://svn.apache.org/viewcvs/geronimo/trunk/modules/deploy-tool/src/java/org/apache/geronimo/deployment/cli/CommandStart.java?view=diff&r1=160278&r2=160279
==============================================================================
--- 
geronimo/trunk/modules/deploy-tool/src/java/org/apache/geronimo/deployment/cli/CommandStart.java
 (original)
+++ 
geronimo/trunk/modules/deploy-tool/src/java/org/apache/geronimo/deployment/cli/CommandStart.java
 Wed Apr  6 03:14:19 2005
@@ -26,6 +26,7 @@
 import javax.enterprise.deploy.spi.DeploymentManager;
 import javax.enterprise.deploy.spi.Target;
 import javax.enterprise.deploy.spi.exceptions.TargetException;
+import javax.enterprise.deploy.spi.status.ProgressObject;
 
 /**
  * The CLI deployer logic to start.
@@ -69,15 +70,21 @@
         }
         TargetModuleID[] ids = (TargetModuleID[]) modules.toArray(new 
TargetModuleID[modules.size()]);
         boolean multiple = isMultipleTargets(ids);
-        TargetModuleID[] done = runCommand(out, mgr, ids);
+        ProgressObject po = runCommand(out, mgr, ids);
+        TargetModuleID[] done = po.getResultTargetModuleIDs();
         for(int i = 0; i < done.length; i++) {
             TargetModuleID id = done[i];
             out.println(getAction()+" "+id.getModuleID()+(multiple ? " on 
"+id.getTarget().getName() : ""));
         }
+        if(po.getDeploymentStatus().isFailed()) {
+            throw new DeploymentException("Deployment failed, Server reports: 
"+po.getDeploymentStatus().getMessage());
+        }
     }
 
-    protected TargetModuleID[] runCommand(PrintWriter out, DeploymentManager 
mgr, TargetModuleID[] ids) {
-        return waitForProgress(out, mgr.start(ids));
+    protected ProgressObject runCommand(PrintWriter out, DeploymentManager 
mgr, TargetModuleID[] ids) {
+        ProgressObject po = mgr.start(ids);
+        waitForProgress(out, po);
+        return po;
     }
 
     protected String getAction() {

Modified: 
geronimo/trunk/modules/deploy-tool/src/java/org/apache/geronimo/deployment/cli/CommandStop.java
URL: 
http://svn.apache.org/viewcvs/geronimo/trunk/modules/deploy-tool/src/java/org/apache/geronimo/deployment/cli/CommandStop.java?view=diff&r1=160278&r2=160279
==============================================================================
--- 
geronimo/trunk/modules/deploy-tool/src/java/org/apache/geronimo/deployment/cli/CommandStop.java
 (original)
+++ 
geronimo/trunk/modules/deploy-tool/src/java/org/apache/geronimo/deployment/cli/CommandStop.java
 Wed Apr  6 03:14:19 2005
@@ -17,9 +17,12 @@
 
 package org.apache.geronimo.deployment.cli;
 
+import org.apache.geronimo.common.DeploymentException;
+
 import java.io.PrintWriter;
 import javax.enterprise.deploy.spi.TargetModuleID;
 import javax.enterprise.deploy.spi.DeploymentManager;
+import javax.enterprise.deploy.spi.status.ProgressObject;
 
 /**
  * The CLI deployer logic to stop.
@@ -39,8 +42,10 @@
                 "start next time the server is started.");
     }
 
-    protected TargetModuleID[] runCommand(PrintWriter out, DeploymentManager 
mgr, TargetModuleID[] ids) {
-        return waitForProgress(out, mgr.stop(ids));
+    protected ProgressObject runCommand(PrintWriter out, DeploymentManager 
mgr, TargetModuleID[] ids) {
+        ProgressObject po = mgr.stop(ids);
+        waitForProgress(out, po);
+        return po;
     }
 
     protected String getAction() {

Modified: 
geronimo/trunk/modules/deploy-tool/src/java/org/apache/geronimo/deployment/cli/CommandUndeploy.java
URL: 
http://svn.apache.org/viewcvs/geronimo/trunk/modules/deploy-tool/src/java/org/apache/geronimo/deployment/cli/CommandUndeploy.java?view=diff&r1=160278&r2=160279
==============================================================================
--- 
geronimo/trunk/modules/deploy-tool/src/java/org/apache/geronimo/deployment/cli/CommandUndeploy.java
 (original)
+++ 
geronimo/trunk/modules/deploy-tool/src/java/org/apache/geronimo/deployment/cli/CommandUndeploy.java
 Wed Apr  6 03:14:19 2005
@@ -20,6 +20,8 @@
 import java.io.PrintWriter;
 import javax.enterprise.deploy.spi.TargetModuleID;
 import javax.enterprise.deploy.spi.DeploymentManager;
+import javax.enterprise.deploy.spi.status.ProgressObject;
+import org.apache.geronimo.common.DeploymentException;
 
 /**
  * the CLI deployer logic to undeploy.
@@ -36,8 +38,10 @@
                 "all be undeployed.");
     }
 
-    protected TargetModuleID[] runCommand(PrintWriter out, DeploymentManager 
mgr, TargetModuleID[] ids) {
-        return waitForProgress(out, mgr.undeploy(ids));
+    protected ProgressObject runCommand(PrintWriter out, DeploymentManager 
mgr, TargetModuleID[] ids) {
+        ProgressObject po = mgr.undeploy(ids);
+        waitForProgress(out, po);
+        return po;
     }
 
     protected String getAction() {


Reply via email to