sylvain 01/08/31 06:48:57 Modified: src/org/apache/cocoon/components/language/markup AbstractMarkupLanguage.java Logicsheet.java Added: src/org/apache/cocoon/environment URLFactorySourceResolver.java Log: Pass a SourceResolver to XSLTProcessor when reading builtin logicsheets, to allow <xsl:include>. This bug appeared today, but I don't understand how it could have worked before !! Revision Changes Path 1.11 +2 -2 xml-cocoon2/src/org/apache/cocoon/components/language/markup/AbstractMarkupLanguage.java Index: AbstractMarkupLanguage.java =================================================================== RCS file: /home/cvs/xml-cocoon2/src/org/apache/cocoon/components/language/markup/AbstractMarkupLanguage.java,v retrieving revision 1.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 --- AbstractMarkupLanguage.java 2001/08/30 08:43:57 1.10 +++ AbstractMarkupLanguage.java 2001/08/31 13:48:57 1.11 @@ -54,7 +54,7 @@ * @author <a href="mailto:[EMAIL PROTECTED]">Ricardo Rocha</a> * @author <a href="mailto:[EMAIL PROTECTED]">Davanum Srinivas</a> * @author <a href="mailto:[EMAIL PROTECTED]">Ovidiu Predescu</a> - * @version CVS $Revision: 1.10 $ $Date: 2001/08/30 08:43:57 $ + * @version CVS $Revision: 1.11 $ $Date: 2001/08/31 13:48:57 $ */ public abstract class AbstractMarkupLanguage extends AbstractLoggable implements MarkupLanguage, Composable, Configurable @@ -343,7 +343,7 @@ if (logicsheet == null) { Source inputSource = resolver.resolve(logicsheetLocation); - logicsheet = new Logicsheet(inputSource, manager); + logicsheet = new Logicsheet(inputSource, manager, resolver); logicsheetName = logicsheet.getSystemId(); logicsheetCache.store(CACHE_PREFIX + logicsheetName, logicsheet); 1.6 +6 -2 xml-cocoon2/src/org/apache/cocoon/components/language/markup/Logicsheet.java Index: Logicsheet.java =================================================================== RCS file: /home/cvs/xml-cocoon2/src/org/apache/cocoon/components/language/markup/Logicsheet.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- Logicsheet.java 2001/08/25 19:40:32 1.5 +++ Logicsheet.java 2001/08/31 13:48:57 1.6 @@ -13,6 +13,8 @@ import org.apache.avalon.framework.component.ComponentException; import org.apache.cocoon.environment.Source; +import org.apache.cocoon.environment.SourceResolver; +import org.apache.cocoon.environment.URLFactorySourceResolver; import org.apache.cocoon.util.TraxErrorHandler; import org.apache.cocoon.components.url.URLFactory; import org.apache.cocoon.components.xslt.XSLTProcessor; @@ -48,7 +50,7 @@ * @author <a href="mailto:[EMAIL PROTECTED]">Ricardo Rocha</a> * @author <a href="mailto:[EMAIL PROTECTED]">Davanum Srinivas</a> * @author <a href="mailto:[EMAIL PROTECTED]">Ovidiu Predescu</a> - * @version CVS $Revision: 1.5 $ $Date: 2001/08/25 19:40:32 $ + * @version CVS $Revision: 1.6 $ $Date: 2001/08/31 13:48:57 $ */ public class Logicsheet extends AbstractLoggable { @@ -72,12 +74,13 @@ */ ComponentManager manager; - public Logicsheet(Source source, ComponentManager manager) + public Logicsheet(Source source, ComponentManager manager, SourceResolver resolver) { this.source = source; this.manager = manager; try { xsltProcessor = (XSLTProcessor)manager.lookup(XSLTProcessor.ROLE); + xsltProcessor.setSourceResolver(resolver); } catch (ComponentException e) { getLogger().error("Cannot obtain XSLTProcessor component: " + e); @@ -110,6 +113,7 @@ this.source = new URLSource(url, manager); try { xsltProcessor = (XSLTProcessor)manager.lookup(XSLTProcessor.ROLE); + xsltProcessor.setSourceResolver(new URLFactorySourceResolver(urlFactory, manager)); } catch (ComponentException e) { getLogger().error("Cannot obtain XSLTProcessor component: " + e); 1.1 xml-cocoon2/src/org/apache/cocoon/environment/URLFactorySourceResolver.java Index: URLFactorySourceResolver.java =================================================================== /***************************************************************************** * Copyright (C) The Apache Software Foundation. All rights reserved. * * ------------------------------------------------------------------------- * * This software is published under the terms of the Apache Software License * * version 1.1, a copy of which has been included with this distribution in * * the LICENSE file. * *****************************************************************************/ package org.apache.cocoon.environment; import java.io.IOException; import java.net.URL; import org.apache.avalon.framework.component.ComponentManager; import org.apache.avalon.framework.component.ComponentException; import org.apache.cocoon.ProcessingException; import org.apache.cocoon.components.source.URLSource; import org.apache.cocoon.components.url.URLFactory; import org.xml.sax.SAXException; /** * A <code>SourceResolver</code> based on a <code>URLFactory</code>. * * @author <a href="mailto:[EMAIL PROTECTED]">Sylvain Wallez</a> * @version CVS $Revision: 1.1 $ $Date: 2001/08/31 13:48:57 $ */ public class URLFactorySourceResolver implements SourceResolver { /** The component manager */ protected ComponentManager manager; /** The URL factory */ protected URLFactory urlFactory; /** * Creates an <code>URLFactorySourceResolver</code> with a component manager. * The <code>URLFactory</code> is looked up in the component manager. */ public URLFactorySourceResolver(ComponentManager manager) throws ComponentException { this.manager = manager; this.urlFactory = (URLFactory)manager.lookup(URLFactory.ROLE); } /** * Creates an <code>URLFactorySourceResolver</code> with a component manager and * a <code>URLFactory</code> that will be used to resolve URLs. */ public URLFactorySourceResolver(URLFactory factory, ComponentManager manager) { this.urlFactory = factory; this.manager = manager; } /** * Resolve the source. * * @param systemID This is either a system identifier * (<code>java.net.URL</code>) or a local file. */ public Source resolve(String systemID) throws ProcessingException, SAXException, IOException { URL url = this.urlFactory.getURL(systemID); return new URLSource(url, this.manager); } } ---------------------------------------------------------------------- In case of troubles, e-mail: [EMAIL PROTECTED] To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]