You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by vg...@apache.org on 2007/11/20 03:39:06 UTC

svn commit: r596516 - /cocoon/trunk/core/cocoon-sitemap/cocoon-sitemap-impl/src/main/java/org/apache/cocoon/core/container/spring/avalon/ConfigurationReader.java

Author: vgritsenko
Date: Mon Nov 19 18:39:04 2007
New Revision: 596516

URL: http://svn.apache.org/viewvc?rev=596516&view=rev
Log:
ResourceUtils.getUri() could not handle SourceResource,
which ConfigurationReader.getUrl() handles specially.
To avoid exception, copied correctUrl to ConfigurationReader.

Modified:
    cocoon/trunk/core/cocoon-sitemap/cocoon-sitemap-impl/src/main/java/org/apache/cocoon/core/container/spring/avalon/ConfigurationReader.java

Modified: cocoon/trunk/core/cocoon-sitemap/cocoon-sitemap-impl/src/main/java/org/apache/cocoon/core/container/spring/avalon/ConfigurationReader.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-sitemap/cocoon-sitemap-impl/src/main/java/org/apache/cocoon/core/container/spring/avalon/ConfigurationReader.java?rev=596516&r1=596515&r2=596516&view=diff
==============================================================================
--- cocoon/trunk/core/cocoon-sitemap/cocoon-sitemap-impl/src/main/java/org/apache/cocoon/core/container/spring/avalon/ConfigurationReader.java (original)
+++ cocoon/trunk/core/cocoon-sitemap/cocoon-sitemap-impl/src/main/java/org/apache/cocoon/core/container/spring/avalon/ConfigurationReader.java Mon Nov 19 18:39:04 2007
@@ -168,6 +168,25 @@
         return url;
     }
 
+    /**
+     * Copied from {@link ResourceUtils#correctUri(String)}. Comment says:
+     * <br><blockquote>
+     * If it is a file we have to recreate the url, otherwise we get problems
+     * under windows with some file references starting with "/DRIVELETTER" and
+     * some just with "DRIVELETTER".
+     * </blockquote>
+     * @param url to correct
+     * @return corrected (or same) url
+     */
+    protected String correctUrl(String url) {
+        if (url.startsWith("file:")) {
+            final File f = new File(url.substring(5));
+            return "file://" + f.getAbsolutePath();
+        }
+
+        return url;
+    }
+
     protected String getUrl(Resource rsrc)
     throws IOException {
         if (rsrc instanceof SourceResource) {
@@ -526,7 +545,7 @@
                            final Configuration includeStatement)
     throws ConfigurationException, IOException {
         // If already loaded: do nothing
-        final String uri = ResourceUtils.getUri(src);
+        final String uri = correctUrl(getUrl(src));
         if (!loadedURIs.contains(uri)) {
             if (this.logger.isDebugEnabled()) {
                 this.logger.debug("Loading configuration: " + uri);
@@ -597,7 +616,7 @@
                     if ( resources != null ) {
                         Arrays.sort(resources, ResourceUtils.getResourceComparator());
                         for(int i=0; i < resources.length; i++) {
-                           this.configInfo.addImport(this.getUrl(resources[i]));
+                           this.configInfo.addImport(getUrl(resources[i]));
                         }
                     }
                 } catch (IOException ioe) {