cocoon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Hunsberger, Peter" <Peter.Hunsber...@stjude.org>
Subject RE: Running Schematron validation from flow
Date Mon, 29 Dec 2003 20:45:17 GMT
Ok, figured this out:  don't use copy, use processPipelineTo and use the
xmodule as the target...  So far so good, except I'm not seeing the
result in the request attribute after I've written it. 

I might note that if this works we've sort of got the capabliity for
dynamically composing pipelines in flowscript:  run whatever pipeline
you want to write whatever data into memory, later run a regular
pileline to aggregate this in memory data with it's normal output....

> 
> 
> Vadim Gritsenko <vadim.gritsenko@verizon.net> writes:
> 
> > 
> > Hunsberger, Peter wrote:
> > 
> > >Is
> > >there any existing in-memory writable source available for
> > reuse?  Any
> > >hints on how to do this?
> > >
> > 
> > Try:
> > http://nagoya.apache.org/bugzilla/show_bug.cgi?id=25210
> > http://nagoya.apache.org/bugzilla/show_bug.cgi?id=25517
> > 
> Thanks, that seems to be half the picture, but I think I'm 
> still missing
> something: can I call a Cocoon pipeline using xmodule?  I'm 
> getting the
> error:
> 
> 	"Cannot set XMLSerializer outputstream"
> 
> Which would seem to indicate a problem with the output 
> stream, but since I've tried using the request-attr stream 
> from the samples and got the same error I assume it's 
> something to do with the input side of the equation?
> 
> The sitemap fragment for the input data is straightforward enough:
> 
>             <map:match pattern="*/_validate/**">
>                 <map:generate src="cocoon:/{/1}/requestdata"/>
>                 <map:transform src="stylesheets/resolve_request.xsl"/>
>                 <map:transform 
> src="cocoon:/{1}/validationTemplate/{2}"/>
>                 <map:transform type="CTcheck"/>
>                 <map:serialize type="xml"/>
>             </map:match>
> 
> The flowscript looks like:
> 
>     var sourceURI = "xmodule:cocoon:run/_validate/"+collection;
>     var destinationURI = "xmodule:request-attr:validate";
> 
>     var resolver = null;
>     var source = null;
>     var destination = null;
>     try {
>         resolver = cocoon.getComponent( 
> Packages.org.apache.cocoon.environment.SourceResolver.ROLE );
>         source = resolver.resolveURI( sourceURI );
>         destination = resolver.resolveURI( destinationURI );
>         return Packages.org.apache.excalibur.source.SourceUtil.copy(
> source, destination );
>     } finally {
>         if ( source != null )
>             resolver.release( source );
>         if (destination != null)
>             resolver.release( destination );
>         cocoon.releaseComponent( resolver );
>     }
> 
> Where "collection" is a variable previously set that tells me 
> what collection of metadata I'm dealing with.  
> 
> Is this just a case of using the wrong protocol (If so what 
> would it be)?  Do I perhaps need a version of Cocoon from CVS 
> and not the 2.1.3 release?
> 
> One interesting thing to note is that the error is reported 
> as occurring at the "cocoon.releaseComponent( resolver);" 
> line of the flow script...
> 
> 
> 
> 
> 
> 
> 


Mime
View raw message