vgritsenko 02/02/06 20:37:42 Modified: src/java/org/apache/cocoon/sitemap Handler.java Manager.java SitemapManager.java Log: Decouple dependency on programming languages from SitemapManager. Now it should be easier (a little bit) to incorporate any other sitemap language implementation. Revision Changes Path 1.9 +3 -4 xml-cocoon2/src/java/org/apache/cocoon/sitemap/Handler.java Index: Handler.java =================================================================== RCS file: /home/cvs/xml-cocoon2/src/java/org/apache/cocoon/sitemap/Handler.java,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- Handler.java 4 Feb 2002 14:05:18 -0000 1.8 +++ Handler.java 7 Feb 2002 04:37:42 -0000 1.9 @@ -89,7 +89,7 @@ * @author <a href="mailto:[EMAIL PROTECTED]">Carsten Ziegeler</a> * @author <a href="mailto:[EMAIL PROTECTED]">Giacomo Pati</a> * @author <a href="mailto:[EMAIL PROTECTED]">Stefano Mazzocchi</a> - * @version CVS $Id: Handler.java,v 1.8 2002/02/04 14:05:18 cziegeler Exp $ + * @version CVS $Id: Handler.java,v 1.9 2002/02/07 04:37:42 vgritsenko Exp $ */ public class Handler extends AbstractLoggable implements Runnable, Contextualizable, Composable, Processor, Disposable, SourceResolver { @@ -269,7 +269,6 @@ * Needed because we never have the opportunity to handle the lifecycle of the * XSLTFactoryLoader, since it is created by the Xalan engine. */ - XSLTFactoryLoader.setLogger(getLogger()); programGenerator = (ProgramGenerator)this.manager.lookup(ProgramGenerator.ROLE); smap = (Sitemap)programGenerator.load(this.manager, this.sourceFileName, markupLanguage, @@ -279,8 +278,8 @@ } this.sitemap = smap; // add the source factory for the cocoon protocol - this.sourceHandler.addFactory("cocoon", new CocoonSourceFactory(this.sitemap, - this.sitemap.getComponentManager())); + this.sourceHandler.addFactory("cocoon", + new CocoonSourceFactory(this.sitemap, this.sitemap.getComponentManager())); getLogger().debug("Sitemap regeneration complete"); if (this.sitemap != null) { getLogger().debug("The sitemap has been successfully compiled!"); 1.8 +9 -10 xml-cocoon2/src/java/org/apache/cocoon/sitemap/Manager.java Index: Manager.java =================================================================== RCS file: /home/cvs/xml-cocoon2/src/java/org/apache/cocoon/sitemap/Manager.java,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- Manager.java 5 Feb 2002 13:43:51 -0000 1.7 +++ Manager.java 7 Feb 2002 04:37:42 -0000 1.8 @@ -86,17 +86,11 @@ * checking regeneration of the sub <code>Sitemap</code> * * @author <a href="mailto:[EMAIL PROTECTED]">Giacomo Pati</a> - * @version CVS $Id: Manager.java,v 1.7 2002/02/05 13:43:51 cziegeler Exp $ + * @version CVS $Id: Manager.java,v 1.8 2002/02/07 04:37:42 vgritsenko Exp $ */ -public class Manager - extends AbstractLoggable - implements Component, - Configurable, - Composable, - Contextualizable, - ThreadSafe, - LogKitManageable, - Disposable +public class Manager extends AbstractLoggable + implements Component, Configurable, Composable, Contextualizable, + ThreadSafe, LogKitManageable, Disposable { protected Context context; @@ -238,6 +232,11 @@ } } return false; + } + + protected void generateSitemap(String sitemapFileName, Environment environment) + throws Exception { + getHandler(this.manager, environment, sitemapFileName, true, false); } private Handler getHandler(final ComponentManager newManager, 1.8 +5 -33 xml-cocoon2/src/java/org/apache/cocoon/sitemap/SitemapManager.java Index: SitemapManager.java =================================================================== RCS file: /home/cvs/xml-cocoon2/src/java/org/apache/cocoon/sitemap/SitemapManager.java,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- SitemapManager.java 5 Feb 2002 13:43:51 -0000 1.7 +++ SitemapManager.java 7 Feb 2002 04:37:42 -0000 1.8 @@ -68,7 +68,6 @@ import org.apache.cocoon.ProcessingException; import org.apache.cocoon.Processor; import org.apache.cocoon.components.language.generator.CompiledComponent; -import org.apache.cocoon.components.language.generator.ProgramGenerator; import org.apache.cocoon.components.parser.Parser; import org.apache.cocoon.components.pipeline.EventPipeline; import org.apache.cocoon.components.pipeline.StreamPipeline; @@ -81,11 +80,11 @@ import java.io.InputStream; /** - * A <code>Processor</code> based on sitemap language files compiled - * to Java code. + * A <code>Processor</code> based on the sitemap language files. * * @author <a href="mailto:[EMAIL PROTECTED]">Sylvain Wallez</a> - * @version CVS $Id: SitemapManager.java,v 1.7 2002/02/05 13:43:51 cziegeler Exp $ + * @author <a href="mailto:[EMAIL PROTECTED]">Vadim Gritsenko</a> + * @version CVS $Id: SitemapManager.java,v 1.8 2002/02/07 04:37:42 vgritsenko Exp $ */ public class SitemapManager extends Manager implements Processor, Configurable { @@ -150,35 +149,8 @@ /** * Process the given <code>Environment</code> to generate the sitemap. */ - public void generateSitemap(Environment environment) - throws Exception { - ProgramGenerator programGenerator = null; - SourceHandler oldSourceHandler = environment.getSourceHandler(); - SourceHandler sourceHandler = null; - try { - programGenerator = (ProgramGenerator) this.manager.lookup(ProgramGenerator.ROLE); - sourceHandler = (SourceHandler) this.manager.lookup(SourceHandler.ROLE); - environment.setSourceHandler(sourceHandler); - String markupLanguage = "sitemap"; - String programmingLanguage = "java"; - - getLogger().debug("Sitemap regeneration begin:" + sitemapFileName); - CompiledComponent smap = programGenerator.load(this.manager, sitemapFileName, markupLanguage, programmingLanguage, environment); - getLogger().debug("Sitemap regeneration complete"); - - if (smap != null) { - getLogger().debug("Main: The sitemap has been successfully compiled!"); - } else { - getLogger().debug("Main: No errors, but the sitemap has not been set."); - } - } catch (Exception e) { - getLogger().error("Main: Error compiling sitemap", e); - throw e; - } finally { - environment.setSourceHandler(oldSourceHandler); - if (programGenerator != null) this.manager.release(programGenerator); - if (sourceHandler != null) this.manager.release(sourceHandler); - } + public void generateSitemap(Environment environment) throws Exception { + super.generateSitemap(this.sitemapFileName, environment); } /**
---------------------------------------------------------------------- In case of troubles, e-mail: [EMAIL PROTECTED] To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]