# # Revision history for Perl extension SOAP::Lite. # # $Id: Changes,v 1.21 2006/07/06 18:14:38 byrnereese Exp $ The contents of this file provides a change history for the SOAP::Lite Perl module. New features are designated with a '+' and bug fixes with a '!'. ----------------------------------------------------------------------- THIS RELEASE ----------------------------------------------------------------------- 0.69 Aug 16 2006 ! Commented out two lines of code that were causing S::L to die under a non-fatal error condition. This is a HACK. 0.68 July 6 2006 ! Patched support for mod_perl Apache2 (thanks to JT Justman) ! Fixed bug where SOAP::SOM objects were not properly detected, serialized and returned (thanks chris at prather dot o r g) ! Fixed bug with default_ns and ns functions so that they serialized XML properly. + Started to add experimental DIME support - possible impacts to MIME support as well 0.65-beta7 May 12 2005 + Added default_ns and ns to replace the confusing use of uri() and use_prefex() 0.65-beta6 June 3 2005 ! Fixed bug resulting in XMLRPC requests to be serialized using the doc/literal serializer if serializing arrays 0.65-beta5 May 6 2005 ! Fixed critical bug which prevented all XMLRPC servers from working 0.65-beta4 Apr 3 2005 ! Fixed bug 1160881 - HTTP headers are now terminated by \r\n for compatibility with .NET and compliance with HTTP spec. ! Fixed 1158666 - stubmaker.pl no longer call deprecated subroutine + stubmaker.pl got a lot of enhancements - now has help and version output, run time options, etc. See 'man stubmaker.pl' for more. + Classes generated by stub_maker.pl now have a special subroutine called 'want_som.' When set to 1, the stub class will return a SOAP::SOM object for every request. ! Fixed bug 1149427 - now capable of returning SOAP::SOM objects from generated stub classes. 0.65-beta3 Mon Oct 25 2004 + SOAP::Lite will only warn you once when you call a doc/literal service + Added SOAP::Schema->cache_dir() and SOAP::Schema->cache_ttl(), which control how code stubs generated from WSDLs are cached to prevent constant reparsing of WSDL files. ! Tested SOAP::Lite against Google, Salesforce, and FedEx. So far, clients can successfully call these service providers (at least some of their operations) - testing does not provide 100% coverage of their APIs. 0.65-beta2.1 Mon Oct 25 2004 + Fixed bug in unit tests in which MIME::Tools was not properly detected resulting in failed unit tests for some users. + Fixed some documentation issues (speling, etc). 0.65-beta2 Mon Oct 25 2004 ** WARNING ** substantial changes have been made to SOAP::Lite in this release in regards to how it manages attachments. The changes may introduce instabilities into your software that relies on this functionality. Please test your software with 0.65 prior to moving it to a production environment. + Added ReleaseNotes.txt + 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 allow messages to be constructed using a NULL body: <Envelope><Body /></Envelope> + 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 using SOAP::Server::Object->objects_by_reference() + 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. + Added initial DIME support + SOAP Packager package/unpackage now take in a context variable as input because DIME needs to know what version of SOAP you are using. + Refactored and rewrote README + Renamed SOAP::Schema->stub() to SOAP::Schema->generate_stub. This populates a private variable called C<stub> with the autogenerate 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 WSDL support. 0.65-beta1 Mon Oct 18 15:55:00 2004 + Made SOAP::Serializer->readable actually produce readable XML! ! Fixed bug 747312 - Made XML Schema 2001 the default schema + Changed typelookup of base64 to base64Binary to conform with 2001 schema + Added support for [almost] all XML Schema 2001 built-in datatypes + Added register_ns subroutine to SOAP::Serializer + Added find_prefix subroutine to SOAP::Serializer + Added use_prefix subroutine to SOAP::Serializer + Added a necessary set of initial subroutinues to support wsdl2perl project + Added format_datetime to SOAP::Utils + Documented SOAP::SOM->parts + Added SOAP::SOM->is_multipart + Properly escaped characters to facilitate emacs syntax highlighting + Ran podchecker to validate all POD comments ! Fixed bug 749636 - changed a croak to a warn to enable socket timeouts in SOAP::Transport::TCP::Server + Added support for UDDI 2/3 + Majorly revamped product documentation thanks to the kind contribution made by O'Reilly. Appendix B from "Programming Web Services with Perl" has been completely integrated. + To better segment SOAP::Lite documentation, many modules have been added that contain documentation only. For those who loved the old documentation, it can be found in lib/OldDocs/SOAP/*.pm and lib/OldDocs/SOAP/Transport/*.pm ! Fix a bug in which doclit style arrays were not being deserialized properly. IOW, Repeated elements were not made into an array, only the last occurring value was recorded. + Added the ability for a SOAP Client to gain direct access to the HTTP::Request and HTTP::Response objects. + Changed default envelope namespace prefix from SOAP-ENV to soap + Changed default encoding namespace prefix from SOAP-ENC to soapenc + Reachitected MIME support to decouple MIME layer from transport layer. This only impacts the HTTP layer since that is the only transport in SOAP::Lite that supports attachments. + Creation of SOAP::Packager - decoupled in an extensible way the packaging of parts (a.k.a. attachments). This is used for encoding and decoding. This enables a more seemless addition of DIME support. Changes were made throughout SOAP::Lite to accomodate this functionality. - a call "context" was added to SOAP::Server and SOAP::Deserializer so that those classes could have access to the global SOAP::Packager instance - deprecated many function calls and packages having to do with attachment support - fixed several of the SOAP::*::new() methods so that they don't inadvertantly reinitialize themselves and destroy precious context information in the process + Gave developers direct access to MIME::Parser object so that they can optimize its use. See the following URL to optimize it for memory consumption, parsing speed, disk utilization, etc: http://search.cpan.org/dist/MIME-tools/lib/MIME/Parser.pm#OPTIMIZING_YOUR_PARSER + Added a context variable to SOAP::Serializer and SOAP::Deserializer so that they have mechanisms for getting instance data from the calling context. The value of context is either SOAP::Lite or SOAP::Server depending upon the role the service is playing in the transaction. Contexts are initialized when a call is made, and destroyed when a call is completed. + Greater than character '>' has been added to list of characters that will be automatically escaped. This is not a requirement by the XML spec, it is a MAY, but I am doing it after seeing a minority of people report a compatibility problem. - Removed deprecated methods: SOAP::Serializer::namespace and encodingspace + Added SOAP::Serializer::encodingStyle method which allows users to set the URI for default encodingStyle. + Added initial support for literal encoding style. EXPERIMENTAL + Added some true constant values representing various SOAP namespace URIs + Added SOAP::Constants::SUPPORTED_ENCODING_STYLES for better tracking of the set of encoding styles that the toolkit can [de]serialize ! Fixed bug 840172 - "Makefile.PL --noprompt flag broken," now fixed + Updated SOAP 1.2 URIs to the latest (TODO - maintain support for older ones) + Added HTTPS support for HTTP::Server Daemon class - thanks to Nils Sowen for this contribution ----------------------------------------------------------------------- PREVIOUS RELEASES ----------------------------------------------------------------------- 0.60 Mon Aug 18 12:10:27 2003 + Merged SOAP::MIME into SOAP::Lite's core + Cleaned up the UI for the Makefile.PL script - it now detects and indicated whether certain Perl modules have been detected. The table displaying installation preferences has been substantially cleaned up, the code is much more modular and relies on a simple data structure representing potential module dependencies. + Made the Makefile.PL script iterative - meaning, the user will be continually be presented with their preferences until they explicity choose to accept them and continue (bug 747295) + Differentiate between xsd:int and xsd:long to fix interoperability bug with Java Web services ! Fixed MIME interoperability bug with Apache Axis - Axis' MIME parser requires that MIME boundaries are terminiated by a CRLF character where the MIME::Tools package only outputs a CR character. A patch was integrated into the MIME::Tools module which allows SOAP::Lite to specify its own MIME Boundary delimiter ! SOAP Faultcodes are now properly typed a xsd:QName, whereas before they were xsd:string - to be honest, they are left untyped so that toolkits can serialize them according to the schema (bug 747283) ! Fixed documentation error around turning on a trace for multiple "channels" (bug 747310) ! Disabled SOAPStruct (bug 747316) ! Fixed XML::Parser::Expat vulnerability (bug 747265) ! Added item in TROUBLESHOOTING section explaining that there is a bug in Perl 5.8 that prevents +autodispatch from working properly. The workaround is to use dispatch_from instead (bug 747290) ! Fixed warning when autodispatched call has no parameters (bug 747286) ! Fixed warning when empty SOAPAction specified (bug 747278) ! Turned off HTTP keep alive patch by default, however users can now turn on the patch by setting the constant PATCH_HTTP_KEEPALIVE to 1 (bug 747281) ! Removed dependency on the URI module for non-HTTP transports (bug 747306) 0.55 Mon Apr 15 22:20:39 2002 ! fixed security vulnerability with fully qualified method names (thanks to Randal Schwartz, Ilya Martynov and many others) ! fixed problem with TCP transport and SSL (thanks to Chris Hurd) ! fixed TCP transport to specify correct length with utf8 strings (thanks to Robin Fuller) ! fixed incorrect encoding when parameters list includes undefined values (thanks to Chris Radcliff) ! updated 'xmlsoap' prefix (thanks to Pierre Denis) ! updated MIME parser to accept messages that start with 'From' (thanks to Chris Davies) + added check for TCP transport on Mac (thanks to Robin Fuller) + added check for shutdown() method on AIX (thanks to Jos Clijmans) + added check for blocking() method in TCP transport (thanks to Jos Clijmans) + optimized parsing strings with entity encoding (thanks to Mathieu Longtin) + added check for entity size for CGI transport ($SOAP::Constant::MAX_CONTENT_SIZE) (thanks to J. Klunder) + added example (google.pl) + updated tests and examples with new endpoints 0.52 Mon Oct 18 21:20:19 2001 ! fixed content_type returned under mod_perl with 500 SERVER ERROR status (thanks to Geoffrey Young and Scott Hutton) ! fixed problem with multiple bindings in WSDL file generated by MS SOAP toolkit ! fixed handling of boolean type in 1999 Schema and hexBinary type in 2001 Schema ! fixed warning and problem with WOULDBLOCK state in IO::SessionData (thanks to Marty Pauley) ! fixed miscalculation in position within sparse arrays ! fixed problem with URI when methods of SOAP::Data are called in certain order (thanks to Taras Shkvarchuk) ! fixed CRLF problem in CGI module on Windows platform under IIS (thanks to Werner Ackerl) ! fixed hex and hexBinary datatypes generation ! fixed content-length calculation when payload has multibyte utf8 characters ! fixed problem with XMLRPC and nested packages with more than two levels (thanks to Leonid Gernovski) ! fixed (again) memory leak in SOAP::Parser (thanks to Craig Johnston) + updated Jabber interface for new format of 'use Net::Jabber ...' does not work with Net::Jabber 1.022 and later + updated XMLRPC::Lite to not detect value as float for 'NaN' and 'INF' strings + updated XMLRPC::Lite to return 200OK on errors + updated XMLRPC do not specify charset in content-type + updated Makefile.PL to allow configuration from command line (thanks to Dana Powers) + updated publishing API tests for UDDI server to call a new server (GLUE) + changed close() to shutdown() in Daemon transport (thanks to Sean Meisner) + added support for HTTP_proxy and HTTP_proxy_* in WSDL access (thanks to Stephen Shortland) + added XMLRPC support in COM interface. XMLRPC client and server can be created using COM interface + added DO_NOT_PROCESS_XML_IN_MIME option for MIME parts with text/xml content type + modified deserialization algorithm that allows to properly deserialize SOAP1.2 messages when default is set to SOAP1.1 and vice versa + added fault in XMLRPC::Lite for incorrect datatypes specified by user (thanks to Paul Prescod) + added option to not generate XML declaration + added encoding for ']]>' (thanks to Matt Sergeant and James Amrhein) + added '\r' => '