#
# 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 <import> 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 <string> 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