Grzegorz Kossakowski wrote:
In this case content of test.html is POSTed to the service and is
available to it by "service-consumer:" source. Generator in service
pipeline reads data from "service-consumer:" so this effectively means
that it reads "test.html" file, parsers it and returns SSAX stream
representing html content back to the calling pipeline.
Service generator and its behavior fits current meaning of a generator
component. Currently, we call a component "generator" if it takes some
input data (may it be non-XML) and emits SAX events based on provided
data, right?
Now, with service generator it means that generator redirects (posts)
incoming raw data to the service and expects SAX events as output that
it will pass down to the pipeline.
I hope this helps.
What about reversing the logic: Instead of
>>> <map:match pattern="test5">
>>> <map:generate type="servletService" src="test.html">
>>> <map:parameter name="service" value="servlet:test2:/extract-html"/>
>>> </map:generate>
>>> <map:serialize type="xml"/>
>>> </map:match>
we could use
<map:match pattern="test5">
<map:generate type="servletService" src="servlet:test2:/extract-html">
<map:parameter name="data" value="test.html"/>
</map:generate>
<map:serialize type="xml"/>
</map:match>
It doesn't make that much difference for generators, but would save one line
each for serializers and transformers.
WDYT?
--
Reinhard Pötz Independent Consultant, Trainer & (IT)-Coach
{Software Engineering, Open Source, Web Applications, Apache Cocoon}
web(log): http://www.poetz.cc
--------------------------------------------------------------------