Lars Trieloff skrev:
Hi Daniel,
A drawback with using the some extension of the VPCs for inter block
communication is that it ties the communications to the specific
sitemap component APIs, so they are not usable for communication with
non sitemap blocks.
What I would propose is to create some new pipeline components that
calls postable sources, and make the block protocol postable. Then we
have four cases for the different combinations of XML or non XML input
and output respectably:
non XML -> non XML
<map:read type="service" src="block:b:/foo1"/>
non XML -> XML
<map:generate type="service" src="input.txt">
<map:parameter name="service" value="block:b:/foo2"/>
</map:generate>
XML -> XML
<map:transform type="service" src="block:b:/foo3"/>
XML -> non XML
<map:serialize type="service" src="block:b:/foo4"/>
I think this is the way we should do it. Using the source interface it
is possible to communicate with simple servlets, with the sitemap
components, it is easy to use from the sitemap.
Great.
A tricky thing is of course to get rid of buffering and serializing
followed by parsing steps for calls to services that have XML input
and/or output. But I think that 1) the problem is solvable and 2) we
don't have to solve it in the first implementation.
What is the exact interface that the BlockSource has to implement? Then
I could start looking into implementing the interface.
It needs to implement org.apache.excalibur.source.ModifiableSource. Take
a look at
http://svn.apache.org/repos/asf/excalibur/trunk/components/sourceresolve/src/java/org/apache/excalibur/source/impl/HTTPClientSource.java
together with the patch in
http://issues.apache.org/jira/browse/COCOON-871 for how I did the
HTTPClientSource postable.
Anyway: Is it possible to apply Alexander's original patch, as we need
it in our application and it does not seem to invasive from my point of
view?
If you refer to COCOON-1943, it is already done. If you refer to the
{params-to-uri:request-param} input module that he refered to but not
submitted, please apply it if you feel like it.
/Daniel