You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by rf...@apache.org on 2009/07/02 08:23:12 UTC

svn commit: r790470 - in /tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution: processor/impl/ContributionContentProcessor.java scanner/impl/DirectoryContributionScanner.java

Author: rfeng
Date: Thu Jul  2 06:23:11 2009
New Revision: 790470

URL: http://svn.apache.org/viewvc?rev=790470&view=rev
Log:
Fix the algorithm to create File from URL

Modified:
    tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/impl/ContributionContentProcessor.java
    tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/scanner/impl/DirectoryContributionScanner.java

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=790470&r1=790469&r2=790470&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 Thu Jul  2 06:23:11 2009
@@ -102,6 +102,20 @@
         return Contribution.class;
     }
 
+    private File toFile(URL url) {
+        if("file".equalsIgnoreCase(url.getProtocol())) {
+            try {
+                return new File(url.toURI());
+            } catch(URISyntaxException e) {
+                return new File(url.getPath());
+            } catch(IllegalArgumentException e) {
+                // Hack for file:./a.txt or file:../a/c.wsdl
+                return new File(url.getPath());
+            }
+        }
+        return null;
+    }
+
     public Contribution read(URL parentURL, URI contributionURI, URL contributionURL) throws ContributionReadException {
 
         // Create contribution model
@@ -115,16 +129,12 @@
         // Create a contribution scanner
         ContributionScanner scanner = scanners.getContributionScanner(contributionURL.getProtocol());
         if (scanner == null) {
-            //try {
-                if ("file".equals(contributionURL.getProtocol()) && 
-                    new File(contributionURL.getFile()).isDirectory()) {
-                    scanner = new DirectoryContributionScanner();
-                } else {
-                    scanner = new JarContributionScanner();
-                }
-            //} catch (URISyntaxException e) {
-            //    throw new ContributionReadException(e);
-            //}
+            File file = toFile(contributionURL);
+            if (file != null && file.isDirectory()) {
+                scanner = new DirectoryContributionScanner();
+            } else {
+                scanner = new JarContributionScanner();
+            }
         }
 
         // Scan the contribution and list the artifacts contained in it

Modified: tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/scanner/impl/DirectoryContributionScanner.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/scanner/impl/DirectoryContributionScanner.java?rev=790470&r1=790469&r2=790470&view=diff
==============================================================================
--- tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/scanner/impl/DirectoryContributionScanner.java (original)
+++ tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/scanner/impl/DirectoryContributionScanner.java Thu Jul  2 06:23:11 2009
@@ -98,10 +98,15 @@
 
     private static File directory(Contribution contribution) throws ContributionReadException {
         File file;
+        URI uri = null;
         try {
-            file = new File(new URI(contribution.getLocation()));
+            uri = new URI(contribution.getLocation());
+            file = new File(uri);
         } catch (URISyntaxException e) {
             throw new ContributionReadException(e);
+        } catch(IllegalArgumentException e) {
+            // Hack for file:./a.txt or file:../a/c.wsdl
+            return new File(uri.getPath());
         }
         if (!file.exists() || !file.isDirectory()) {
             throw new ContributionReadException(contribution.getLocation());