...as I am using jelly as part of an XML cache, in which I don't have a File, URL, or URI. It would be nice if these methods can be reviewed and checked in. Of course I am not a commiter, so I need to hand these over by mail (is there any other way?) I checked out the source this morning.
ISSUE: I did ChildContext with a URL of '/' as no parent URL can be given ISSUE: Very brute force method (copy/paste design pattern), but I'll leave the elegance to the owner ISSUE: I am not showing the new imports (SAX Input source) Here they go... /** * Attempts to parse the script from the given input stream using the * [EMAIL PROTECTED] #getResource} method then returns the compiled script. */ public Script compileScript(InputStream in) throws JellyException { XMLParser parser = getXMLParser(); parser.setContext(this); Script script = null; try { script = parser.parse(in); } catch (IOException e) { throw new JellyException("Could not parse Jelly script",e); } catch (SAXException e) { throw new JellyException("Could not parse Jelly script",e); } return script.compile(); } /** * Attempts to parse the script from the given input source using the * [EMAIL PROTECTED] #getResource} method then returns the compiled script. */ public Script compileScript(InputSource in) throws JellyException { XMLParser parser = getXMLParser(); parser.setContext(this); Script script = null; try { script = parser.parse(in); } catch (IOException e) { throw new JellyException("Could not parse Jelly script",e); } catch (SAXException e) { throw new JellyException("Could not parse Jelly script",e); } return script.compile(); } /** * Parses the script from the given input stream then compiles it and runs it. * * @return the new child context that was used to run the script */ public JellyContext runScript(InputStream in, XMLOutput output) throws JellyException { return runScript(in, output, JellyContext.DEFAULT_EXPORT, JellyContext.DEFAULT_INHERIT); } /** * Parses the script from the given input source then compiles it and runs it. * * @return the new child context that was used to run the script */ public JellyContext runScript(InputSource in, XMLOutput output) throws JellyException { return runScript(in, output, JellyContext.DEFAULT_EXPORT, JellyContext.DEFAULT_INHERIT); } /** * Parses the script from the given file then compiles it and runs it. * * @return the new child context that was used to run the script */ public JellyContext runScript(InputStream in, XMLOutput output, boolean export, boolean inherit) throws JellyException { Script script = compileScript(in); URL newJellyContextURL = null; try { newJellyContextURL = new URL("/"); } catch (MalformedURLException e) { throw new JellyException(e.toString()); } JellyContext newJellyContext = newJellyContext(); newJellyContext.setRootURL( newJellyContextURL ); newJellyContext.setCurrentURL( newJellyContextURL ); newJellyContext.setExport( export ); newJellyContext.setInherit( inherit ); if ( inherit ) { // use the same variable scopes newJellyContext.variables = this.variables; } if (log.isDebugEnabled() ) { log.debug( "About to run script from input stream"); log.debug( "root context URL: " + newJellyContext.rootURL ); log.debug( "current context URL: " + newJellyContext.currentURL ); } script.run(newJellyContext, output); return newJellyContext; } /** * Parses the script from the given input source then compiles it and runs it. * * @return the new child context that was used to run the script */ public JellyContext runScript(InputSource in, XMLOutput output, boolean export, boolean inherit) throws JellyException { Script script = compileScript(in); URL newJellyContextURL = null; try { newJellyContextURL = new URL("/"); } catch (MalformedURLException e) { throw new JellyException(e.toString()); } JellyContext newJellyContext = newJellyContext(); newJellyContext.setRootURL( newJellyContextURL ); newJellyContext.setCurrentURL( newJellyContextURL ); newJellyContext.setExport( export ); newJellyContext.setInherit( inherit ); if ( inherit ) { // use the same variable scopes newJellyContext.variables = this.variables; } if (log.isDebugEnabled() ) { log.debug( "About to run script from input source"); log.debug( "root context URL: " + newJellyContext.rootURL ); log.debug( "current context URL: " + newJellyContext.currentURL ); } script.run(newJellyContext, output); return newJellyContext; } --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]