vgritsenko 02/04/13 17:45:29 Modified: src/java/org/apache/cocoon/components/xscript XScriptManagerImpl.java XScriptObject.java XScriptObjectFromURL.java XScriptObjectInlineXML.java src/java/org/apache/cocoon/components/language/markup/xsp/java xscript-lib.xsl Log: Fix xscript: toSAX method is from the Source interface, thus cannot use Embedded handler there. Revision Changes Path 1.7 +1 -3 xml-cocoon2/src/java/org/apache/cocoon/components/xscript/XScriptManagerImpl.java Index: XScriptManagerImpl.java =================================================================== RCS file: /home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/xscript/XScriptManagerImpl.java,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- XScriptManagerImpl.java 22 Feb 2002 07:00:15 -0000 1.6 +++ XScriptManagerImpl.java 14 Apr 2002 00:45:29 -0000 1.7 @@ -52,8 +52,6 @@ import java.util.HashMap; -import java.io.InputStream; - import org.apache.avalon.framework.logger.AbstractLoggable; import org.apache.avalon.framework.parameters.Parameters; import org.apache.avalon.framework.parameters.Parameterizable; @@ -71,7 +69,7 @@ * The actual implementation of the <code>XScriptManager</code> interface. * * @author <a href="mailto:[EMAIL PROTECTED]">Ovidiu Predescu</a> - * @version CVS $Id: XScriptManagerImpl.java,v 1.6 2002/02/22 07:00:15 cziegeler Exp $ + * @version CVS $Id: XScriptManagerImpl.java,v 1.7 2002/04/14 00:45:29 vgritsenko Exp $ * @since August 4, 2001 */ public class XScriptManagerImpl 1.8 +23 -18 xml-cocoon2/src/java/org/apache/cocoon/components/xscript/XScriptObject.java Index: XScriptObject.java =================================================================== RCS file: /home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/xscript/XScriptObject.java,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- XScriptObject.java 22 Feb 2002 07:00:15 -0000 1.7 +++ XScriptObject.java 14 Apr 2002 00:45:29 -0000 1.8 @@ -66,7 +66,6 @@ import org.apache.avalon.framework.parameters.Parameters; import org.apache.avalon.framework.component.ComponentManager; import org.apache.avalon.framework.component.ComponentException; -import org.apache.avalon.framework.component.Component; import org.apache.avalon.framework.component.Composable; /** @@ -75,7 +74,7 @@ * Source object. * * @author <a href="mailto:[EMAIL PROTECTED]">Ovidiu Predescu</a> - * @version CVS $Id: XScriptObject.java,v 1.7 2002/02/22 07:00:15 cziegeler Exp $ + * @version CVS $Id: XScriptObject.java,v 1.8 2002/04/14 00:45:29 vgritsenko Exp $ * @since August 4, 2001 */ public abstract class XScriptObject implements Source, Composable @@ -115,12 +114,11 @@ * variable to this instance. Return the result of the * transformation as an <code>XScriptObject</code>. * - * @param source a <code>XScriptObject</code> value * @param stylesheet a <code>XScriptObject</code> value * @param params a <code>Parameters</code> value containing optional * arguments to be passed to the XSLT processor. - * @param result a <code>Result</code> value. This is where the - * result of the XSLT processing will be placed. + * @return <code>XScriptObject</code> object containing the result + * of the XSLT processing. * @exception IllegalArgumentException if an error occurs * @exception ProcessingException if an error occurs */ @@ -145,27 +143,32 @@ } } - public void toSAX(ContentHandler handler) - throws SAXException + public void toEmbeddedSAX(ContentHandler handler) throws SAXException + { + EmbeddedXMLPipe newHandler = new EmbeddedXMLPipe(handler); + toSAX(newHandler); + } + + /* The Source interface methods. */ + + public void toSAX(ContentHandler handler) throws SAXException { Parser parser = null; try { - EmbeddedXMLPipe newHandler = new EmbeddedXMLPipe(handler); - parser = (Parser)componentManager.lookup(Parser.ROLE); - InputSource source = getInputSource(); - parser.parse(source, newHandler); - - } catch (Exception ex) { - throw new SAXException(ex); + parser.parse(source, handler); + } catch (SAXException e) { + throw e; + } catch (Exception e) { + throw new SAXException(e); } finally { - if (parser != null) componentManager.release(parser); + if (parser != null) { + componentManager.release(parser); + } } } - /* The Source interface methods. */ - public long getLastModified() { return lastModifiedDate.getTime(); @@ -176,7 +179,9 @@ public InputSource getInputSource() throws ProcessingException, IOException { - return new InputSource(getInputStream()); + InputSource is = new InputSource(getInputStream()); + is.setSystemId(getSystemId()); + return is; } public void recycle() 1.6 +3 -7 xml-cocoon2/src/java/org/apache/cocoon/components/xscript/XScriptObjectFromURL.java Index: XScriptObjectFromURL.java =================================================================== RCS file: /home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/xscript/XScriptObjectFromURL.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- XScriptObjectFromURL.java 22 Feb 2002 07:00:15 -0000 1.5 +++ XScriptObjectFromURL.java 14 Apr 2002 00:45:29 -0000 1.6 @@ -57,16 +57,13 @@ import org.apache.cocoon.components.url.URLFactory; import org.apache.cocoon.ProcessingException; -import org.apache.avalon.framework.component.Composable; -import org.apache.avalon.framework.component.ComponentManager; import org.apache.avalon.framework.component.ComponentException; -import org.apache.avalon.framework.component.Component; /** * An <code>XScriptObject</code> created from the contents of a URL. * * @author <a href="mailto:[EMAIL PROTECTED]">Ovidiu Predescu</a> - * @version CVS $Id: XScriptObjectFromURL.java,v 1.5 2002/02/22 07:00:15 cziegeler Exp $ + * @version CVS $Id: XScriptObjectFromURL.java,v 1.6 2002/04/14 00:45:29 vgritsenko Exp $ * @since August 30, 2001 */ public class XScriptObjectFromURL extends XScriptObject @@ -105,8 +102,7 @@ componentManager.release(urlFactory); return is; - } - catch (ComponentException ex) { + } catch (ComponentException ex) { throw new ProcessingException(ex); } } @@ -124,7 +120,7 @@ public String getSystemId() { // FIXME: generate a real system id to represent this object - return "file:/"; + return "xscript:url:" + systemId; } public void recycle() 1.5 +2 -2 xml-cocoon2/src/java/org/apache/cocoon/components/xscript/XScriptObjectInlineXML.java Index: XScriptObjectInlineXML.java =================================================================== RCS file: /home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/xscript/XScriptObjectInlineXML.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- XScriptObjectInlineXML.java 22 Feb 2002 07:00:15 -0000 1.4 +++ XScriptObjectInlineXML.java 14 Apr 2002 00:45:29 -0000 1.5 @@ -68,7 +68,7 @@ * An <code>XScriptObject</code> created from an inline XML fragment. * * @author <a href="mailto:[EMAIL PROTECTED]">Ovidiu Predescu</a> - * @version CVS $Id: XScriptObjectInlineXML.java,v 1.4 2002/02/22 07:00:15 cziegeler Exp $ + * @version CVS $Id: XScriptObjectInlineXML.java,v 1.5 2002/04/14 00:45:29 vgritsenko Exp $ * @since July 7, 2001 */ public class XScriptObjectInlineXML extends XScriptObject @@ -129,6 +129,6 @@ { // FIXME: Implement a URI scheme to be able to refer to XScript // variables by URI - return "file:/"; + return "xscript:inline:" + System.identityHashCode(this); } } 1.5 +6 -8 xml-cocoon2/src/java/org/apache/cocoon/components/language/markup/xsp/java/xscript-lib.xsl Index: xscript-lib.xsl =================================================================== RCS file: /home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/language/markup/xsp/java/xscript-lib.xsl,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- xscript-lib.xsl 28 Feb 2002 14:41:07 -0000 1.4 +++ xscript-lib.xsl 14 Apr 2002 00:45:29 -0000 1.5 @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> -<!-- $Id: xscript-lib.xsl,v 1.4 2002/02/28 14:41:07 vgritsenko Exp $--> +<!-- $Id: xscript-lib.xsl,v 1.5 2002/04/14 00:45:29 vgritsenko Exp $--> <!-- ============================================================================ @@ -57,7 +57,7 @@ * Date: September 19, 2001 * * @author <a href="mailto:[EMAIL PROTECTED]>Ovidiu Predescu</a> - * @version CVS $Revision: 1.4 $ $Date: 2002/02/28 14:41:07 $ + * @version CVS $Revision: 1.5 $ $Date: 2002/04/14 00:45:29 $ --> <xsl:stylesheet @@ -125,9 +125,8 @@ event stream --> <xsp:logic> try { - <xsl:value-of select="$object"/>.toSAX(this.contentHandler); - } - catch (IllegalArgumentException ex) { + <xsl:value-of select="$object"/>.toEmbeddedSAX(this.contentHandler); + } catch (IllegalArgumentException ex) { <xscript:error><xsp:expr>ex.getMessage()</xsp:expr></xscript:error> } </xsp:logic> @@ -198,14 +197,13 @@ <xsl:with-param name="parameters" select="$parameters"/> </xsl:call-template> XScriptObject result = <xsl:value-of select="$object"/>.transform( - <xsl:value-of select="$stylesheet-object"/>, - <xsl:value-of select="$params"/>); + <xsl:value-of select="$stylesheet-object"/>, <xsl:value-of select="$params"/>); <!-- System.out.println("input source =\n" + <xsl:value-of select="$object"/>); System.out.println("stylesheet source =\n" + <xsl:value-of select="$stylesheet-object"/>); System.out.println("transformation result =\n" + result); --> - result.toSAX(this.contentHandler); + result.toEmbeddedSAX(this.contentHandler); } </xsp:logic> </xsl:template>
---------------------------------------------------------------------- In case of troubles, e-mail: [EMAIL PROTECTED] To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]