Releases: KDAB/KDSoap
Releases · KDAB/KDSoap
KDSoap 2.2.0
General:
- buildsystem - Add co-installability of Qt5 and Qt6 headers back.
Installs Qt6 headers into their own subdirectory so client code still works, but can be co-installed with Qt5 again.
Client-side:
- Add KDSoapClientInterface::setMessageAddressingProperties() so that WS-Addressing support can be used with WSDL-generated services (issue #254)
- Don't require a SOAP action in order to write addressing properties (also issue #254)
WSDL parser / code generator changes, applying to both client and server side:
- Improve -import-path support by using the import path in more places in the code
KDSoap 2.1.1
General:
- buildsystem - undo co-installability of Qt5 and Qt6 headers.
It would require that kdwsdl2cpp generates #include <KDSoapClient-qt6/KDSoapJob.h>
which in turn would break the build of KDSoap itself, so this gets tricky.
KDSoap 2.1.0
General:
- Re-license project to MIT and remove the commercial offering
- buildsystem - Increase minimum CMake version to 3.12.0
- buildsystem - Build in Release mode by default (in non-developer situations)
Client-side:
- Generate "explicit" in front of service and job constructors (issue #206)
Server-side:
KDSoap 2.0.0
In release 2.0.0
General:
- Supports Qt6 in addition to Qt5
- Minimum Qt version is 5.9
- The qmake buildsystem (via autogen.py) is removed.
- buildsystem: a new 'docs' target is created when CMake -DKDSoap_DOCS=True.
- buildsystem: the API manual is now generated in build/docs vice source/docs.
- buildsystem: added an uninstall target
- buildsystem: generate and install kdsoap-version.h
- The API manual is generated+installed in qch format for Qt assistant.
Client-side:
- Added options to the KDSoapClient specifying the SOAP action sending method
WSDL parser / code generator changes, applying to both client and server side:
KDSoap 1.10.0
In release 1.10.0:
General:
- No longer supporting Qt 4
- Minimum Qt version is 5.7
- Minimum CMake version is 3.0.2
- qmake buildsystem -- no longer prompt for license choice.
users should carefully consider their choice of license - The qmake buildsystem is deprecated
CMake buildsystem:
- Generates .pri files for qmake users
- Installs library pdb files with MSVC builds
WSDL parser / code generator changes, applying to both client and server side:
- Add commandline options to turn off generation of the sync/async/asyncjobs APIs. This improves compilation times. (#225)
KDSoap 1.9.1
C++11 is now required. Qt4 is still supported, but this is the last release with support for Qt4.
In release 1.9.1:
- Restore previous EULA (LICENSE.txt and LICENSE.US.txt)
- remove unittests: onvif_org_event, onvif_ptz, onvif.org WSDL
- Fix static linking examples and unittests in the CMake buildsystem
- small buildsystem improvements
KDSoap 1.9.0
General:
- C++11 is now required. Qt4 is still supported, but this is the last release with support for Qt4.
- Fix rpath for Unix/Linux/macOS (#181).
- Improve cmake usage by setting the install interface directories on the library targets (#196). You can just link to KDSoap::kdsoap and you'll get the correct include paths now.
- New installing file for Conan (WIP - see conan folder)
Client-side:
- Add support for selecting WS-Addressing namespace for send messages (#176).
- Fix WS-Addressing spec compliance (#193)
- Add support for implementing SOAP-over-UDP clients (see KDSoapUdpClient).
Server-side:
WSDL parser / code generator changes, applying to both client and server side:
- Add override indicator to generated files. This requires c++11 for users of generated files.
- Add option for loading PKCS12 certificates (#190).
- Remove all special handling of soap/encoding namespace, which fixes the use of soapenc:string and soapenc:integer for instance (#179).
- Fix compilation error due to missing QSharedPointer include in generated code (#170).
Examples:
- The holidays examples have been replaced with bank-lookup examples. Less fun, but the holidays web service no longer exists...
KDSoap 1.8.0
General:
- Fix internally-created faults lacking an XML element name (so e.g. toXml() would abort)
- KDSoapMessage::messageAddressingProperties() is now correctly filled in when receiving a message with WS-Addressing in the header
Client-side:
- Add support for timing out requests (default 30 minutes, configurable with KDSoapClientInterface::setTimeout())
- Add support for soap 1.2 faults in faultAsString()
- Improve detection of soap 1.2 faults in HTTP response
- Stricter namespace check for Fault elements being received
- Report client-generated faults as SOAP 1.2 if selected
- Fix error code when authentication failed
- Autodeletion of jobs is now configurable (github pull #125)
- Add error details in faultAsString() - and the generated lastError() - coming from the SOAP 1.2 detail element.
- Fix memory leak in KDSoapClientInterface::callNoReply
- Add support for WS-UsernameToken, see KDSoapAuthentication
- Extend KDSOAP_DEBUG functionality (e.g. "KDSOAP_DEBUG=http,reformat" will now print http-headers and pretty-print the xml)
- Add support for specifying requestHeaders as part of KDSoapJob via KDSoapJob::setRequestHeaders()
- Rename the missing KDSoapJob::returnHeaders() to KDSoapJob::replyHeaders(), and provide an implementation
- Make KDSoapClientInterface::soapVersion() const
- Add lastFaultCode() for error handling after sync calls. Same as lastErrorCode() but it returns a QString rather than an int.
- Add conversion operator from KDDateTime to QVariant to void implicit conversion to base QDateTime (github issue #123).
Server-side:
- New method KDSoapServerObjectInterface::additionalHttpResponseHeaderItems to let server objects return additional http headers.
This can be used to implement support for CORS, using KDSoapServerCustomVerbRequestInterface to implement OPTIONS response,
with "Access-Control-Allow-Origin" in the headers of the response (github issue #117). - Don't generate two job classes with the same name, when two bindings have the same operation name. Prefix one of them with the binding name (github issue #139 part 1)
- Prepend this-> in method class to avoid compilation error when the variable and the method have the same name (github issue #139 part 2)
WSDL parser / code generator changes, applying to both client and server side:
- Source incompatible change: all deserialize() functions now require a KDSoapValue instead of a
QVariant. If you use a deserialize(QVariant) function, you need to port your code to use
KDSoapValue::setValue(QVariant) before deserialize() - Source incompatible change: all serialize() functions now return a KDSoapValue instead of a
QVariant. If you use a QVariant serialize() function, you need to port your code to use
QVariant KDSoapValue::value() after serialize() - Source incompatible change: xs:QName is now represented by KDQName instead of QString, which
allows the namespace to be extracted. The old behaviour is available via KDQName::qname(). - Fix double-handling of empty elements
- Fix fault elements being generated in the wrong namespace, must be SOAP-ENV:Fault (github issue #81).
- Added import-path argument for setting the local path to get (otherwise downloaded) files from.
- Added -help-on-missing option to kdwsdl2cpp to display extra help on missing types.
- Added C++17 std::optional as possible return value for optional elements.
- Added -both to create both header(.h) and implementation(.cpp) files in one run
- Added -namespaceMapping @mapping.txt to import url=code mappings, affects C++ class name generation
- Added functionality to prevent downloading the same WSDL/XSD file twice in one run
- Added "hasValueFor{MemberName}()" accessor function, for optional elements
- Generated services now include soapVersion() and endpoint() accessors to match the setSoapVersion(...) and setEndpoint(...) mutators
- Added support for generating messages for WSDL files without services or bindings
- Fix erroneous QT_BEGIN_NAMESPACE around forward-declarations like Q17__DialogType.
- KDSoapValue now stores the namespace declarations during parsing of a message and writes
namespace declarations during sending of a message - Avoid serialize crash with required polymorphic types, if the required variable wasn't actually provided
- Fix generated code for restriction to base class (it wouldn't compile)
- Prepend "undef daylight" and "undef timezone" to all generated files, to fix compilation errors in wsdl files that use those names, due to nasty Windows macros
- Added generation for default attribute values.
KDSoap 1.7.0
General:
- Qt 5.9.0 support (compilation fix due to qt_qhash_seed being removed, unittest fix due to QNetworkReply error code difference)
Client-side:
- Fix unwanted generation of SoapAction header when it should be empty (SOAP-135).
- Abort the connection when destroying a job with a pending call (SOAP-138).
WSDL parser / code generator changes, applying to both client and server side:
- Add support for body namespace specification in RPC calls.
- Fix namespace handling in typename comparison for optional element used inside itself (github issue #83).
- Add missing include in generated header, when an operation's return value needs one (ex: QDate) (github issue #110).
- Fix namespace handling in restriction and extension tags
- Fix wrong indentation of "};" for classes inside namespaces
KDSoap 1.6.0
see doc/CHANGES_1_6.txt