You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by ga...@apache.org on 2013/02/20 20:04:42 UTC

svn commit: r1448352 - in /geronimo/server/branches/3.0/framework/modules/geronimo-deploy-jsr88/src/main/java/org/apache/geronimo/deployment/plugin: jmx/ local/ remote/

Author: gawor
Date: Wed Feb 20 19:04:42 2013
New Revision: 1448352

URL: http://svn.apache.org/r1448352
Log:
improve error reporting when doing remote deployment and the remote upload service (servlet) is not running

Modified:
    geronimo/server/branches/3.0/framework/modules/geronimo-deploy-jsr88/src/main/java/org/apache/geronimo/deployment/plugin/jmx/RemoteDeploymentManager.java
    geronimo/server/branches/3.0/framework/modules/geronimo-deploy-jsr88/src/main/java/org/apache/geronimo/deployment/plugin/local/AbstractDeployCommand.java
    geronimo/server/branches/3.0/framework/modules/geronimo-deploy-jsr88/src/main/java/org/apache/geronimo/deployment/plugin/remote/DistributeCommand.java
    geronimo/server/branches/3.0/framework/modules/geronimo-deploy-jsr88/src/main/java/org/apache/geronimo/deployment/plugin/remote/RedeployCommand.java
    geronimo/server/branches/3.0/framework/modules/geronimo-deploy-jsr88/src/main/java/org/apache/geronimo/deployment/plugin/remote/RemoteDeployUtil.java

Modified: geronimo/server/branches/3.0/framework/modules/geronimo-deploy-jsr88/src/main/java/org/apache/geronimo/deployment/plugin/jmx/RemoteDeploymentManager.java
URL: http://svn.apache.org/viewvc/geronimo/server/branches/3.0/framework/modules/geronimo-deploy-jsr88/src/main/java/org/apache/geronimo/deployment/plugin/jmx/RemoteDeploymentManager.java?rev=1448352&r1=1448351&r2=1448352&view=diff
==============================================================================
--- geronimo/server/branches/3.0/framework/modules/geronimo-deploy-jsr88/src/main/java/org/apache/geronimo/deployment/plugin/jmx/RemoteDeploymentManager.java (original)
+++ geronimo/server/branches/3.0/framework/modules/geronimo-deploy-jsr88/src/main/java/org/apache/geronimo/deployment/plugin/jmx/RemoteDeploymentManager.java Wed Feb 20 19:04:42 2013
@@ -160,13 +160,27 @@ public class RemoteDeploymentManager ext
 
     @Override
     public Object startInstall(File carFile, String defaultRepository, boolean restrictToDefaultRepository, String username, String password) {
-        File remoteFile = getRemoteFile(carFile);
+        File remoteFile = null;
+        try {
+            remoteFile = getRemoteFile(carFile);
+        } catch (RuntimeException e) {
+            throw e;
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
         return super.startInstall(remoteFile, defaultRepository, restrictToDefaultRepository, username, password);
     }
 
     @Override
     public Artifact installLibrary(File libFile, String groupId) throws IOException {
-        File remoteFile = getRemoteFile(libFile);
+        File remoteFile = null;
+        try {
+            remoteFile = getRemoteFile(libFile);
+        } catch (RuntimeException e) {
+            throw e;
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
         return super.installLibrary(remoteFile, groupId);
     }
 
@@ -200,7 +214,7 @@ public class RemoteDeploymentManager ext
         }
     }
     
-    private File getRemoteFile(File file) {
+    private File getRemoteFile(File file) throws Exception {
         if (isSameMachine) {
             return file;
         } else {
@@ -217,7 +231,7 @@ public class RemoteDeploymentManager ext
             
             File[] args = new File[] {file};
             
-            RemoteDeployUtil.uploadFilesToServer(args, progress);
+            RemoteDeployUtil.uploadFilesToServerException(args, progress);
             
             // RemoteDeployUtil.uploadFilesToServer updates the args parameter with the
             // new filename on the server

Modified: geronimo/server/branches/3.0/framework/modules/geronimo-deploy-jsr88/src/main/java/org/apache/geronimo/deployment/plugin/local/AbstractDeployCommand.java
URL: http://svn.apache.org/viewvc/geronimo/server/branches/3.0/framework/modules/geronimo-deploy-jsr88/src/main/java/org/apache/geronimo/deployment/plugin/local/AbstractDeployCommand.java?rev=1448352&r1=1448351&r2=1448352&view=diff
==============================================================================
--- geronimo/server/branches/3.0/framework/modules/geronimo-deploy-jsr88/src/main/java/org/apache/geronimo/deployment/plugin/local/AbstractDeployCommand.java (original)
+++ geronimo/server/branches/3.0/framework/modules/geronimo-deploy-jsr88/src/main/java/org/apache/geronimo/deployment/plugin/local/AbstractDeployCommand.java Wed Feb 20 19:04:42 2013
@@ -142,10 +142,11 @@ public abstract class AbstractDeployComm
         }
     }
 
-    protected void massageFileNames(File[] inputs) {
+    protected void massageFileNames(File[] inputs) throws Exception {
     }
 
     public URL getRemoteDeployUploadURL() throws Exception {
-       return new URL((String)kernel.getAttribute(deployer, "remoteDeployUploadURL"));
+        String remoteDeployURL = (String) kernel.getAttribute(deployer, "remoteDeployUploadURL");
+        return (remoteDeployURL == null) ? null : new URL(remoteDeployURL);
     }
 }

Modified: geronimo/server/branches/3.0/framework/modules/geronimo-deploy-jsr88/src/main/java/org/apache/geronimo/deployment/plugin/remote/DistributeCommand.java
URL: http://svn.apache.org/viewvc/geronimo/server/branches/3.0/framework/modules/geronimo-deploy-jsr88/src/main/java/org/apache/geronimo/deployment/plugin/remote/DistributeCommand.java?rev=1448352&r1=1448351&r2=1448352&view=diff
==============================================================================
--- geronimo/server/branches/3.0/framework/modules/geronimo-deploy-jsr88/src/main/java/org/apache/geronimo/deployment/plugin/remote/DistributeCommand.java (original)
+++ geronimo/server/branches/3.0/framework/modules/geronimo-deploy-jsr88/src/main/java/org/apache/geronimo/deployment/plugin/remote/DistributeCommand.java Wed Feb 20 19:04:42 2013
@@ -39,8 +39,9 @@ public class DistributeCommand extends o
         super(kernel, targetList, moduleType, moduleStream, deploymentStream);
     }
 
