cziegeler 02/02/14 01:30:14 Modified: . changes.xml lib/core avalon-scratchpad-20020212.jar src/java/org/apache/cocoon Cocoon.java Constants.java cocoon.roles src/java/org/apache/cocoon/components/parser JaxpParser.java Parser.java PooledJaxpParser.java XercesParser.java src/webapp cocoon.xconf Log: Installed Avalon XML Parser and deprecated Cocoon parser Revision Changes Path 1.106 +4 -1 xml-cocoon2/changes.xml Index: changes.xml =================================================================== RCS file: /home/cvs/xml-cocoon2/changes.xml,v retrieving revision 1.105 retrieving revision 1.106 diff -u -r1.105 -r1.106 --- changes.xml 13 Feb 2002 08:23:40 -0000 1.105 +++ changes.xml 14 Feb 2002 09:30:13 -0000 1.106 @@ -4,7 +4,7 @@ <!-- History of Cocoon changes - $Id: changes.xml,v 1.105 2002/02/13 08:23:40 cziegeler Exp $ + $Id: changes.xml,v 1.106 2002/02/14 09:30:13 cziegeler Exp $ --> <changes title="History of Changes"> @@ -31,6 +31,9 @@ </devs> <release version="@version@" date="@date@"> + <action dev="CZ" type="update"> + Using migrated XML Parser von Avalon Excalibur instead of own component. + </action> <action dev="CZ" type="update"> Added subprotocol "raw" to the cocoon: protocol. When the subprotocol is appended, the request parameters of the original request are not 1.2 +16 -22 xml-cocoon2/lib/core/avalon-scratchpad-20020212.jar <<Binary file>> 1.16 +19 -9 xml-cocoon2/src/java/org/apache/cocoon/Cocoon.java Index: Cocoon.java =================================================================== RCS file: /home/cvs/xml-cocoon2/src/java/org/apache/cocoon/Cocoon.java,v retrieving revision 1.15 retrieving revision 1.16 diff -u -r1.15 -r1.16 --- Cocoon.java 13 Feb 2002 11:05:10 -0000 1.15 +++ Cocoon.java 14 Feb 2002 09:30:13 -0000 1.16 @@ -55,6 +55,7 @@ package org.apache.cocoon; +import org.apache.avalon.excalibur.xml.Parser; import org.apache.avalon.excalibur.component.DefaultRoleManager; import org.apache.avalon.excalibur.component.ExcaliburComponentManager; import org.apache.avalon.excalibur.logger.LogKitManageable; @@ -74,7 +75,6 @@ import org.apache.avalon.framework.thread.ThreadSafe; 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; import org.apache.cocoon.components.source.DelayedRefreshSourceWrapper; @@ -103,7 +103,7 @@ * @author <a href="mailto:[EMAIL PROTECTED]">Pierpaolo Fumagalli</a> (Apache Software Foundation, Exoffice Technologies) * @author <a href="mailto:[EMAIL PROTECTED]">Stefano Mazzocchi</a> * @author <a href="mailto:[EMAIL PROTECTED]">Leo Sutic</a> - * @version CVS $Id: Cocoon.java,v 1.15 2002/02/13 11:05:10 cziegeler Exp $ + * @version CVS $Id: Cocoon.java,v 1.16 2002/02/14 09:30:13 cziegeler Exp $ */ public class Cocoon extends AbstractLoggable @@ -232,7 +232,20 @@ // Setup the default parser, for parsing configuration. // If one need to use a different parser, set the given system property - String parser = System.getProperty(Constants.PARSER_PROPERTY, Constants.DEFAULT_PARSER); + // first check for deprecated property to be compatible: + String parser = System.getProperty(Constants.DEPRECATED_PARSER_PROPERTY, Constants.DEFAULT_PARSER); + if ( !Constants.DEFAULT_PARSER.equals( parser ) ) { + this.getLogger().warn("Deprecated property " +Constants.DEPRECATED_PARSER_PROPERTY+ " is used. Please use "+Constants.PARSER_PROPERTY+" instead."); + if ( "org.apache.cocoon.components.parser.XercesParser".equals(parser) ) { + parser = "org.apache.avalon.excalibur.xml.XercesParser"; + } else { + this.getLogger().warn("Unknown value for deprecated property: " + + Constants.DEPRECATED_PARSER_PROPERTY + ", value: " + parser + + ". If you experience problems during startup, check the parser configuration section of the documentation."); + } + } else { + parser = System.getProperty(Constants.PARSER_PROPERTY, Constants.DEFAULT_PARSER); + } if (getLogger().isDebugEnabled()) { getLogger().debug("Using parser: " + parser); } @@ -316,8 +329,7 @@ InputStream inputStream = ClassUtils.getResource("org/apache/cocoon/cocoon.roles").openStream(); InputSource is = new InputSource(inputStream); is.setSystemId(this.configurationFile.getSystemId()); - p.setContentHandler(b); - p.parse(is); + p.parse(is, b); roleConfig = b.getConfiguration(); } catch (Exception e) { getLogger().error("Could not configure Cocoon environment", e); @@ -335,8 +347,7 @@ p = (Parser)startupManager.lookup(Parser.ROLE); SAXConfigurationHandler b = new SAXConfigurationHandler(); InputSource is = this.configurationFile.getInputSource(); - p.setContentHandler(b); - p.parse(is); + p.parse(is, b); this.configuration = b.getConfiguration(); } catch (Exception e) { getLogger().error("Could not configure Cocoon environment", e); @@ -370,8 +381,7 @@ URL url = context.getResource(userRoles); InputSource is = new InputSource(new BufferedInputStream(url.openStream())); is.setSystemId(this.configurationFile.getSystemId()); - p.setContentHandler(b); - p.parse(is); + p.parse(is, b); roleConfig = b.getConfiguration(); } catch (Exception e) { getLogger().error("Could not configure Cocoon environment with user roles file", e); 1.7 +7 -3 xml-cocoon2/src/java/org/apache/cocoon/Constants.java Index: Constants.java =================================================================== RCS file: /home/cvs/xml-cocoon2/src/java/org/apache/cocoon/Constants.java,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- Constants.java 6 Feb 2002 08:41:11 -0000 1.6 +++ Constants.java 14 Feb 2002 09:30:13 -0000 1.7 @@ -60,7 +60,7 @@ * * @author <a href="mailto:[EMAIL PROTECTED]">Stefano Mazzocchi</a> * @author <a href="mailto:[EMAIL PROTECTED]">Peter Royal</a> - * @version CVS $Id: Constants.java,v 1.6 2002/02/06 08:41:11 cziegeler Exp $ + * @version CVS $Id: Constants.java,v 1.7 2002/02/14 09:30:13 cziegeler Exp $ */ public interface Constants { @@ -139,10 +139,14 @@ String DEFAULT_CONF_FILE = "cocoon.xconf"; /** The name of the property holding the class for a XML parser */ - String PARSER_PROPERTY = "org.apache.cocoon.components.parser.Parser"; + String PARSER_PROPERTY = "org.apache.avalon.excalibur.xml.Parser"; /** The name of the class for the default XML parser to use */ - String DEFAULT_PARSER = "org.apache.cocoon.components.parser.JaxpParser"; + String DEFAULT_PARSER = "org.apache.avalon.excalibur.xml.JaxpParser"; + + /** The name of the property holding the class for a XML parser + * @deprecated This will be removed in future release */ + String DEPRECATED_PARSER_PROPERTY = "org.apache.cocoon.components.parser.Parser"; /** The namespace prefix for the XSP core logicsheet. */ String XSP_PREFIX = "xsp"; 1.10 +7 -4 xml-cocoon2/src/java/org/apache/cocoon/cocoon.roles Index: cocoon.roles =================================================================== RCS file: /home/cvs/xml-cocoon2/src/java/org/apache/cocoon/cocoon.roles,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- cocoon.roles 13 Feb 2002 13:26:33 -0000 1.9 +++ cocoon.roles 14 Feb 2002 09:30:13 -0000 1.10 @@ -17,10 +17,6 @@ shorthand="xml-parser" default-class="org.apache.avalon.excalibur.xml.JaxpParser"/> - <role name="org.apache.cocoon.components.parser.Parser" - shorthand="parser" - default-class="org.apache.cocoon.components.parser.JaxpParser"/> - <role name="org.apache.cocoon.components.xslt.XSLTProcessor" shorthand="xslt-processor" default-class="org.apache.cocoon.components.xslt.XSLTProcessorImpl"/> @@ -190,5 +186,12 @@ <role name="org.apache.cocoon.reading.ReaderSelector" shorthand="readers" default-class="org.apache.cocoon.sitemap.DefaultSitemapComponentSelector"/> + + <!-- DEPRECATED, use the xml-parser instead ! --> + + <role name="org.apache.cocoon.components.parser.Parser" + shorthand="parser" + default-class="org.apache.cocoon.components.parser.JaxpParser"/> + </role-list> 1.8 +4 -1 xml-cocoon2/src/java/org/apache/cocoon/components/parser/JaxpParser.java Index: JaxpParser.java =================================================================== RCS file: /home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/parser/JaxpParser.java,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- JaxpParser.java 4 Feb 2002 12:25:11 -0000 1.7 +++ JaxpParser.java 14 Feb 2002 09:30:13 -0000 1.8 @@ -104,10 +104,13 @@ * </li> * </ul> * + * @deprecated The Avalon XML Parser is now used inside Cocoon. This role + * will be removed in future releases. + * @author <a href="mailto:[EMAIL PROTECTED]">Berin Loritsch</a> * @author <a href="mailto:[EMAIL PROTECTED]">Carsten Ziegeler</a> * @author <a href="mailto:[EMAIL PROTECTED]">Sylvain Wallez</a> - * @version CVS $Id: JaxpParser.java,v 1.7 2002/02/04 12:25:11 cziegeler Exp $ + * @version CVS $Id: JaxpParser.java,v 1.8 2002/02/14 09:30:13 cziegeler Exp $ */ public class JaxpParser extends AbstractXMLProducer implements Parser, ErrorHandler, Composable, Parameterizable, Disposable, Poolable { 1.5 +3 -1 xml-cocoon2/src/java/org/apache/cocoon/components/parser/Parser.java Index: Parser.java =================================================================== RCS file: /home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/parser/Parser.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- Parser.java 4 Feb 2002 12:25:11 -0000 1.4 +++ Parser.java 14 Feb 2002 09:30:13 -0000 1.5 @@ -67,10 +67,12 @@ import java.io.IOException; /** + * @deprecated The Avalon XML Parser is now used inside Cocoon. This role + * will be removed in future releases. * * @author <a href="mailto:[EMAIL PROTECTED]">Pierpaolo Fumagalli</a> * (Apache Software Foundation, Exoffice Technologies) - * @version CVS $Id: Parser.java,v 1.4 2002/02/04 12:25:11 cziegeler Exp $ + * @version CVS $Id: Parser.java,v 1.5 2002/02/14 09:30:13 cziegeler Exp $ */ public interface Parser extends Component, XMLProducer, DOMFactory { 1.5 +3 -1 xml-cocoon2/src/java/org/apache/cocoon/components/parser/PooledJaxpParser.java Index: PooledJaxpParser.java =================================================================== RCS file: /home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/parser/PooledJaxpParser.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- PooledJaxpParser.java 4 Feb 2002 12:25:11 -0000 1.4 +++ PooledJaxpParser.java 14 Feb 2002 09:30:13 -0000 1.5 @@ -60,9 +60,11 @@ * @deprecated <code>PooledJaxpParser</code> is now the default parser for Cocoon * and has thus been moved to {@link JaxpParser} - this class will be * removed in a future release. + * The Avalon XML Parser is now used inside Cocoon. This role + * will be removed in future releases. * * @author <a href="mailto:[EMAIL PROTECTED]">Sylvain Wallez</a> - * @version CVS $Id: PooledJaxpParser.java,v 1.4 2002/02/04 12:25:11 cziegeler Exp $ + * @version CVS $Id: PooledJaxpParser.java,v 1.5 2002/02/14 09:30:13 cziegeler Exp $ */ public class PooledJaxpParser extends JaxpParser { 1.7 +4 -1 xml-cocoon2/src/java/org/apache/cocoon/components/parser/XercesParser.java Index: XercesParser.java =================================================================== RCS file: /home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/parser/XercesParser.java,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- XercesParser.java 5 Feb 2002 20:58:03 -0000 1.6 +++ XercesParser.java 14 Feb 2002 09:30:13 -0000 1.7 @@ -75,9 +75,12 @@ /** * + * @deprecated The Avalon XML Parser is now used inside Cocoon. This role + * will be removed in future releases. + * @author <a href="mailto:[EMAIL PROTECTED]">Pierpaolo Fumagalli</a> * (Apache Software Foundation, Exoffice Technologies) - * @version CVS $Id: XercesParser.java,v 1.6 2002/02/05 20:58:03 vgritsenko Exp $ + * @version CVS $Id: XercesParser.java,v 1.7 2002/02/14 09:30:13 cziegeler Exp $ */ public class XercesParser extends AbstractXMLProducer implements Parser, ErrorHandler, Composable, Disposable { 1.27 +44 -14 xml-cocoon2/src/webapp/cocoon.xconf Index: cocoon.xconf =================================================================== RCS file: /home/cvs/xml-cocoon2/src/webapp/cocoon.xconf,v retrieving revision 1.26 retrieving revision 1.27 diff -u -r1.26 -r1.27 --- cocoon.xconf 11 Feb 2002 16:39:26 -0000 1.26 +++ cocoon.xconf 14 Feb 2002 09:30:13 -0000 1.27 @@ -14,28 +14,58 @@ <!-- ===================== General Components =========================== --> <!-- Parser: - The default parser used in the Apache Cocoon 2 system is - org.apache.cocoon.components.parser.JaxpParser - Apache Cocoon 2 system requires a JAXP 1.1 parser. + The default parser used in Apache Cocoon is + org.apache.avalon.excalibur.xml.JaxpParser. Apache Cocoon requires a + JAXP 1.1 parser. If you have problems because your servlet environment uses its own parser not conforming to JAXP 1.1 try using the alternative XercesParser instead of the JaxpParser. To activate the XercesParser, change the class attribute to - class="org.apache.cocoon.components.parser.XercesParser" + class="org.apache.avalon.excalibur.xml.XercesParser" You will also need to add a system property to your JVM, probably on the startup of your servlet engine like this: - -Dorg.apache.cocoon.components.parser.Parser=org.apache.cocoon.components.parser.XercesParser + -Dorg.apache.avalon.excalibur.xml.Parser=org.apache.avalon.excalibur.xml.XercesParser - validate: This parameter causes the parser to be a validating parser. - XML validation is only being used for the documentation build. - (If you are going to use it elsewhere, then do so with caution.) - You really should have validated all of your XML documents already, - according to their proper DTD or schema. Do not expect Cocoon to do it. - <parameter name="validate" value="false"/> + Configuration for the JaxpParser (not the XercesParser!): + - validate (boolean, default = false): This parameter causes the parser + to be a validating parser. + XML validation is only being used for the documentation build. + (If you are going to use it elsewhere, then do so with caution.) + You really should have validated all of your XML documents already, + according to their proper DTD or schema. Do not expect Cocoon to do it. + - namespace-prefixes (boolean, default = false) : do we want + namespaces declarations also as 'xmlns:' attributes ? + Note : setting this to true confuses some XSL processors (e.g. Saxon). + - stop-on-warning (boolean, default = true) : should the parser + stop parsing if a warning occurs ? + - stop-on-recoverable-error (boolean, default = true) : should the parser + stop parsing if a recoverable error occurs ? + - reuse-parsers (boolean, default = true) : do we want to reuse + parsers or create a new parser for each parse ? + Note : even if this parameter is true, parsers are not + recycled in case of parsing errors : some parsers (e.g. Xerces) don't like + to be reused after failure. + - sax-parser-factory (string) : the name of the SAXParserFactory + implementation class to be used instead of using the standard JAXP mechanism + (SAXParserFactory.newInstance()). This allows to choose + unambiguously the JAXP implementation to be used when several of them are + available in the classpath. + - document-builder-factory (string) : the name of the + DocumentBuilderFactory implementation to be used (similar to + sax-parser-factory for DOM). --> - <parser class="org.apache.cocoon.components.parser.JaxpParser" - logger="core.parser"> - </parser> + <xml-parser class="org.apache.avalon.excalibur.xml.JaxpParser" + logger="core.xml-parser"> + <parameter name="validate" value="false"/> + <parameter name="namespace-prefixes" value="false"/> + <parameter name="stop-on-warning" value="true"/> + <parameter name="stop-on-recoverable-error" value="true"/> + <!-- + <parameter name="reuse-parsers" value="true"/> + <parameter name="sax-parser-factory" value="???"/> + <parameter name="document-builder-factory" value="???"/> + --> + </xml-parser> <!-- ============================ STORE ============================ --> <!-- Store for the generated code. Used by compiled sitemap engine and
---------------------------------------------------------------------- In case of troubles, e-mail: [EMAIL PROTECTED] To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]