svn commit: r603529 - /lenya/trunk/src/modules-core/linking/java/src/org/apache/lenya/cms/linking/LinkConverter.java

[email protected]
Newsgroups gmane.comp.cms.lenya.cvs
Message-ID <[email protected]>
Author: andreas
Date: Wed Dec 12 02:01:58 2007
New Revision: 603529

URL: http://svn.apache.org/viewvc?rev=603529&view=rev
Log:
LinkConverter: if srcPub != destPub, convert URLs to destPub URLs before url2uuid conversion.

Modified:
    lenya/trunk/src/modules-core/linking/java/src/org/apache/lenya/cms/linking/LinkConverter.java

Modified: lenya/trunk/src/modules-core/linking/java/src/org/apache/lenya/cms/linking/LinkConverter.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules-core/linking/java/src/org/apache/lenya/cms/linking/LinkConverter.java?rev=603529&r1=603528&r2=603529&view=diff
==============================================================================
--- lenya/trunk/src/modules-core/linking/java/src/org/apache/lenya/cms/linking/LinkConverter.java (original)
+++ lenya/trunk/src/modules-core/linking/java/src/org/apache/lenya/cms/linking/LinkConverter.java Wed Dec 12 02:01:58 2007
@@ -82,7 +82,8 @@
                             "Convert links: No XPaths for resource type [" + type.getName() + "]");
                 }
             } else {
-                LinkRewriter incomingRewriter = new IncomingLinkRewriter(examinedDocument.getPublication());
+                Publication pub = examinedDocument.getPublication();
+                LinkRewriter incomingRewriter = new IncomingLinkRewriter(pub);
                 LinkRewriter urlToUuidRewriter = new UrlToUuidRewriter(examinedDocument.area());
 
                 org.w3c.dom.Document xml = DocumentHelper.readDocument(examinedDocument
@@ -106,17 +107,20 @@
                             getLogger().debug("Convert links: Check URL [" + url + "]");
                         }
                         final String originalUrl = url.startsWith(prefix) ? url.substring(prefix.length()) : url;
-                        final String webappUrl;
+                        final String srcPubUrl;
                         if (incomingRewriter.matches(originalUrl)) {
-                            webappUrl = incomingRewriter.rewrite(originalUrl);
+                            srcPubUrl = incomingRewriter.rewrite(originalUrl);
                         } else {
-                            webappUrl = originalUrl;
+                            srcPubUrl = originalUrl;
                         }
-                        
-                        if (urlToUuidRewriter.matches(webappUrl)) {
-                            String rewrittenUrl = urlToUuidRewriter.rewrite(webappUrl);
-                            attribute.setValue(rewrittenUrl);
-                            linksRewritten = true;
+                        final String srcPubPrefix = "/" + srcPub.getId() + "/";
+                        if (srcPubUrl.startsWith(srcPubPrefix)) {
+                            final String destPubUrl = "/" + pub.getId() + "/" + srcPubUrl.substring(srcPubPrefix.length());
+                            if (urlToUuidRewriter.matches(destPubUrl)) {
+                                String rewrittenUrl = urlToUuidRewriter.rewrite(destPubUrl);
+                                attribute.setValue(rewrittenUrl);
+                                linksRewritten = true;
+                            }
                         }
                     }
                 }
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.