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,