upayavira 2003/10/21 14:48:32
Modified: src/java/org/apache/cocoon/bean CocoonBean.java
src/java/org/apache/cocoon/bean/helpers Crawler.java
src/java/org/apache/cocoon/sitemap LinkTranslator.java
Log:
Fixing broken link translation - LinkTranslator was set to be cachable, which
meant that links were translated with getType(), translations worked out, and
then getPage() got the cached version back which was created before the
translation had been done.
Also fixed a problem with the allTranslatedLinks map where already translated
links weren't accessed correctly.
Revision Changes Path
1.38 +5 -1
cocoon-2.1/src/java/org/apache/cocoon/bean/CocoonBean.java
Index: CocoonBean.java
===================================================================
RCS file:
/home/cvs/cocoon-2.1/src/java/org/apache/cocoon/bean/CocoonBean.java,v
retrieving revision 1.37
retrieving revision 1.38
diff -u -r1.37 -r1.38
--- CocoonBean.java 17 Oct 2003 14:08:29 -0000 1.37
+++ CocoonBean.java 21 Oct 2003 21:48:32 -0000 1.38
@@ -497,6 +497,10 @@
}
}
}
+ } else {
+ String originalURI = linkTarget.getOriginalSourceURI();
+ linkTarget = crawler.getTranslatedLink(linkTarget);
+ linkTarget.setOriginalURI(originalURI);
}
translatedLinks.put(linkTarget.getOriginalSourceURI(),
linkTarget.getTranslatedURI(target.getPath()));
1.3 +7 -2
cocoon-2.1/src/java/org/apache/cocoon/bean/helpers/Crawler.java
Index: Crawler.java
===================================================================
RCS file:
/home/cvs/cocoon-2.1/src/java/org/apache/cocoon/bean/helpers/Crawler.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- Crawler.java 9 Oct 2003 17:37:32 -0000 1.2
+++ Crawler.java 21 Oct 2003 21:48:32 -0000 1.3
@@ -107,12 +107,17 @@
}
public void addTranslatedLink(Target target) throws ProcessingException {
- allTranslatedLinks.put(target.getSourceURI(),
target.getDestinationURI());
+ allTranslatedLinks.put(target.getSourceURI(), target);
}
public boolean hasTranslatedLink(Target link) {
return allTranslatedLinks.get(link.getSourceURI())!=null;
}
+
+ public Target getTranslatedLink(Target link) {
+ return (Target) allTranslatedLinks.get(link.getSourceURI());
+ }
+
/**
* Returns an iterator for reading targets
*/
1.4 +2 -22
cocoon-2.1/src/java/org/apache/cocoon/sitemap/LinkTranslator.java
Index: LinkTranslator.java
===================================================================
RCS file:
/home/cvs/cocoon-2.1/src/java/org/apache/cocoon/sitemap/LinkTranslator.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- LinkTranslator.java 5 Sep 2003 11:40:41 -0000 1.3
+++ LinkTranslator.java 21 Oct 2003 21:48:32 -0000 1.4
@@ -70,7 +70,7 @@
* @author <a href="mailto:[EMAIL PROTECTED]">Stefano Mazzocchi</a>
* @version CVS $Id$
*/
-public class LinkTranslator extends ExtendedXLinkPipe implements
Transformer, CacheableProcessingComponent {
+public class LinkTranslator extends ExtendedXLinkPipe implements Transformer
{
private Map links;
@@ -81,26 +81,6 @@
public void setup(SourceResolver resolver, Map objectModel, String src,
Parameters par)
throws ProcessingException, SAXException, IOException {
this.links = (Map)objectModel.get(Constants.LINK_OBJECT);
- }
-
- /**
- * Generate the unique key.
- * This key must be unique inside the space of this component.
- *
- * @return The generated key hashes the src
- */
- public java.io.Serializable getKey() {
- return "1";
- }
-
- /**
- * Generate the validity object.
- *
- * @return The generated validity object or <code>null</code> if the
- * component is currently not cacheable.
- */
- public SourceValidity getValidity() {
- return NOPValidity.SHARED_INSTANCE;
}
public void simpleLink(String href, String role, String arcrole,