Hi All, Have just checked everything into HEAD. If there's any problems please let me know and I'll fix them immediately. Cheers, Marcus On Wed, Sep 04, 2002 at 10:19:05PM +0200, Giacomo Pati wrote: > > Awesome work, Marcus, but can you post the ComposerReader? > > Anybody else but me finds this should make its way into HEAD? > > Giacomo > > On Wed, 4 Sep 2002, Marcus Crafter wrote: > > > Hi All, > > > > Hope all is well. > > > > After working through some interesting issues :) I've updated the > > SOAP server for Cocoon that I've been working on in the following > > areas: > > > > o SOAP server reader is now based on Axis, rather than Apache SOAP. > > > > o Helper abstract classes have been written allowing webservices > > to implement LogEnabled and Composable. > > > > o Several webservices are now included: > > > > o cache (allows you to remotely manipulate the Cocoon cache > > via soap, eg. clear it) > > > > o memory (allows you to view the total and free amount of > > memory in your Cocoon application, also allows you > > to remotely invoke the garbarge collector) > > > > o system (allows you to inspect the hardware your server > > is running on) > > > > o process (allows you to run a system process on the server > > and view the output. eg. ps, uptime, df, etc) > > > > o Included a small sample webapp which allows you to list the > > services currently deployed. > > > > o Moved entire source over to scratchpad, rather than core > > > > The source with libraries is now much larger than the original version, > > I'll make it available via http somewhere and enter a bugzilla patch. > > > > Comments, suggestions more than welcome. > > > > Cheers, > > > > Marcus > > > > On Thu, Aug 15, 2002 at 04:30:09PM +0200, Marcus Crafter wrote: > > > Hi All, > > > > > > Hope all is well. > > > > > > Over the past couple of days I've been working on adding the > > > ability for a Cocoon application to serve SOAP requests. > > > > > > The motivation for this work came from: > > > > > > o The need to share business logic data with other projects, ie. > > > B2B communcation. > > > > > > o The desire to build an administration application and remotely query > > > a live system about its status. > > > > > > Instead of building a second server into our application (ie. RMI, > > > CORBA, etc), I thought it might be better to use SOAP for this for > > > several reasons, mainly since servlet based Cocoon applications are > > > really HTTP oriented servers anyway. > > > > > > The code adding this functionality is in bugzilla, #11728. > > > > > > My hope is that this feature is of use for others too. > > > > > > Essentially, I took the RPCRouterServlet from the Apache SOAP > > > project and ported it to Cocoon as a Reader, which in effect > > > allows you to register SOAP services within your Cocoon app, and > > > serve data to other clients. > > > > > > The reader can be configured in the sitemap as follows: > > > > > > <!-- Defines a SOAP RPC reader that will serve SOAP requests via HTTP-POST. > > > > > > 'managed-services' defines a list of Apache SOAP deployment descriptors > > > that will be automatically deployed at startup and undeployed at > > > shutdown of this reader. > > > --> > > > <map:reader logger="sitemap.reader.soap-rpc" name="soap-rpc" > > > src="org.apache.cocoon.reading.SoapRPCReader"> > > > <managed-services> > > > <descriptor >src="resource://org/apache/cocoon/components/soap/services/memory/DeploymentDescriptor.xml"/> > > > </managed-services> > > > </map:reader> > > > > > > Consult the javadocs for the full option set which includes the > > > ability to set an EnvelopeEditorFactory, and custom SOAP server xml > > > config file. > > > > > > The pipeline match is quite simple like most readers: > > > > > > <!-- Match SOAP RPC Router requests --> > > > <map:match pattern="rpcrouter"> > > > <map:read type="soap-rpc" mime-type="text/xml"/> > > > </map:match> > > > > > > With these 2 sections added to your sitemap, you can then make > > > HTTP-POST queries to the above pipeline to deploy, list, invoke or > > > undeploy particular SOAP services from your Cocoon app. The > > > ServiceManagerClient class that comes with Apache SOAP is quite > > > useful for this. > > > > > > I've included an example service with my patch which allows a > > > remote client to query the amount of free & total memory the remote > > > Cocoon app currently has, and also allows a client to invoke the > > > garbage collector on the remote application. > > > > > > For those interested have a look at the class and deployment > > > descriptor in the o/a/c/components/soap/services/memory directory, > > > and the webapps/samples/soap directory. > > > > > > The SoapRPCReader also adds the Cocoon request, response, context > > > and ComponentManager to the SOAP request context, which means it's > > > possible for your SOAP services to access any avalon components you may > > > have written, and also session data that may be relevant for the > > > particular request. Have a look at the > > > o/a/c/components/soap/services/template directory for an example of > > > this. > > > > > > Normal SOAP services (ie. cocoon independant) can also be deployed, > > > including those implemented in other languages via BSF support. The > > > Apache SOAP documentation describes how this can be done. > > > > > > The reader itself requires the presence of the Apache SOAP jar > > > (2.3.1 used during development), and the SUN activation and > > > javamail jar. I've modified the build.xml so that the reader and > > > associated services are only built if these libraries are present. > > > > > > I'm now looking at the various statistical & administration > > > information we might like to provide from Cocoon, hopefully in > > > combination with the instrumentation interfaces from Excalibur. > > > > > > Ok, so I hope its of use for more people that just me, if there's any > > > questions, comments, feel free to ask. > > > > > > Cheers, > > > > > > Marcus > > > > > > -- > > > ..... > > > ,,$$$$$$$$$, Marcus Crafter > > > ;$' '$$$$: Computer Systems Engineer > > > $: $$$$: ManageSoft GmbH > > > $ o_)$$$: 82-84 Mainzer Landstrasse > > > ;$, _/\ &&:' 60327 Frankfurt Germany > > > ' /( &&& > > > \_&&&&' > > > &&&&. > > > &&&&&&&: > > > > > > --------------------------------------------------------------------- > > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > > For additional commands, email: [EMAIL PROTECTED] > > > > > > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, email: [EMAIL PROTECTED] >
-- ..... ,,$$$$$$$$$, Marcus Crafter ;$' '$$$$: Computer Systems Engineer $: $$$$: ManageSoft GmbH $ o_)$$$: 82-84 Mainzer Landstrasse ;$, _/\ &&:' 60327 Frankfurt Germany ' /( &&& \_&&&&' &&&&. &&&&&&&: --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, email: [EMAIL PROTECTED]