You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by sy...@apache.org on 2001/08/31 15:48:57 UTC
cvs commit: xml-cocoon2/src/org/apache/cocoon/environment URLFactorySourceResolver.java
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:ricardo@apache.org">Ricardo Rocha</a>
* @author <a href="mailto:dims@yahoo.com">Davanum Srinivas</a>
* @author <a href="mailto:ovidiu@cup.hp.com">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:ricardo@apache.org">Ricardo Rocha</a>
* @author <a href="mailto:dims@yahoo.com">Davanum Srinivas</a>
* @author <a href="mailto:ovidiu@cup.hp.com">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:sylvain@apache.org">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: webmaster@xml.apache.org
To unsubscribe, e-mail: cocoon-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: cocoon-cvs-help@xml.apache.org