Author: lresende
Date: Tue May 12 20:30:46 2009
New Revision: 774067

URL: http://svn.apache.org/viewvc?rev=774067&view=rev
Log:
TUSCANY-3015 - Using URI to properly escape/unescape spaces in various parts of 
the runtime

Modified:
    
tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeDocumentProcessor.java
    
tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/impl/ContributionContentProcessor.java
    
tuscany/java/sca/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeUtil.java

Modified: 
tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeDocumentProcessor.java
URL: 
http://svn.apache.org/viewvc/tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeDocumentProcessor.java?rev=774067&r1=774066&r2=774067&view=diff
==============================================================================
--- 
tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeDocumentProcessor.java
 (original)
+++ 
tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeDocumentProcessor.java
 Tue May 12 20:30:46 2009
@@ -20,9 +20,11 @@
 package org.apache.tuscany.sca.assembly.xml;
 
 import java.io.ByteArrayInputStream;
+import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
 import java.net.URI;
+import java.net.URISyntaxException;
 import java.net.URL;
 import java.net.URLConnection;
 import java.util.Collection;
@@ -83,14 +85,24 @@
        } // end if
         InputStream scdlStream = null;
         try {
-            URLConnection connection = url.openConnection();
+            URLConnection connection;
+            if (url.getProtocol().equals("file")) {
+               File scdlFile = new File(url.toURI().getPath());
+               connection = scdlFile.toURL().openConnection();
+            } else {
+               connection = url.openConnection();
+            }
             connection.setUseCaches(false);
             scdlStream = connection.getInputStream();
         } catch (IOException e) {
             ContributionReadException ce = new 
ContributionReadException("Exception reading " + uri, e);
             error("ContributionReadException", url, ce);
             throw ce;
-        }
+        } catch (URISyntaxException e) {
+               ContributionReadException ce = new 
ContributionReadException("Exception reading " + uri, e);
+               error("ContributionReadException", url, ce);
+               throw ce;
+               }
         return read(uri, scdlStream);
     }
 

Modified: 
tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/impl/ContributionContentProcessor.java
URL: 
http://svn.apache.org/viewvc/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/impl/ContributionContentProcessor.java?rev=774067&r1=774066&r2=774067&view=diff
==============================================================================
--- 
tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/impl/ContributionContentProcessor.java
 (original)
+++ 
tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/impl/ContributionContentProcessor.java
 Tue May 12 20:30:46 2009
@@ -116,7 +116,7 @@
         ContributionScanner scanner = 
scanners.getContributionScanner(contributionURL.getProtocol());
         if (scanner == null) {
             try {
-                if ("file".equals(contributionURL.getProtocol()) && new 
File(contributionURL.toURI()).isDirectory()) {
+                if ("file".equals(contributionURL.getProtocol()) && new 
File(contributionURL.toURI().getPath()).isDirectory()) {
                     scanner = new DirectoryContributionScanner();
                 } else {
                     scanner = new JarContributionScanner();

Modified: 
tuscany/java/sca/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeUtil.java
URL: 
http://svn.apache.org/viewvc/tuscany/java/sca/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeUtil.java?rev=774067&r1=774066&r2=774067&view=diff
==============================================================================
--- 
tuscany/java/sca/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeUtil.java
 (original)
+++ 
tuscany/java/sca/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeUtil.java
 Tue May 12 20:30:46 2009
@@ -47,10 +47,18 @@
      * @return
      */
     static URI createURI(String uri) {
-        if (uri.indexOf(' ') != -1) {
-            uri = uri.replace(" ", "%20");
-        }
-        return URI.create(uri);
+       URI returnURI = null;
+       
+       try {
+               returnURI = URI.create(uri);
+       } catch( Exception e) {
+               try {
+                       returnURI = new URI(null, uri, null);
+               } catch (Exception ee) {
+                       throw new IllegalArgumentException("Invalid URI :" + 
uri, ee);
+               }
+       }
+       return returnURI;
     }
 
 }


Reply via email to