POCOpro C++ Frameworks Release 2024.1 Available
This release is based on the latest POCO C++ Libraries release 1.13.3 and includes enhancements and fixes in the Open Service Platform (OSP) and Remoting NG frameworks.
Like the POCO C++ Libraries 1.13.3 release, the POCOpro release now also supports the vcpkg package manager in the Visual Studio 2019/2023 project files. Also, like all POCO release since 1.13.0, the minimum required C++ standard version is now C++ 17. This also means that Visual Studio versions older than 2019 are no longer supported.
For our customers, source code packages are available on our download server.
Remoting NG Updates
- Support for serialization of
std::optional
in C++17. - The serialization and deserialization code generated by RemoteGen will now serialize
struct
andclass
members in order of their declaration, and no longer in lexical order as previously. This is a breaking change and requires action. See the note below for more information, including how to configure previous behavior. - The
length
attribute is now supported for sequences and strings. - New
xsdType
attribute that is used by the SOAP transport (and WSDL/XML Schema code generator) to convey the original XML Schema type to the serializer/deserializer. Currently used for serialization ofdata
,time
anddateTime
types, which are all mapped to Poco::DateTime. - Fixed an issue in the TCP transport that prevented using the TCP transport with Unix domain sockets.
- RemoteGen now generates more modern-style C++ code.
- Various minor fixes and improvements.
Important: The serialization and deserialization code generated by RemoteGen will now serialize struct
and class
members in order of their declaration, and no longer in lexical order as before.
This unfortunately breaks the binary protocol for the TCP and HTTP transports, so if these transports are used, the Remoting code for all clients and servers must be re-generated and rebuilt to prevent serialization/deserialization problems.
Alternatively, it is possible to restore the old serialization behavior by adding an option to the RemoteGen configuration file:
<options>
<memberSerializationOrder>lexical</memberSerializationOrder>
</options>
The options
element must be added under the RemoteGen
element, next to the files
and output
elements. This ensures full compatibility with existing clients and servers using the TCP or HTTP protocol.
Open Service Platform Updates
- The authentication framework includes a new
Poco::OSP::Auth::PooledAuthAdminService
class that supports database connection pooling for high-load servers. - The OSP web server supports a new
redirectOn401
attribute that will redirect to the specified location instead of sending a401
response due to an authentication failure. - Log messages for full request logging have been improved by indenting the HTTP request and response details. Also, the request details are logged as soon as the request has been received.
- The Bundle Creator tool (
bundle
) supports a newstrip
option, allowing it to strip debug information from shared libraries before copying them into the bundle. - Various minor fixes and improvements.