# # Revision history for Perl extension SOAP::Lite. # # $Id: Changes,v 1.5 2003/08/18 18:12:28 paulclinger 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.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) ----------------------------------------------------------------------- PREVIOUS RELEASES ----------------------------------------------------------------------- 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' => ' ' conversion in strings + added complaint on incorrect simple types + added byNameOrOrder and byName functions for SOAP::Server::Parameters (thanks to Matt Stum) + added handling relative locations in in WSDL + added stringification of SOAP::Fault (thanks to Tim Jenness) + added documentation for SSL certificate authentication + added more examples (terraserver.pl, joke.pl, weblog.pl) + added more tests 0.51 Tue Jul 18 15:15:14 2001 ! fixed memory leak in SOAP::Parser (thanks to Ryan Adams and Michael Brown) ! fixed skipping undef elements in arrays under Perl 5.005 (thanks to Arne Georg Gleditsch) ! fixed warning from undefined type in out parameters (thanks to J†rg Ziefle) ! fixed autovivification warnings on 5.7.x (thanks to Igor Pechersky) ! fixed tests on 64bit systems (thanks to Gurusamy Sarathy) ! fixed installation problem with long filenames on MacOS (thanks to Alex Harper) ! fixed POP3 server (thanks to Kevin Hutchinson) ! number of fixes in XMLRPC::Lite o fixed requirement (thanks to Matthew Krenzer and Dana Powers) o fixed empty slot skipping (thanks to Jon Udell) o fixed serialization of "0"/""/undef values (thanks to Michael E. Gage) o fixed autodispatch (thanks to Craig Kelley) + added support for SOAP 1.2 (spec is still in draft, implementation is subject to change) + added extended array support (only in deserializer) sparse arrays multidimensional arrays (deserialized as array of arrays) partially transmitted arrays + modified XML::Parser::Lite to work on Perl 5.005 (thanks to John Gotts) fixed handling empty attributes as undef fixed minors (thanks to Duncan Cameron) + modified deserializer to work with different schemas (1999/2001) + added JABBER transport + added MQ transport + added mod_xmlrpc transport (Apache::XMLRPC::Lite) + added TCP over SSL transport + added non-blocking TCP multiserver + included FastCGI transport (thanks to Marko Asplund) + added support for APOP authentication in POP3 transport + added Encoding parameter for MAILTO transport (to choose base64/binary) + added 'autoresult' option (thanks to Mathieu Longtin) + added support for import directive in WSDL + added support for short (tModel) WSDL service descriptions + added support for multiple services/ports and allowed non-SOAP bindings in WSDL + added full search example UDDI->WSDL->SOAP (fullsearch.pl) + added charset in response message for HTTP transport + modified SOAPsh/XMLRPCsh to return all parameters (thanks to Chris Davies) + modified dispatch for XMLRPC server to work exactly as for SOAP server examples included in examples/XMLRPC directory + added example with Inline::C module (inline.daemon). Dispatch to C, C++, assembler, Java, Python and Tcl :). Thanks to Brian Ingerson for his Inline module. + all transport are available for both SOAP::Lite and XMLRPC::Lite: HTTP (daemon, CGI, mod_perl), SMTP/POP3, TCP, IO, JABBER, MQ + updated INCOMPATIBILITY section in README file + tested on Perl 5.00503, 5.6.0, 5.6.1, 5.7.1 and 5.7.2 + added SOAP Cookbook (http://cookbook.soaplite.com/) + added server scripts for MQ and JABBER transports + added roundtrip example for JABBER transport + updated documentation and added new examples + added more tests (more than 700 for now) 0.50 Wed Apr 18 11:45:14 2001 ! fixed tests on Windows platform ! fixed authInfo in UDDI publishing interface ! fixed mod_soap (Apache::SOAP) on Perl 5.005/5.004 ! fixed namespace prefix on arrays of arrays ! modified Content-encoding from 'compress' to 'deflate' + added XML::Parser::Lite, regexp-based XML parser used automatically when XML::Parser is not available + added examples of custom serialization and deserialization (XML::DOM) + added XMLRPC::Lite (XMLRPC client and server interface) all transports and features of SOAP::Lite should be available + added XMLRPC interactive shell (XMLRPCsh.pl) + added dispatching based on URI and SOAPAction (dispatch_with) + added dispatching to object (in addition to class/method) + added dispatch from specific class(es) (dispatch_from) + added limited support for mustUnderstand and actor attributes + added SOAP::Fault class for customization of returning Fault message + added charset in HTTP header for requests + added check for namespace and types resolving + added namespaces declarations from WSDL interface + added INCOMPATIBILITY section in README file + added live tests/examples for UDDI publishing interface + added live tests/examples for basic authentication + added XMLRPC server code that validates with Userland's validator + added more examples, tests and documentation 0.47 Wed Feb 21 17:11:12 2001 ! fixed lack of parameter in MAILTO transport ! fixed minimal version of COM interface to not require absent modules + added compression for HTTP transport + added mod_soap interface, add SOAP server functionality with couple of lines in .htaccess or httpd.conf file + added proper serialization of circular multiple references + significantly redesigned handling types and URIs ! incompatibilities with ApacheSOAP clients may occur + added handling PIPE and INT signals in Daemon server implementation + changed return from autodispatched calls: result() in scalar context and paramsall() in list context + redesigned tests and split on core and optional for smooth CPAN installation + added examples for cookie-based authorization + added examples in C# and PerlScript for COM interface + added more documentation for COM interface + updated documentation and added new examples 0.46 Wed Jan 31 16:30:24 2001 ! fixed SOAP:: prefix with SOAP::Lite objects ! fixed documentation installation on Unix ! changed interface of schema() method. Use service() instead + added COM interface single dll (standalone or minimal version, downloadable separately) doesn't require ROPE.dll, MSXML.dll or listener.asp tested on Windows 98/2K, and should work on Windows 9x/Me/NT/2K ASP and daemon server implementations examples in VB/VBS, Excel/VBA, JavaScript, Perl and ASP + added parsing multipart/form-data SOAP server can accept SOAP requests directly from web form examples are provided (examples/forms/*) + added Map type for hash encoding. Tested with ApacheSOAP + added function that maps classes to URI (maptype) + allowed multiple ports in WSDL + tested object interoperability with Apache SOAP + optimized internal functions 0.45 Tue Jan 16 00:38:04 2001 ! fixed interoperability problem with incorrect Array prefix for Apache SOAP + added interoperability tests for Apache SOAP + added interoperability tests with MS SOAP, 4s4c and Lucin implementations + added attachment parsing (singlepart/multipart MIME) Content-ID and Content-Location are supported text/xml fragments are supported and parsed all implementations support MIME encoded messages + added IO server implementation (for pipes, mail handlers, FTP and file processing) + added FTP client implementation + added global settings, shareable between objects + allowed empty URI and non-prefixed method (documentation included) + added tests for xml, xml with headers, single and multipart MIME + updated documentation and added examples + more that 300 tests in test suite 0.44 Tue Dec 12 23:52:12 2000 ! fixed mod_perl server to return '500 Server Error' in case of error ! fixed CGI server to work under PerlIS and PerlEx (thanks to Murray Nesbitt) + tested publishing API for UDDI::Lite, examples provided (thanks to Petr Janata for access to UDDI server and provided help) + added bi-directional TCP client/server, examples and tests provided + enabled de/serializer overloading on server side (in addition to client) + added optimization for objects-by-reference + added ForkingDaemon server implementation (thanks to Peter Fraenkel) + added SOAP::Custom::XML for XML processing, examples and tests provided + added SOAP::Test as simple test framework + added documentation for UDDI publishing API + redesigned examples and tests (~240 tests for now) 0.43 Tue Nov 28 01:47:02 2000 ! fixed bug in UDDI interface that made UDDI client almost useless ! fixed Makefile.PL ! tests confirmed that memory leak is gone + changed syntax for UDDI client to more flexible/convenient + added limited support for WSDL schemas. Dynamic and stub access supported + added script for stub generation (stubmaker.pl) + optimized code on server side + object interface for SOAP, UDDI and schemas are supported consistently + allowed manipulation of method's attributes and namespaces + added attributes encoding ('&', '<' and '"' are encoded) + updated documentation (thanks to Robert Barta who basically did this work) + added more examples and tests (154 for now) 0.42 Tue Nov 14 23:14:18 2000 + added UDDI client (UDDI::Lite) with documentation + added M-POST functionality in HTTP::Client + added redirect (3??) functionality in HTTP::Client + added session cache for M-POSTs and redirects + added conversion of all objects to o-b-r in parameters + changed passing envelope into method + allowed \x0d and \x0a in strings (will not do base64 encode) + added die with object that allows to specify complex Fault detail + optimized XML encoding + allowed function call with autodispatch + improved syntax for 'use SOAP::Lite' + added soap.tcp example for TCP server implementation + added tests with Microsoft implementation + added documentation and tests (145 for now) 0.41 Tue Oct 31 01:24:51 2000 ! fixed memory leak on server side ! fixed die on absence of HTTP::* modules on server side ! fixed working with keep-alive connections (added test with Xmethods) + changed autotyping from double to float + added support for proxy authorization (thanks to Murray Nesbitt) + added TCP client/server implementation + added benchmark for all implementations except smtp/pop3 + added SOAP::Trace for detail logging on client/server side + added examples/tests for Apache::Registry implementations + added more examples, documentation and tests (127 for now) 0.40 Sun Oct 15 18:20:55 2000 ! fixed die in mailto: protocol if you don't have URI::URL installed ! fixed misbehavior on Mac platform (thanks to Carl K. Cunningham) + added default namespace processing [xmlns] (thanks to Petr Janata) + added objects-by-reference, simple garbage collection and activation + added full access to envelope on server side + added versionMismatch reaction + added local: protocol for local binding without any transport + added examples for objects-by-reference: persistent/session iterators and chat (40 lines on server and 25 lines on client side) 0.39 Sun Oct 8 22:55:20 2000 ! fixed incompatibility with Perl 5.005 + added interactive Makefile.PL for CPAN installation 0.38 Thu Oct 5 22:06:20 2000 ! fixed namespace for base64 encoding ! fixed security problem on server side, upgrade is highly recommended + added HTTPS/SSL support + added SMTP client implementation + added POP3 server implementation + added support for Basic/Digest server authentication + added support for header(s) on client/server side with SOAP::Header + added Array and SOAPStruct for interoperability with ApacheSOAP + added generic class for server support SOAP::Server + added Actor attribute + added more examples, documentation and tests (88 for now) 0.36 Sun Sep 24 20:12:10 2000 ! fixed output parameters autobinding + added mod_perl server implementation + added recognizing all simple types mentioned in specification + added support for 'hex' type + added more documentation (twice as much as before) + added more tests (74 for now) 0.35 Sun Sep 17 23:57:10 2000 ! fixed minors (Response instead of Respond, server will map client's URI) + cleaned HTTP::Server internals (will go to SOAP::Server in the future) + test.pl won't abort on transport errors. Failed test will be skipped + added daemon server implementation + added cgi/daemon server implementation examples + added deserialization into blessed reference + added dynamic/static class/method binding + added output parameters matching based on signature (name/type) + added real object transferring back and forth (see example of Chatbot::Eliza, fixed for CODE references) + added more interoperability with on_action on client and server side + added new events (on_action, on_fault, on_nonserialized) + added global class settings with 'use SOAP::Lite ...' + added code for returning application errors on server + added autodispatch + added SOAP prefix to method calls + added more documentation + added more tests (54 for now) + added more examples (Chatbot::Eliza, My::PingPong) 0.32 Sun Sep 10 23:27:10 2000 ! fixed warnings with -w ! fixed blessed reference serialization. Assigned type has top priority + added working with current node in SOAP::SOM + SOAP::SOM::valueof returns nodeset + SOAP::SOM::match returns boolean in boolean context + added raw xml accepting and output + added UserAgent parameters to SOAP::Transport (understands timeout) + added better diagnostic on transport errors in test.pl + added 'method', 'fault', 'freeform' types of Envelope + added server implementation + added CGI interface to server implementation + added My::Examples.pm as example of loaded class for SOAP server + added more tests (47 for now) 0.31 Wed Sep 6 00:36:15 2000 + added expressions to SOAP::SOM->match method + added deserialization of circular references + added tests for deserialization + added documentation 0.3 Mon Sep 4 00:59:04 2000 + first public beta version + added live SOAP calls + added test suite (25 tests) + added documentation + added interactive shell (SOAPsh.pl) 0.2 Mon Aug 24 19:34:24 2000 - next stable version; works with public test servers 0.1 Mon Aug 11 23:12:02 2000 - first version; serialization part only