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 2007/11/20 12:39:13 UTC
svn commit: r596631 -
/lenya/trunk/src/modules-core/linking/java/src/org/apache/lenya/cms/cocoon/source/DocumentSourceFactory.java
Author: andreas
Date: Tue Nov 20 03:39:12 2007
New Revision: 596631
URL: http://svn.apache.org/viewvc?rev=596631&view=rev
Log:
DocumentSourceFactory: Provide available context information to links
Modified:
lenya/trunk/src/modules-core/linking/java/src/org/apache/lenya/cms/cocoon/source/DocumentSourceFactory.java
Modified: lenya/trunk/src/modules-core/linking/java/src/org/apache/lenya/cms/cocoon/source/DocumentSourceFactory.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules-core/linking/java/src/org/apache/lenya/cms/cocoon/source/DocumentSourceFactory.java?rev=596631&r1=596630&r2=596631&view=diff
==============================================================================
--- lenya/trunk/src/modules-core/linking/java/src/org/apache/lenya/cms/cocoon/source/DocumentSourceFactory.java (original)
+++ lenya/trunk/src/modules-core/linking/java/src/org/apache/lenya/cms/cocoon/source/DocumentSourceFactory.java Tue Nov 20 03:39:12 2007
@@ -39,12 +39,14 @@
import org.apache.excalibur.source.SourceException;
import org.apache.excalibur.source.SourceFactory;
import org.apache.excalibur.source.SourceResolver;
+import org.apache.lenya.cms.linking.Link;
import org.apache.lenya.cms.linking.LinkResolver;
import org.apache.lenya.cms.linking.LinkTarget;
import org.apache.lenya.cms.publication.Document;
import org.apache.lenya.cms.publication.DocumentException;
import org.apache.lenya.cms.publication.DocumentFactory;
import org.apache.lenya.cms.publication.DocumentUtil;
+import org.apache.lenya.cms.publication.URLInformation;
import org.apache.lenya.util.Query;
import org.apache.lenya.util.ServletHelper;
@@ -130,7 +132,9 @@
target = resolver.resolve(currentDoc, linkUri);
}
else {
- target = resolver.resolve(factory, linkUri);
+ Link link = new Link(linkUri);
+ contextualize(link, webappUrl);
+ target = resolver.resolve(factory, link.getUri());
}
Document doc = target.getDocument();
@@ -161,6 +165,21 @@
throw new RuntimeException(e);
}
+ }
+
+ /**
+ * If the link doesn't contain context information (publication ID, area), provide it.
+ * @param link The link.
+ * @param webappUrl The web application URL to extract the context information from..
+ */
+ protected void contextualize(Link link, String webappUrl) {
+ URLInformation url = new URLInformation(webappUrl);
+ if (link.getPubId() == null) {
+ link.setPubId(url.getPublicationId());
+ }
+ if (link.getArea() == null) {
+ link.setArea(url.getArea());
+ }
}
protected Source getFormatSource(Document doc, String format) throws DocumentException,
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@lenya.apache.org
For additional commands, e-mail: commits-help@lenya.apache.org