You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lenya.apache.org by an...@apache.org on 2006/07/28 11:23:44 UTC

svn commit: r426451 - /lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/LinkRewriterImpl.java

Author: andreas
Date: Fri Jul 28 02:23:44 2006
New Revision: 426451

URL: http://svn.apache.org/viewvc?rev=426451&view=rev
Log:
Fixed LinkRewriter URL handling

Modified:
    lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/LinkRewriterImpl.java

Modified: lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/LinkRewriterImpl.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/LinkRewriterImpl.java?rev=426451&r1=426450&r2=426451&view=diff
==============================================================================
--- lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/LinkRewriterImpl.java (original)
+++ lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/LinkRewriterImpl.java Fri Jul 28 02:23:44 2006
@@ -188,8 +188,8 @@
      * @return A boolean value.
      */
     protected boolean matches(Document targetDocument, Document originalTargetDocument) {
-        String matchString = originalTargetDocument.getId() + "/";
-        String testString = targetDocument.getId() + "/";
+        String matchString = originalTargetDocument.getPath() + "/";
+        String testString = targetDocument.getPath() + "/";
         return testString.startsWith(matchString);
     }
 
@@ -202,21 +202,26 @@
      */
     protected String getNewTargetURL(Document targetDocument, Document originalTargetDocument,
             Document newTargetDocument) {
-        String originalId = originalTargetDocument.getId();
-        String targetId = targetDocument.getId();
+        String originalId = originalTargetDocument.getPath();
+        String targetId = targetDocument.getPath();
         String childString = targetId.substring(originalId.length());
-
+        
         ServiceSelector selector = null;
         DocumentBuilder builder = null;
         try {
             selector = (ServiceSelector) this.manager.lookup(DocumentBuilder.ROLE + "Selector");
             builder = (DocumentBuilder) selector.select(originalTargetDocument.getPublication()
                     .getDocumentBuilderHint());
-            
+
             DocumentLocator locator = newTargetDocument.getLocator();
-            DocumentLocator child = locator.getDescendant(childString);
-            String newTargetUrl = builder.buildCanonicalUrl(child);
-            return newTargetUrl;
+            DocumentLocator newLocator;
+            if (childString.length() == 0) {
+                newLocator = locator;
+            }
+            else {
+                newLocator = locator.getDescendant(childString);
+            }
+            return builder.buildCanonicalUrl(newLocator);
         } catch (ServiceException e) {
             throw new RuntimeException(e);
         } finally {



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@lenya.apache.org
For additional commands, e-mail: commits-help@lenya.apache.org