You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by da...@apache.org on 2004/10/05 03:58:59 UTC

svn commit: rev 53774 - geronimo/trunk/modules/deployment/src/java/org/apache/geronimo/deployment

Author: dain
Date: Mon Oct  4 18:58:58 2004
New Revision: 53774

Modified:
   geronimo/trunk/modules/deployment/src/java/org/apache/geronimo/deployment/Deployer.java
Log:
Fixed resolution of URIs for windows


Modified: geronimo/trunk/modules/deployment/src/java/org/apache/geronimo/deployment/Deployer.java
==============================================================================
--- geronimo/trunk/modules/deployment/src/java/org/apache/geronimo/deployment/Deployer.java	(original)
+++ geronimo/trunk/modules/deployment/src/java/org/apache/geronimo/deployment/Deployer.java	Mon Oct  4 18:58:58 2004
@@ -224,11 +224,7 @@
         try {
             command.install = cmd.hasOption('I');
             if (cmd.hasOption('o')) {
-                URI uri = getURI(cmd.getOptionValue('o'));
-                if (!"file".equals(uri.getScheme())) {
-                    throw new DeploymentException("Output file can only be written to the local file system");
-                }
-                command.carFile = new File(uri);
+                command.carFile = new File(cmd.getOptionValue('o'));
             }
             if (cmd.hasOption('p')) {
                 URI uri = getURI(cmd.getOptionValue('p'));
@@ -290,6 +286,14 @@
     }
 
     private static URI getURI(String location) throws DeploymentException {
+		// on windows the location may be an absolute path including a drive letter
+		// this will cause uri.resolve to fail because of the presence of a ':' character
+		// to stop this we first try locating the uri using a File object
+		File file = new File(location);
+		if (file.exists() && file.canRead()) {
+			return file.toURI();
+		}
+
         URI uri = new File(".").toURI().resolve(location);
         if (!"file".equals(uri.getScheme()) && uri.getPath().endsWith("/")) {
             throw new DeploymentException("Unpacked modules can only be loaded from the local file system");