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 2005/02/17 17:05:11 UTC

svn commit: r154163 - in lenya/branches/BRANCH_1_2_X/src/java/org/apache/lenya/cms: ant/LinkRewriteTask.java publication/util/LinkRewriter.java

Author: andreas
Date: Thu Feb 17 08:05:09 2005
New Revision: 154163

URL: http://svn.apache.org/viewcvs?view=rev&rev=154163
Log:
link rewriting: take care of context prefix, don't try to rewrite external links

Modified:
    lenya/branches/BRANCH_1_2_X/src/java/org/apache/lenya/cms/ant/LinkRewriteTask.java
    lenya/branches/BRANCH_1_2_X/src/java/org/apache/lenya/cms/publication/util/LinkRewriter.java

Modified: lenya/branches/BRANCH_1_2_X/src/java/org/apache/lenya/cms/ant/LinkRewriteTask.java
URL: http://svn.apache.org/viewcvs/lenya/branches/BRANCH_1_2_X/src/java/org/apache/lenya/cms/ant/LinkRewriteTask.java?view=diff&r1=154162&r2=154163
==============================================================================
--- lenya/branches/BRANCH_1_2_X/src/java/org/apache/lenya/cms/ant/LinkRewriteTask.java (original)
+++ lenya/branches/BRANCH_1_2_X/src/java/org/apache/lenya/cms/ant/LinkRewriteTask.java Thu Feb 17 08:05:09 2005
@@ -115,7 +115,7 @@
             Document newTargetDocument = builder.buildDocument(pub, newTargetUrl);
             
             LinkRewriter rewriter = new LinkRewriter();
-            rewriter.rewriteLinks(oldTargetDocument, newTargetDocument);
+            rewriter.rewriteLinks(oldTargetDocument, newTargetDocument, getContextPrefix());
             
         } catch (Exception e) {
             throw new BuildException(e);

Modified: lenya/branches/BRANCH_1_2_X/src/java/org/apache/lenya/cms/publication/util/LinkRewriter.java
URL: http://svn.apache.org/viewcvs/lenya/branches/BRANCH_1_2_X/src/java/org/apache/lenya/cms/publication/util/LinkRewriter.java?view=diff&r1=154162&r2=154163
==============================================================================
--- lenya/branches/BRANCH_1_2_X/src/java/org/apache/lenya/cms/publication/util/LinkRewriter.java (original)
+++ lenya/branches/BRANCH_1_2_X/src/java/org/apache/lenya/cms/publication/util/LinkRewriter.java Thu Feb 17 08:05:09 2005
@@ -70,8 +70,10 @@
      * language versions.
      * @param originalTargetDocument The original target document.
      * @param newTargetDocument The new target document.
+     * @param contextPath The servlet context path.
      */
-    public void rewriteLinks(Document originalTargetDocument, Document newTargetDocument) {
+    public void rewriteLinks(Document originalTargetDocument, Document newTargetDocument,
+            String contextPath) {
 
         Publication publication = originalTargetDocument.getPublication();
         String area = originalTargetDocument.getArea();
@@ -83,7 +85,7 @@
             for (int fileIndex = 0; fileIndex < files.length; fileIndex++) {
                 org.w3c.dom.Document xmlDocument = DocumentHelper.readDocument(files[fileIndex]);
                 boolean linksRewritten = false;
-                
+
                 String[] xPaths = publication.getRewriteAttributeXPaths();
                 for (int xPathIndex = 0; xPathIndex < xPaths.length; xPathIndex++) {
                     NodeList nodes = XPathAPI.selectNodeList(xmlDocument, xPaths[xPathIndex]);
@@ -94,21 +96,26 @@
                                     + "] may only match attribute nodes!");
                         }
                         Attr attribute = (Attr) node;
-                        String url = attribute.getValue();
-                        if (builder.isDocument(publication, url)) {
-                            Document targetDocument = builder.buildDocument(publication, url);
-
-                            if (matches(targetDocument, originalTargetDocument)) {
-                                String newTargetUrl = getNewTargetURL(targetDocument,
-                                        originalTargetDocument,
-                                        newTargetDocument);
-                                attribute.setValue(newTargetUrl);
-                                linksRewritten = true;
+                        final String url = attribute.getValue();
+
+                        if (url.startsWith(contextPath + "/" + publication.getId())) {
+                            final String webappUrl = url.substring(contextPath.length());
+                            
+                            if (builder.isDocument(publication, webappUrl)) {
+                                Document targetDocument = builder.buildDocument(publication, webappUrl);
+
+                                if (matches(targetDocument, originalTargetDocument)) {
+                                    String newTargetUrl = getNewTargetURL(targetDocument,
+                                            originalTargetDocument,
+                                            newTargetDocument);
+                                    attribute.setValue(contextPath + newTargetUrl);
+                                    linksRewritten = true;
+                                }
                             }
                         }
                     }
                 }
-                
+
                 if (linksRewritten) {
                     DocumentHelper.writeDocument(xmlDocument, files[fileIndex]);
                 }



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