How about ICE?
I've got a Cocoon-friendly ICE 1.1 effort underway. If I get it working.....(amidst the myriad of other things going on) Besides ICE 2.0 is beingrefactored for SOAP integration...so it would be a shame to miss out on that.... > > Following is an initial draft of a new component I am starting to work on. > > Fire and Ice welcome ;) > > > ------------------------------------------------------------------------ > > The WebServiceProxy Cocoon generator is intended to: > > 1) Allow easy syndication of dynamic content as a natural extension of the >currently popular > static content syndication with RSS. > > 2) Allow transparent routing of web service request through GET, POST, SOAP-RPC and >SOAP-DOC > binding methods. > > 3) Allow almost full control through sitemap configuration. > > 4) Allow use of Cocoon components for content formatting, aggregation and styling >through a > tight integration with the Cocoon sitemap. > > 5) Require 0 (zero) lines of Java or other business logic code in most cases. > > 6) Be generic and flexible enough to allow custom extensions for > advanced and non-typical uses. > > 7) Support sessions, authentication, http 1.1, https, request > manipulation, redirects following, connection pooling, and others. > > 8) Use the Jakarta HttpClient library which provides many sophisticated features >for HTTP > connections. > > > > ------------------------------------------------------------------------ Example I: >Integration > of the Amazon book search service in a Cocoon portal: > ------------------------------------------------------------------------ > > pipeline: > --------- > > <map:pipeline> > <map:match pattern="amazon/searchform"> > <map:generate src="AmazonForm.xml"/> > <map:transform src="AmazonForm2html.xsl"/> > <map:transform > src="context://stylesheets/xmlform/xmlform2html.xsl"/> > <map:serialize type="html"/> > </map:act> > </map:match> > > <map:match pattern="amazon/search*"> > > <map:generate src="http://rcm.amazon.com/e/cm{1}"> > <!-- The WebSericeProxy generator takes 3 arguments: --> <!-- 1) The >URL of the > targeted web service --> > <!-- 2) The binding method: GET, POST, SOAP-RPC or > SOAP-DOC --> > <!-- 3) Optionally, name of the session to the remote > service, which allows scoping and grouping between different sitemap sections. --> > <map:parameter name="wsproxy-method" value="GET"/> > <map:parameter name="wsproxy-session" > value="myAmazonSession"/> > </map:generate> > > <map:transform src="amazonform2html.xsl"/> > <map:transform > src="context://stylesheets/xmlform/xmlform2html.xsl"/> > <map:serialize type="html"/> > </map:act> > </map:match> > </map:pipeline> > > > AmazonForm.xml: > --------------- > > <?xml version="1.0" ?> > <document xmlns:xf="http://xml.apache.org/cocoon/xmlform/2002"> > <xf:form id="form-amazon" view="search" > action="amazon/search?t=myAmazonId-02-20&l=st1&mode=books&p=102&o=1&f=xml"> > <xf:caption>Amazon book search by keyword</xf:caption> > <xf:textbox ref="search"> > <xf:caption>Keywords</xf:caption> > </xf:textbox> > <xf:submit id="submit" class="button"> > <xf:caption>Submit</xf:caption> > </xf:submit> > </xf:form> > </document> > > > ------------------------------------------------------------------------ Example II: >Even more > interesting. > Integration with an interactive web service - the Cocoon FeedBack Wizard. Notice >that it is > actually simpler to integrate with an interactive service then a "single call" >based one, > because WebServiceProxy supports sessions as well ! > ------------------------------------------------------------------------ > > <map:pipeline> > <map:match pattern="RemoteWizard/*"> > <map:generate > src="http://remotehost:8080/cocoon/samples/xmlform/{1}"> > <map:generate src="http://rcm.amazon.com/e/cm{1}"> > <map:parameter name="wsproxy-method" value="POST"/> <map:parameter > name="wsproxy-session" > value="myFeedbackWizardSession"/> > </map:generate> > <map:transform src="myNewStyle-wizard2html.xsl"/> > <map:transform > src="context://stylesheets/xmlform/xmlform2html.xsl"/> > <map:serialize type="html"/> > </map:act> > </map:match> > </map:pipeline> > > > > ------------------------------------------------------------------------ End of file > ------------------------------------------------------------------------ > > > -- > > -= Ivelin =- > > > --------------------------------------------------------------------- To >unsubscribe, e-mail: > [EMAIL PROTECTED] > For additional commands, email: [EMAIL PROTECTED] -- "The heights of genius are only measurable by the depths of stupidity." --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, email: [EMAIL PROTECTED]