Hi,
This change is causing issues for web applications under Jetty (more
generally, if the path contains spaces encoded as %20). For example, new
URL(file:/C:/My%20Dir).getFile() returns "/C:/My%20Dir", but new
File("/C:/My%20Dir") doesn't work.
We can use new File(URI) to create a File out of URI (for URL, we call
URL.toURI() first) but new File(URI) throws IllegalArgumentException for
opaque URIs such as file:./x.txt or file:../../a/b/c.txt (These file URIs
are not valid anyway but some people use it).
I fixed the issue under r790470 but we might need to have a general utility
(in a module like common-java) to deal with URL/URI/File conversions.
Thanks,
Raymond
--------------------------------------------------
From: <[email protected]>
Sent: Wednesday, June 24, 2009 8:39 AM
To: <[email protected]>
Subject: svn commit: r788055 - in
/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution:
java/impl/ContributionHelper.java
processor/impl/ContributionContentProcessor.java
Author: slaws
Date: Wed Jun 24 15:39:38 2009
New Revision: 788055
URL: http://svn.apache.org/viewvc?rev=788055&view=rev
Log:
Deal with file: protocol that doesn't populate the path part of the URL
Modified:
tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/java/impl/ContributionHelper.java
tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/impl/ContributionContentProcessor.java
Modified:
tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/java/impl/ContributionHelper.java
URL:
http://svn.apache.org/viewvc/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/java/impl/ContributionHelper.java?rev=788055&r1=788054&r2=788055&view=diff
==============================================================================
---
tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/java/impl/ContributionHelper.java
(original)
+++
tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/java/impl/ContributionHelper.java
Wed Jun 24 15:39:38 2009
@@ -38,7 +38,7 @@
List<URL> urls = new ArrayList<URL>();
boolean isZipContribution =
contribution.getLocation().endsWith(".zip");
URI uri = URI.create(contribution.getLocation());
- boolean isFolderContribution = !isZipContribution &&
uri.getScheme().equals("file") && new File(uri).isDirectory();
+ boolean isFolderContribution = !isZipContribution &&
uri.getScheme().equals("file") && new
File(uri.getSchemeSpecificPart()).isDirectory();
if (isZipContribution || isFolderContribution) {
for (Artifact a : contribution.getArtifacts()) {
if (a.getLocation().endsWith(".jar")) {
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=788055&r1=788054&r2=788055&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
Wed Jun 24 15:39:38 2009
@@ -115,15 +115,16 @@
// Create a contribution scanner
ContributionScanner scanner =
scanners.getContributionScanner(contributionURL.getProtocol());
if (scanner == null) {
- try {
- if ("file".equals(contributionURL.getProtocol()) && new
File(contributionURL.toURI().getPath()).isDirectory()) {
+ //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);
- }
+ //} catch (URISyntaxException e) {
+ // throw new ContributionReadException(e);
+ //}
}
// Scan the contribution and list the artifacts contained in it