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 and class 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 of data, time and dateTime 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 a 401 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 new strip option, allowing it to strip debug information from shared libraries before copying them into the bundle.
  • Various minor fixes and improvements.
Tagged