Release notes ============= This document gives an overview of all changes made between releases starting from release 1.0.0. From version 1.0.0 to 1.1.0 --------------------------- * Some more doxygen documentation has been added. Although we know that it is far from being complete ;-) * mpf::Thread::sleep now waits seconds, not microseconds, you can use mpf::Thread::usleep for microsecond wait * The methods of mpf::RegExp where renamed according to mpf naming conventions, so all start now with a lowercase letter. * The non iterator returning methods mpf::RegExp::Begin() and mpf::RegExp::End() where renamed to mpf::RegExp::substringPosition and mpf::RegExp::substringEnd, mpf::RegExp::Count is now mpf::RegExp::substringCount and mpf::RegExp::Size is now mpf::RegExp::substringSize(). * There is now an iterator for Regular expression results named mpf::RegExp::Iterator. It can be used after a call to mpf::RegExp::find(). mpf::RegExp::begin() returns the Iterator on the match of the find and incrementing the iterator results in successive finds for more results. The iterator is end() when the end is reached or no match was found. * The "xml" library was renamed to "soap", as that is its purpose. * The prefix MPF_ has been added to all macros. * The ValueFactory can construct Values with a numerical type identifier. * A numerical type identifier has been added to each Value. * The SOAP stack now identifies automatically the encoding of a given SOAP request and will automatically generate a correctly encoded response. Supported encodings are: 'Rpc/Encoded', 'Rpc/Literal' and 'Document/Literal wrapped'. 'Document/Literal' will be flagged as not supported. * The SOAP stack is able to (pre)load WSDL files and determines type information for 'literal' encodings from them, where possible. This type infos are even available for created SOAP envelopes if WSDL info for them is found. * If an operation is found in the WSDL info, all elements must match this information now, any element in a soap message, not found in the WSDL info, will trigger an mpf::SOAPFault exception. * xsi:nil is now used in favour to xsi:null if using SOAP 1.2. * The soapserver has been moved into the examples directory. * New examples directory and a new example 'calendar' has been added. * The Xerces XML parser is now initialized by a LifetimeHandler. * The Application::doPreInit method was removed. The registry now has to be created by overwriting the new Application::doCreateRegistry method which instantiates a DummyRegistry by default. * A new registry implementation DummyRegistry has been added. This registry is for applications, that do not need a registry at all. * A method to extract the underlying basic datastructure has been added to ValDate, ValTime and ValDateTime. They are called respectively date, time and dateTime. * The format method of ValDate, ValTime and ValDateTime was renamed to formatWith as the value is formatted with a format string. * A new value ValDuration has been added. The Duration interface has been extended and cleaned. * A new value ValDouble has been added. It represents a double datatype. The ValFloat has been changed to represent a float datatype. * The header files valint.h and valid.h were removed. * The LogTarget implementation now outputs the current process- and thread- id. * A new macro MPF_ERRORLOG_MSG for error messages was added. It can issue a log entry without the need to constructing an error object. * A new macro MPF_INFOLOG for info messages was added. It can be used to log unconditional information messages. * Now you can specify a 'GlobalDebugDefault' (long) attribute in the global logging ini section. This value is set for all class debug switches that are not specified in the 'ClassDebug' section. * LogTargets can now be deactivated without removing them from the ini file. Using the 'Active' (bool) attribute for a given log target it can be activated (1) or deactivated (0). * The dependency between the application and dataserver modules was removed. Using the new LifetimeHandler and LifetimeManager classes you can easily intialize and deinitialize components to well defined application lifetime points. * New dategenerators where implemented: o CalculateGregorianEaster - calculates the Gregorian easter sunday for a given year o NthDayOfGregorianEaster - calculates a day offset to the Gregorian easter sunday (used to calculate holidays like carnival monday or whitsunday) * The SOAPArray can now be encoded correctly for SOAP 1.1 and 1.2. * Debug output is now filtered and non printable characters are displayed as a dot. * The files xmlhelper.h/cpp have been moved into the base directory. The classes and functions have been put into the mpf namespace. * A bug in the DateTimeConvertor was fixed. * A bug in the UTF-8 transcoding for XML entries was fixed. * The SOAPDispatcher did not initialize the default method. * Bugfixes in Thread and ThreadManager. * Bugfix to not ignore anonymous namespaces (e.g. xmlns='http://some/where/') anymore * It was possible to crash the soapserver with problematic HTTP header lines. * Solaris 9/10 64-bit is now supported as OS environment. In order to built it correctly with the platform compiler you need at least SunStudio 10 with the latest patches. Further on you need boost patches from Simon Atanasyan (http://blogs.sun.com/roller/resources/sga/boost_1_33_1.patch). * Linux-x86-64 is now supported as OS environment * The build.sh script was changed completely in order to faciliate the build process. See INSTALL.txt for more details. * Under Windows the binaries now will be copied using only a batch script. No perl installation is needed.