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