-    protected void massageFileNames(File[] inputs) {
-        RemoteDeployUtil.uploadFilesToServer(inputs, this);
+    @Override
+    protected void massageFileNames(File[] inputs) throws Exception {
+        RemoteDeployUtil.uploadFilesToServerException(inputs, this);
     }
     
     public void run() {

Modified: geronimo/server/branches/3.0/framework/modules/geronimo-deploy-jsr88/src/main/java/org/apache/geronimo/deployment/plugin/remote/RedeployCommand.java
URL: http://svn.apache.org/viewvc/geronimo/server/branches/3.0/framework/modules/geronimo-deploy-jsr88/src/main/java/org/apache/geronimo/deployment/plugin/remote/RedeployCommand.java?rev=1448352&r1=1448351&r2=1448352&view=diff
==============================================================================
--- geronimo/server/branches/3.0/framework/modules/geronimo-deploy-jsr88/src/main/java/org/apache/geronimo/deployment/plugin/remote/RedeployCommand.java (original)
+++ geronimo/server/branches/3.0/framework/modules/geronimo-deploy-jsr88/src/main/java/org/apache/geronimo/deployment/plugin/remote/RedeployCommand.java Wed Feb 20 19:04:42 2013
@@ -37,7 +37,8 @@ public class RedeployCommand extends org
         super(kernel, moduleIDList, moduleArchive, deploymentPlan);
     }
 
-    protected void massageFileNames(File[] inputs) {
-        RemoteDeployUtil.uploadFilesToServer(inputs, this);
+    @Override
+    protected void massageFileNames(File[] inputs) throws Exception {
+        RemoteDeployUtil.uploadFilesToServerException(inputs, this);
     }
 }

Modified: geronimo/server/branches/3.0/framework/modules/geronimo-deploy-jsr88/src/main/java/org/apache/geronimo/deployment/plugin/remote/RemoteDeployUtil.java
URL: http://svn.apache.org/viewvc/geronimo/server/branches/3.0/framework/modules/geronimo-deploy-jsr88/src/main/java/org/apache/geronimo/deployment/plugin/remote/RemoteDeployUtil.java?rev=1448352&r1=1448351&r2=1448352&view=diff
==============================================================================
--- geronimo/server/branches/3.0/framework/modules/geronimo-deploy-jsr88/src/main/java/org/apache/geronimo/deployment/plugin/remote/RemoteDeployUtil.java (original)
+++ geronimo/server/branches/3.0/framework/modules/geronimo-deploy-jsr88/src/main/java/org/apache/geronimo/deployment/plugin/remote/RemoteDeployUtil.java Wed Feb 20 19:04:42 2013
@@ -17,7 +17,12 @@
 package org.apache.geronimo.deployment.plugin.remote;
 
 import java.io.File;
+import java.io.IOException;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.List;
 
+import org.apache.geronimo.common.DeploymentException;
 import org.apache.geronimo.deployment.plugin.local.AbstractDeployCommand;
 
 /**
@@ -26,7 +31,40 @@ import org.apache.geronimo.deployment.pl
  * @version $Rev$ $Date$
  */
 public class RemoteDeployUtil {
+    
+    public static void uploadFilesToServerException(File[] files, final AbstractDeployCommand command) throws Exception {
+        URL url = command.getRemoteDeployUploadURL();
+        if (url == null) {
+            throw new DeploymentException("Cannot perform remote file upload. Remote upload service may not be running.");
+        }
+        String username = command.getCommandContext().getUsername();
+        String password = command.getCommandContext().getPassword(); 
+        FileUploadClient uploadServletClient = new FileUploadServletClient();
+        final List<Exception> exceptions = new ArrayList<Exception>();
+        uploadServletClient.uploadFilesToServer(url, username, password, files, new FileUploadProgress() {
+
+            @Override
+            public void updateStatus(String message) {
+                command.updateStatus(message);
+            }
+
+            @Override
+            public void fail(String message) {
+                exceptions.add(new IOException(message));
+            }
+
+            @Override
+            public void fail(Exception exception) {
+                exceptions.add(exception);
+            }
+            
+        });
 
+        if (!exceptions.isEmpty()) {
+            throw new DeploymentException("Remote file upload failed", exceptions);
+        }
+    }
+    
     public static void uploadFilesToServer(File[] files, AbstractDeployCommand command) {
         FileUploadClient uploadServletClient = new FileUploadServletClient();
         try {