cziegeler 01/07/06 02:58:45 Modified: src/org/apache/cocoon/acting Tag: cocoon_20_branch AbstractComplementaryConfigurableAction.java src/org/apache/cocoon/components/language/markup/xsp Tag: cocoon_20_branch XSPFormValidatorHelper.java XSPGenerator.java src/org/apache/cocoon/components/source Tag: cocoon_20_branch SitemapSource.java URLSource.java src/org/apache/cocoon/environment Tag: cocoon_20_branch Source.java src/org/apache/cocoon/generation Tag: cocoon_20_branch FileGenerator.java HTMLGenerator.java src/org/apache/cocoon/transformation Tag: cocoon_20_branch CIncludeTransformer.java I18nTransformer.java Log: Using Source streaming instead of directly parsing Revision Changes Path No revision No revision 1.3.2.1 +10 -18 xml-cocoon2/src/org/apache/cocoon/acting/AbstractComplementaryConfigurableAction.java Index: AbstractComplementaryConfigurableAction.java =================================================================== RCS file: /home/cvs/xml-cocoon2/src/org/apache/cocoon/acting/AbstractComplementaryConfigurableAction.java,v retrieving revision 1.3 retrieving revision 1.3.2.1 diff -u -r1.3 -r1.3.2.1 --- AbstractComplementaryConfigurableAction.java 2001/05/31 15:38:51 1.3 +++ AbstractComplementaryConfigurableAction.java 2001/07/06 09:58:32 1.3.2.1 @@ -15,9 +15,8 @@ import org.apache.avalon.framework.configuration.ConfigurationException; import org.apache.avalon.framework.configuration.SAXConfigurationHandler; import org.apache.cocoon.Roles; -import org.apache.cocoon.components.parser.Parser; -import org.apache.cocoon.components.url.URLFactory; -import org.xml.sax.InputSource; +import org.apache.cocoon.components.source.SourceHandler; +import org.apache.cocoon.environment.Source; /** * Set up environment for configurable form handling data. This group @@ -27,7 +26,7 @@ * effective. The name of the root configuration element is irrelevant. * * @author <a href="mailto:[EMAIL PROTECTED]">Berin Loritsch</a> - * @version CVS $Revision: 1.3 $ $Date: 2001/05/31 15:38:51 $ + * @version CVS $Revision: 1.3.2.1 $ $Date: 2001/07/06 09:58:32 $ */ public abstract class AbstractComplementaryConfigurableAction extends ComposerAction { private static Map configurations = new HashMap(); @@ -49,29 +48,22 @@ conf = (Configuration) AbstractComplementaryConfigurableAction.configurations.get(descriptor); if (conf == null) { - URLFactory urlFactory = null; - Parser parser = null; - URL resource = null; + SourceHandler sourceHandler = null; + Source resource = null; try { - urlFactory = (URLFactory) this.manager.lookup(Roles.URL_FACTORY); - resource = urlFactory.getURL(descriptor); + sourceHandler = (SourceHandler) this.manager.lookup(Roles.SOURCE_HANDLER); + resource = sourceHandler.getSource(null, descriptor); - parser = (Parser)this.manager.lookup(Roles.PARSER); SAXConfigurationHandler builder = new SAXConfigurationHandler(); - InputSource inputSource = new InputSource(resource.openStream()); - inputSource.setSystemId(resource.toExternalForm()); + resource.stream(builder); - parser.setContentHandler(builder); - parser.parse(inputSource); - conf = builder.getConfiguration(); } catch (Exception e) { getLogger().error("Could not configure Database mapping environment", e); - throw new ConfigurationException("Error trying to load configurations for resource: " + resource.toExternalForm()); + throw new ConfigurationException("Error trying to load configurations for resource: " + (resource == null ? "null" : resource.getSystemId())); } finally { - if (urlFactory != null) this.manager.release((Component) urlFactory); - if (parser != null) this.manager.release(parser); + if (sourceHandler != null) this.manager.release((Component) sourceHandler); } this.cacheConfiguration(descriptor, conf); No revision No revision 1.1.2.4 +7 -17 xml-cocoon2/src/org/apache/cocoon/components/language/markup/xsp/XSPFormValidatorHelper.java Index: XSPFormValidatorHelper.java =================================================================== RCS file: /home/cvs/xml-cocoon2/src/org/apache/cocoon/components/language/markup/xsp/XSPFormValidatorHelper.java,v retrieving revision 1.1.2.3 retrieving revision 1.1.2.4 diff -u -r1.1.2.3 -r1.1.2.4 --- XSPFormValidatorHelper.java 2001/07/04 07:26:34 1.1.2.3 +++ XSPFormValidatorHelper.java 2001/07/06 09:58:33 1.1.2.4 @@ -15,9 +15,8 @@ import org.apache.cocoon.Roles; import org.apache.cocoon.acting.ValidatorActionResult; import org.apache.cocoon.acting.ConfigurationHelper; -import org.apache.cocoon.components.parser.Parser; -import org.apache.cocoon.components.url.URLFactory; import org.apache.cocoon.components.language.markup.xsp.XSPObjectHelper; +import org.apache.cocoon.components.source.SourceHandler; import org.apache.cocoon.components.source.URLSource; import org.apache.cocoon.environment.Request; import org.apache.cocoon.environment.Source; @@ -39,7 +38,7 @@ * The <code>ValidatorActionResult</code> object helper * * @author <a href="mailto:[EMAIL PROTECTED]">Christian Haul</a> - * @version CVS $Revision: 1.1.2.3 $ $Date: 2001/07/04 07:26:34 $ + * @version CVS $Revision: 1.1.2.4 $ $Date: 2001/07/06 09:58:33 $ */ public class XSPFormValidatorHelper { /** @@ -466,12 +465,10 @@ synchronized (XSPFormValidatorHelper.configurations) { conf = (ConfigurationHelper) XSPFormValidatorHelper.configurations.get(descriptor); Source source = null; - Parser parser = null; - URLFactory urlFactory = null; + SourceHandler sourceHandler = null; try { - urlFactory = (URLFactory) manager.lookup(Roles.URL_FACTORY); - URL resource = urlFactory.getURL(descriptor); - source = new URLSource(resource, manager); + sourceHandler = (SourceHandler) manager.lookup(Roles.SOURCE_HANDLER); + source = sourceHandler.getSource(null, descriptor); if (conf == null || ( reloadable && conf.lastModified < source.getLastModified())) { logger.debug("XSPFormValidatorHelper.getConfiguration: (Re)Loading " + descriptor); @@ -479,15 +476,9 @@ if (conf == null) conf = new ConfigurationHelper(); - parser = (Parser) manager.lookup(Roles.PARSER); SAXConfigurationHandler builder = new SAXConfigurationHandler(); + source.stream(builder); - InputSource inputSource = source.getInputSource(); - inputSource.setSystemId(source.getSystemId()); - - parser.setContentHandler(builder); - parser.parse(inputSource); - conf.lastModified = source.getLastModified(); conf.configuration = builder.getConfiguration(); @@ -499,8 +490,7 @@ logger.error("XSPFormValidatorHelper.getConfiguration: Could not configure Database mapping environment", e); throw new ConfigurationException("Error trying to load configurations for resource: " + source.getSystemId()); } finally { - if (urlFactory != null) manager.release((Component) urlFactory); - if (parser != null) manager.release(parser); + if (sourceHandler != null) manager.release((Component) sourceHandler); } } 1.2.2.2 +1 -2 xml-cocoon2/src/org/apache/cocoon/components/language/markup/xsp/XSPGenerator.java Index: XSPGenerator.java =================================================================== RCS file: /home/cvs/xml-cocoon2/src/org/apache/cocoon/components/language/markup/xsp/XSPGenerator.java,v retrieving revision 1.2.2.1 retrieving revision 1.2.2.2 diff -u -r1.2.2.1 -r1.2.2.2 --- XSPGenerator.java 2001/06/12 20:03:40 1.2.2.1 +++ XSPGenerator.java 2001/07/06 09:58:34 1.2.2.2 @@ -14,7 +14,6 @@ import org.apache.avalon.framework.context.Contextualizable; import org.apache.cocoon.Roles; import org.apache.cocoon.components.language.generator.CompiledComponent; -import org.apache.cocoon.components.parser.Parser; import org.apache.cocoon.generation.AbstractServerPage; import org.apache.avalon.excalibur.pool.Recyclable; @@ -22,7 +21,7 @@ * Base class for XSP-generated <code>ServerPagesGenerator</code> classes * * @author <a href="mailto:[EMAIL PROTECTED]">Ricardo Rocha</a> - * @version CVS $Revision: 1.2.2.1 $ $Date: 2001/06/12 20:03:40 $ + * @version CVS $Revision: 1.2.2.2 $ $Date: 2001/07/06 09:58:34 $ */ public abstract class XSPGenerator extends AbstractServerPage implements CompiledComponent, Contextualizable, Recyclable { protected Context avalonContext = null; No revision No revision 1.1.2.4 +10 -2 xml-cocoon2/src/org/apache/cocoon/components/source/SitemapSource.java Index: SitemapSource.java =================================================================== RCS file: /home/cvs/xml-cocoon2/src/org/apache/cocoon/components/source/SitemapSource.java,v retrieving revision 1.1.2.3 retrieving revision 1.1.2.4 diff -u -r1.1.2.3 -r1.1.2.4 --- SitemapSource.java 2001/07/04 13:59:34 1.1.2.3 +++ SitemapSource.java 2001/07/06 09:58:35 1.1.2.4 @@ -24,7 +24,6 @@ import org.apache.cocoon.Constants; import org.apache.cocoon.ProcessingException; import org.apache.cocoon.Roles; -import org.apache.cocoon.components.parser.Parser; import org.apache.cocoon.components.pipeline.EventPipeline; import org.apache.cocoon.components.pipeline.StreamPipeline; import org.apache.cocoon.environment.Environment; @@ -33,8 +32,10 @@ import org.apache.cocoon.serialization.Serializer; import org.apache.cocoon.sitemap.Sitemap; import org.apache.cocoon.sitemap.SitemapComponentSelector; +import org.apache.cocoon.xml.ContentHandlerWrapper; import org.apache.cocoon.xml.XMLConsumer; import org.apache.cocoon.xml.XMLProducer; +import org.xml.sax.ContentHandler; import org.xml.sax.InputSource; import org.xml.sax.SAXException; @@ -42,7 +43,7 @@ * Description of a source which is defined by a pipeline. * * @author <a href="mailto:[EMAIL PROTECTED]">Carsten Ziegeler</a> - * @version CVS $Revision: 1.1.2.3 $ $Date: 2001/07/04 13:59:34 $ + * @version CVS $Revision: 1.1.2.4 $ $Date: 2001/07/06 09:58:35 $ */ public final class SitemapSource @@ -239,5 +240,12 @@ } } + /** + * Stream content to the content handler + */ + public void stream(ContentHandler contentHandler) + throws ProcessingException, SAXException, IOException { + this.stream(new ContentHandlerWrapper(contentHandler)); + } } 1.1.2.2 +20 -1 xml-cocoon2/src/org/apache/cocoon/components/source/URLSource.java Index: URLSource.java =================================================================== RCS file: /home/cvs/xml-cocoon2/src/org/apache/cocoon/components/source/URLSource.java,v retrieving revision 1.1.2.1 retrieving revision 1.1.2.2 diff -u -r1.1.2.1 -r1.1.2.2 --- URLSource.java 2001/07/04 07:30:02 1.1.2.1 +++ URLSource.java 2001/07/06 09:58:36 1.1.2.2 @@ -24,6 +24,7 @@ import org.apache.cocoon.components.parser.Parser; import org.apache.cocoon.environment.Source; import org.apache.cocoon.xml.XMLConsumer; +import org.xml.sax.ContentHandler; import org.xml.sax.InputSource; import org.xml.sax.SAXException; @@ -31,7 +32,7 @@ * Description of a source which is described by an URL. * * @author <a href="mailto:[EMAIL PROTECTED]">Carsten Ziegeler</a> - * @version CVS $Revision: 1.1.2.1 $ $Date: 2001/07/04 07:30:02 $ + * @version CVS $Revision: 1.1.2.2 $ $Date: 2001/07/06 09:58:36 $ */ public final class URLSource @@ -280,6 +281,24 @@ parser = (Parser)this.manager.lookup(Roles.PARSER); parser.setConsumer(consumer); + parser.parse(this.getInputSource()); + } catch (ComponentException e){ + throw new ProcessingException("Exception in URLSource.stream()", e); + } finally { + if (parser != null) this.manager.release(parser); + } + } + + /** + * Stream content to the content handler + */ + public void stream(ContentHandler contentHandler) + throws ProcessingException, SAXException, IOException { + Parser parser = null; + try { + parser = (Parser)this.manager.lookup(Roles.PARSER); + + parser.setContentHandler(contentHandler); parser.parse(this.getInputSource()); } catch (ComponentException e){ throw new ProcessingException("Exception in URLSource.stream()", e); No revision No revision 1.6.2.2 +9 -1 xml-cocoon2/src/org/apache/cocoon/environment/Source.java Index: Source.java =================================================================== RCS file: /home/cvs/xml-cocoon2/src/org/apache/cocoon/environment/Source.java,v retrieving revision 1.6.2.1 retrieving revision 1.6.2.2 diff -u -r1.6.2.1 -r1.6.2.2 --- Source.java 2001/06/28 09:58:16 1.6.2.1 +++ Source.java 2001/07/06 09:58:37 1.6.2.2 @@ -19,6 +19,7 @@ import java.net.URLConnection; import org.apache.cocoon.ProcessingException; import org.apache.cocoon.xml.XMLConsumer; +import org.xml.sax.ContentHandler; import org.xml.sax.InputSource; import org.xml.sax.SAXException; @@ -27,7 +28,7 @@ * for accessing any resource (URL, local file etc). * * @author <a href="mailto:[EMAIL PROTECTED]">Carsten Ziegeler</a> - * @version CVS $Revision: 1.6.2.1 $ $Date: 2001/06/28 09:58:16 $ + * @version CVS $Revision: 1.6.2.2 $ $Date: 2001/07/06 09:58:37 $ */ public interface Source { @@ -83,5 +84,12 @@ */ void stream(XMLConsumer consumer) throws ProcessingException, SAXException, IOException; + + /** + * Stream content to the content handler + */ + void stream(ContentHandler contentHandler) + throws ProcessingException, SAXException, IOException; + } No revision No revision 1.9.2.6 +1 -2 xml-cocoon2/src/org/apache/cocoon/generation/FileGenerator.java Index: FileGenerator.java =================================================================== RCS file: /home/cvs/xml-cocoon2/src/org/apache/cocoon/generation/FileGenerator.java,v retrieving revision 1.9.2.5 retrieving revision 1.9.2.6 diff -u -r1.9.2.5 -r1.9.2.6 --- FileGenerator.java 2001/06/28 09:58:19 1.9.2.5 +++ FileGenerator.java 2001/07/06 09:58:41 1.9.2.6 @@ -22,7 +22,6 @@ import org.apache.cocoon.caching.CacheValidity; import org.apache.cocoon.caching.Cacheable; import org.apache.cocoon.caching.TimeStampCacheValidity; -import org.apache.cocoon.components.parser.Parser; import org.apache.cocoon.environment.Source; import org.apache.cocoon.environment.SourceResolver; import org.apache.cocoon.util.HashUtil; @@ -39,7 +38,7 @@ * @author <a href="mailto:[EMAIL PROTECTED]">Pierpaolo Fumagalli</a> * (Apache Software Foundation, Exoffice Technologies) * @author <a href="mailto:[EMAIL PROTECTED]">Carsten Ziegeler</a> - * @version CVS $Revision: 1.9.2.5 $ $Date: 2001/06/28 09:58:19 $ + * @version CVS $Revision: 1.9.2.6 $ $Date: 2001/07/06 09:58:41 $ */ public class FileGenerator extends ComposerGenerator implements Cacheable, Recyclable { 1.4.2.1 +2 -3 xml-cocoon2/src/org/apache/cocoon/generation/HTMLGenerator.java Index: HTMLGenerator.java =================================================================== RCS file: /home/cvs/xml-cocoon2/src/org/apache/cocoon/generation/HTMLGenerator.java,v retrieving revision 1.4 retrieving revision 1.4.2.1 diff -u -r1.4 -r1.4.2.1 --- HTMLGenerator.java 2001/05/22 14:40:55 1.4 +++ HTMLGenerator.java 2001/07/06 09:58:41 1.4.2.1 @@ -25,7 +25,6 @@ import org.apache.cocoon.caching.Cacheable; import org.apache.cocoon.caching.CacheValidity; import org.apache.cocoon.caching.TimeStampCacheValidity; -import org.apache.cocoon.components.parser.Parser; import org.apache.cocoon.environment.Source; import org.apache.cocoon.environment.SourceResolver; import org.apache.cocoon.util.HashUtil; @@ -36,7 +35,7 @@ /** * @author <a href="mailto:[EMAIL PROTECTED]">Davanum Srinivas</a> * @author <a href="mailto:[EMAIL PROTECTED]">Carsten Ziegeler</a> - * @version CVS $Revision: 1.4 $ $Date: 2001/05/22 14:40:55 $ + * @version CVS $Revision: 1.4.2.1 $ $Date: 2001/07/06 09:58:41 $ */ public class HTMLGenerator extends ComposerGenerator implements Cacheable, Recyclable { @@ -115,7 +114,7 @@ getLogger().error("HTMLGenerator.generate()", e); throw(e); } catch (Exception e){ - getLogger().error("Could not get parser", e); + getLogger().error("Could not setup jtidy", e); throw new ProcessingException("Exception in HTMLGenerator.generate()",e); } } No revision No revision 1.1.2.2 +4 -14 xml-cocoon2/src/org/apache/cocoon/transformation/CIncludeTransformer.java Index: CIncludeTransformer.java =================================================================== RCS file: /home/cvs/xml-cocoon2/src/org/apache/cocoon/transformation/CIncludeTransformer.java,v retrieving revision 1.1.2.1 retrieving revision 1.1.2.2 diff -u -r1.1.2.1 -r1.1.2.2 --- CIncludeTransformer.java 2001/06/19 13:38:26 1.1.2.1 +++ CIncludeTransformer.java 2001/07/06 09:58:43 1.1.2.2 @@ -15,7 +15,6 @@ import org.apache.avalon.framework.parameters.Parameters; import org.apache.cocoon.ProcessingException; import org.apache.cocoon.Roles; -import org.apache.cocoon.components.parser.Parser; import org.apache.cocoon.environment.SourceResolver; import org.apache.cocoon.xml.IncludeXMLConsumer; import org.xml.sax.Attributes; @@ -32,7 +31,7 @@ * which surrounds the included content. * * @author <a href="mailto:[EMAIL PROTECTED]">Carsten Ziegeler</a> - * @version CVS $Revision: 1.1.2.1 $ $Date: 2001/06/19 13:38:26 $ $Author: cziegeler $ + * @version CVS $Revision: 1.1.2.2 $ $Date: 2001/07/06 09:58:43 $ $Author: cziegeler $ */ public class CIncludeTransformer extends AbstractTransformer implements Recyclable, Composable { @@ -124,23 +123,14 @@ attrs); } - Parser parser = null; try { - parser = (Parser)this.manager.lookup(Roles.PARSER); - - parser.setConsumer(consumer); - parser.parse(this.sourceResolver.resolve(src).getInputSource()); + this.sourceResolver.resolve(src).stream(consumer); } catch (IOException e) { getLogger().error("CIncludeTransformer", e); throw new SAXException("CIncludeTransformer could not read resource", e); - } catch (SAXException e) { - getLogger().error("CIncludeTransformer", e); - throw(e); - } catch (Exception e){ - getLogger().error("Could not get parser", e); + } catch (ProcessingException e){ + getLogger().error("Could not stream input", e); throw new SAXException("Exception in CIncludeTransformer",e); - } finally { - if (parser != null) this.manager.release(parser); } if (!"".equals(element)) { 1.8.2.4 +1 -12 xml-cocoon2/src/org/apache/cocoon/transformation/I18nTransformer.java Index: I18nTransformer.java =================================================================== RCS file: /home/cvs/xml-cocoon2/src/org/apache/cocoon/transformation/I18nTransformer.java,v retrieving revision 1.8.2.3 retrieving revision 1.8.2.4 diff -u -r1.8.2.3 -r1.8.2.4 --- I18nTransformer.java 2001/06/28 09:58:24 1.8.2.3 +++ I18nTransformer.java 2001/07/06 09:58:44 1.8.2.4 @@ -12,7 +12,6 @@ import org.apache.cocoon.Roles; import org.apache.cocoon.ProcessingException; import org.apache.cocoon.acting.LangSelect; -import org.apache.cocoon.components.parser.Parser; import org.apache.cocoon.environment.Source; import org.apache.cocoon.environment.SourceResolver; @@ -857,18 +856,13 @@ private void initialiseDictionary(Source inputSource) throws ProcessingException, SAXException, MalformedURLException, IOException { - Parser parser = null; try { - parser = (Parser)(manager.lookup(Roles.PARSER)); - InputSource input = new InputSource(inputSource.getInputStream()); - // How this could be cached? this.dictionary = new HashMap(); I18nContentHandler i18n_handler = new I18nContentHandler(); - parser.setContentHandler(i18n_handler); - parser.parse(input); + inputSource.stream(i18n_handler); } catch(SAXException e) { getLogger().error("Error in initialiseDictionary", e); throw e; @@ -878,11 +872,6 @@ } catch(IOException e) { getLogger().error("Error in initialiseDictionary", e); throw e; - } catch(ComponentException e) { - getLogger().error("Error in initialiseDictionary", e); - throw new SAXException(e); - } finally { - if(parser != null) this.manager.release((Component) parser); } } ---------------------------------------------------------------------- In case of troubles, e-mail: [EMAIL PROTECTED] To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]