Doc-Literal, DIME Update and 0.65 Beta 2 Changes
Dear SOAP::Lite Developer Community,
First off I would like to say thank you to everyone writing to the mailing list, asking for help, contributing patches, etc. And to those of you like Paul, Duncan, and Jonathan who routinely assist in answering other people's questions on the mailing list. All of this activity is what allows me to focus my development efforts on what is *needed* as opposed to what I *think* is needed. As a result SOAP::Lite 0.65 stands to be one of the biggest and most important releases to date. So thank you.
Now for a few updates.
As a part of this release will be a very initial, and incomplete, implementation that can process document/literal WSDLs. The code is not particularly pretty right now, but I have been able to successfully make a call to the following service:
Thanks to Robert Nicholson whose email somehow managed to inspire me to tackle this. To Robert, you will be happy to know that the following code will now work in Beta 2:
use SOAP::Lite +trace => qw(debug);Things are certainly getting simpler. And one thing I will implement prior to 0.65's release is a caching mechanism so that generated stubs will be reused as opposed to regenerated each and every time a call is made. One aspect that really slows a client down is having to parse and reparse the WSDL each and every time. And until I have time to optimize WSDL parsing - things are likely to get slower, before they get faster (especially for WSDLs as complex as Salesforce.com's). So this caching will be critical.
my $wsdl = "http://ws2.serviceobjects.net/pt/PackTrack.asmx?WSDL";
my $license = "xxx";
my $bill = "yyy";
my $soap = SOAP::Lite->readable(1);
my $results = $soap
When all this is complete, the wsdl2perl project will inherit much of the logic now residing in SOAP::Lite.
The hooks for DIME support are in the toolkit, however, DIME::Tools is still new and requires some bug fixes. Domingo Alcazar, the toolkit's author, has agreed to integrate some unit tests I have written into DIME::Tools and resolve the issues I am experiencing. When his fixes are complete, DIME support will be complete. For the time being, DIME code is being checked in, but it doesn't work until DIME::Tools can be fixed.
Anyway, SOAP::Lite 0.65 Beta 2 contains even more new capabilities within it. They are detailed below:
+ Added ReleaseNotes.txtRelease Date
+ Added section REPORTING BUGS to pod comments
+ Deprecated SOAP::Lite->schema removed
+ Deprecated SOAP::Lite->on_debug removed
+ Deprecated SOAP::Schema->schema in favor of SOAP::Schema->schema_url
+ Added SOAP::Schema->useragent - which returns the LWP::UserAgent instance
that will be used when accessing WSDLs via the SOAP::Lite->service call.
This is helpful when access to a WSDL requires authentication, etc.
+ Made changes that allows messages to be constructed using a NULL body:
+ Added constant OBJS_BY_REF_KEEPALIVE which defaults to 600 - this is
so that services can configure how long to cache objects marked as persistent
+ Added the ability for a user to modify the UserAgent class used
by SOAP::Transport::HTTP::Client, updated Transport.pm's documentation
to reflect this. Added $SOAP::Transport::HTTP::Client::USERAGENT_CLASS
variable as a means of setting this.
+ SOAP Packager package/unpackage now take in a context variable as
input because packagers need to know what version of SOAP you are using
to properly bind to HTTP and SOAP
+ Refactored and rewrote README file
+ Renamed SOAP::Schema->stub() to SOAP::Schema->generate_stub(). This populates
a private variable called "stub" with the autogenerated Perl code.
+ Added SOAP::Schema->stub() which returns the autogenerated Perl code used
internally by SOAP::Lite. This can be helpful for debugging SOAP::Lite's
utilization of WSDL, as well as helpful to developers working on S::L's
I hope to release SOAP::Lite 0.65 Beta 2 tomorrow - my last day before I start work at a new company:
Anyway - stay tuned. Beta 2 is coming.