[Xml-compile] XML::Compile::SOAP v2.00_01 [DEVEL]

Mark Overmeer mark at overmeer.net
Mon Dec 29 11:11:06 GMT 2008


I have just released XML::Compile::SOAP v2.00_01, a development release,
as you can see from the version.  The version makes a big jump from the
previous 0.78 to indicate that the differences are huge.

 . if you use the compile() method to create calls and you use document
   style SOAP, then everything should work with one single simple change:
   add to your script:
     use XML::Compile::SOAP11;

 . if you use compile() with rpc-literal, then you have to rewrite your
   code into something much, much simpler.  Daniel Ruoso showed me how
   to interpret the (very unclear) specs...  Actually, it now works
   like document-style SOAP.  Have a look at the new examples.

 . if you use rpc-encoded, then you will have to wait to one of the
   next development releases: in this release it will not work.  Also
   that usage will be much simpler, once it is done.

 . if you are doing nasty things with the old module, then these changes
   will hurt seriously.  The old implementation will not be continued.

As you ought to know: the first implementation of OO modules always sucks.
The second attempt is usually better.  The code inside the methods mainly
got simplified by using (the recently developed) XML::Compile::Cache.
The organization of the code fragments has changed much much more.

  -- OLD NAME --                       -- CHANGE --
  XML::Compile::SOAP
  XML::Compile::SOAP::Client
  XML::Compile::SOAP::Encoding         XML::Compile::SOAP11::Encoding
  XML::Compile::SOAP::Server
  XML::Compile::SOAP::Tester
  XML::Compile::SOAP::Trace
  XML::Compile::SOAP::Util
  XML::Compile::SOAP11
  XML::Compile::SOAP11::Client
  XML::Compile::SOAP11::Server
  XML::Compile::SOAP12                 fork
  XML::Compile::SOAP12::Client         fork
  XML::Compile::SOAP12::Server         fork
  XML::Compile::Transport
  XML::Compile::Transport::SOAPHTTP
  XML::Compile::WSDL11::Operation      XML::Compile::Operation
  XML::Compile::WSDL11

New: XML::Compile::SOAP11::Operation
This object is created from the WSDL information, and is used to
create server and client SOAP11 calls.  In the new implementation, the
XML::Compile::SOAP11 code does not know anything about WSDL.  This is
a major abstraction improvement.  Catalyst::Controler::SOAP must be
changed to use this Operation object as source.

The SOAP12 modules will be distributed seperately in XML::Compile::SOAP12
They are not usuable on the moment, although quite some code already
exists.  It contains
 lib/XML/Compile/SOAP12.pm
 lib/XML/Compile/SOAP12/Client.pm
 lib/XML/Compile/SOAP12/Server.pm
 lib/XML/Compile/SOAP12/Util.pm
 lib/XML/Compile/SOAP12/Operation.pm
 lib/XML/Compile/SOAP12/xsd/2003-soap-encoding.xsd
 lib/XML/Compile/SOAP12/xsd/2003-soap-envelope.xsd
 lib/XML/Compile/SOAP12/xsd/2003-soap-rpc.xsd
 lib/XML/Compile/WSDL11/xsd/wsdl-soap12.xsd

XML::Compile::SOAP has now nicely pluggable back-ends: your script only
loads the definitions you need.  These schema's grow larger and larger,
and come with serious start-up time.  Therefore, you pick only
 . the protocols you need (f.i. XML::Compile::SOAP)
 . the transporter you need (f.i. XML::Compile::Transport::SOAPHTTP)
 . the encoders you need (f.i. XML::Compile::SOAP11::Encode)
So: from now on, you can use SOAP12 without the SOAP11 penalty.  Once
SOAP12 gets implemented ;-)  Amongst the other protocols which can
be defined in WSDL is Jabber.  Amongst the other transporters are MIME,
pure HTTP, and XMPP... also all to be implemented.  Care is taken to
make WSDL2 simple as well.

I have run the new code with all the bug-reporting examples I collected,
and all the document style WSDLs seem to work without change.  I hope you
have time to play with the development release, before 2.01 gets released.
-- 
Regards,

               MarkOv

------------------------------------------------------------------------
       Mark Overmeer MSc                                MARKOV Solutions
       Mark at Overmeer.net                          solutions at overmeer.net
http://Mark.Overmeer.net                   http://solutions.overmeer.net



More information about the Xml-compile mailing list