RTL Enhancements in RAD Studio 10.2.3

by Mar 19, 2018

As listed in the "What's New in 10.2.3" DocWiki page, http://docwiki.embarcadero.com/RADStudio/Tokyo/en/10.2_Tokyo_-_Release_3, among the changes, new features, and fixes in the latest update of 10.2 Tokyo.

One of the added features is MIME support improvements for the REST Client library. This was achieved by adding a new internal TMimeTypes class to handle the various mappings and enhancing MIME content-types in the TRESTClient component. Particularly, in the System.Net.Mime unit there is now:

* A TMimeTypes class allowing to map file extensions to mime types and backward, to iterate registered file extensions and mime types. This is based on a list of standard MIME types, including roughly 1,000 entries — see image below.
* A TAcceptValueList class allowing to analyze Accept-Xxx request parameters and negotiate response. For example, it can analyze accept request and decide weather to respond with appropriate content or not, and in case which content type to use.

Beside this improvement in MIME support, there are other HTTP Client library improvements in Proxy support, in a more consistent stream posting implementation, and better support for forwarding cookies in a redirect, and finally the support for login with a blank password.

In different RTL areas, we made some further changes to System.Pas (after those in 10.2.2) to better support third party memory managers — something that got inadvertently broken in an earlier release. We also made some DUnitX fixes for the Linux platform.

Finally, we made a few changes to some Windows API calls to use dynamic invocation to offer better Windows XP compatibility (even though the platform is not officially supported).

Among the bugs we fixes, notice a few:

– TJSON.ObjectToJsonObject raise an exception when object is nil (RSP-18631 in Quality Portal)

– RegEx.Replace replaces at wrong position (1 byte offset) on Andriod and iOS (RSP-18921)

– Regression: TQueue data overwriting (RSP-17728

These are not big uptakes, but a collection of smaller enhancements and fixes that help improving the product and making it more robust. Overall, if you look in https://quality.embarcadero.com/secure/Dashboard.jspa?selectPageId=13100 you can see another good spike of closed issues.