We are happy to announce v5.08.00 of our popular middleware for Delphi and C++Builder.
If you like kbmMW, please let others know! Share the word!
We strive hard to ensure kbmMW continues to set the bar for what an n-tier product must be capable of in the real world!
Notice that kbmMemTable v. 7.81.00 or newer is a prerequisite to this update.
This release was originally intended to be a bugfix release only, but it ended up containing major new features why we bumped the version number.
The release includes:
- New support for on the fly generating YAML REST description for OpenAPI and Swagger UI (Enterprise Edition)
- New support for on the fly generating Delphi client stub code for easy access to kbmMW Smart Services (Enterprise Edition).
- Further improvements in data marshalling between clients and server.
- Further improvements and fixes to the high performance and very scalable TkbmMWTCPServerTransport.
- Improvements to native kbmMW SQLite support, including integrity checking, backup, journal mode and page size changes.
- Even more extended Cron support in kbmMWScheduler, now also optionally supporting milliseconds.
- Many other improvements and additional features in Object Notation, RTTI, ORM
- Fixes for reported bugs.
Please check the end of this post for a detailed change list.
Professional and Enterprise Edition is available for all with a current active SAU. If your SAU has run out, please visit our shop to extend it with another 12 months.
CodeGear Edition may be available for free, but only supports a specific Delphi/Win32 SKU, contains a limited feature set and do not include source.
Please visit https://portal.components4developers.com to download.
kbmMW is the premiere n-tier product for Delphi, C++Builder and FPC on .Net, Win32, Win64, Linux, Java, PHP, Android, IOS, embedded devices, websites, mainframes and more.
Please visit http://www.components4developers.com for more information about kbmMW.
Components4Developers is a company established in 1999 with the purpose of providing high quality development tools for developers and enterprises. The primary focus is on SOA, EAI and systems integration via our flagship product kbmMW.
kbmMW is a portable, highly scalable, high end application server and enterprise architecture integration (EAI) development framework for Win32, ..Net and Linux with clients residing on Win32, .Net, Linux, Unix, Mainframes, Minis, Embedded and many other places. It is currently used as the backbone in hundreds of central systems, in
hospitals, courts, private, industries, offshore industry, finance, telecom, governments, schools, laboratories, rentals, culture institutions, FDA approved medical devices, military and more.
5.08.00 Jan 20 2019
Important notes (changes that may break existing code) ====================================================== * Updated transport stream version to 508 to support transporting other TValue based data than interface, object and native values (typical records). Newer servers will detect and support older clients. Newer clients can be forced to older version to support older servers by setting transport.Params[KBMMW_STREAM_FORMATTER_PARAM_STREAMVERSION]:='506' etc. New stuff ========= - Added kbmMWSmartStubGenerator.pas and kbmMWOpenAPIMarshal.pas units (Ent only). Provides easy access to produce OpenAPI (Swagger) REST interface descriptions and Delphi client side stubs for regular kbmMW smart methods. - Added demo projects for OpenAPI and Delphi client stub generator. - Updates to marshal classes to support providing not only instances but also types for OpenAPI support and marshalling record types. - Added kbmMWStrToInt, kbmMWStrToInt64, kbmMWTryStrToInt, kbmMWTryStrToInt64 to kbmMWGlobal.pas. They do specifically not convert hexadecimal values. - Added pure Pascal version of TkbmMWPlatformMarshal.BitCount. - Added kbmMWGCD to calculate greatest common denominator to kbmMWGlobal.pas. - Added ExecuteProcess to TkbmMWProcess in kbmMWProcess.pas. Provides access to realtime process output. - Added support in CallMethod for record type arguments. - Added TkbmMWDateTime.MSecOfSecond methods handling millisecond part. - Added ParseHexadecimal property to TkbmMWONFormat. If true, will support understanding values starting with $ or 0x as numeric hexadecimal values instead of strings. - Added FindProperty functions to TkbmMWONCustomObject. Will search the object notation tree from self, until a property is found with the given name and return the hosting TkbmMWONObject. - Updated TkbmMWScheduler adding additional Cron parse mode: mwscmExtendedMsecAndYear If selected, Cron accepts 8 part Cron value (msecs, secs, min, hour, day, month, weekday, year). - Added several Queryxxxx methods to kbmMWORM for access via TkbmMWORMTable instances. - Added property JournalMode and PageSize to TkbmMWSQLiteConnectionPool. If set will automatically change the database settings, even on existing database. - Added function VerifyIntegrity which when called, will check if a SQLite database is ok or not. - Added backup features to TkbmMWSQLiteConnectionPool. Call the function Backup. - Added validation that SQLite dll is supporting multithreading. - Updated transport stream version to 508 to support transporting other TValue based data than interface, object and native values (typical records). Newer servers will detect and support older clients. Newer clients can be forced to older version to support older servers by setting transport.Params[KBMMW_STREAM_FORMATTER_PARAM_STREAMVERSION]:='506' etc. - Updated TkbmMWRTTI with several new methods. - Updated Use in kbmMWSmartUtils.pas with several new methods to easily convert TArray<byte> and other values. Changes/minor additions ======================= - Additional error handling in various places. - Improved TkbmMWAutoValue for non object types. - Changed TkbmMW_ArgAttribute to descend from TkbmMW_CustomSettingsAttribute making it able to receive a settings string, and thus also be supported by configuration syntax. - Updated kbmMWSmartClient to fix serious leak bug in Delphi. - Improved stall detection in TkbmMWScheduler to now also detect stall on timeslot missed by more than 1/16th interval. - Improved error handling during peer disconnection in TkbmMWAMQPClientConnection. Fixes ===== - Minor fixes finalizing and zeroing some interfaces and values. - Compile fixes to kbmMW TCP socket library. - Fixed producing incorrect CORS headers in kbmMWCustomHTTPService.pas - Fixed DBISAM v4 adapter compilation. - Fixed TkbmMWCustomThread.FinalizeThread compile error for some SKU's. - Fixed LINUX compilation. - Fixed bugs in CallMethod in kbmMWSmartServiceUtils resulting in incorrect authorization matching for methods. - Fixed TkbmMWTCPServerTransport to handle large packets. - Fixed dependency leak caused by kbmMWDebugStackTrace not correctly being registered in the dependency framework. - Fixed leaks in kbmMWJSON when parsing invalid JSON. - Fixed ClearDontCheckpointFlag in kbmMWCustomConnectionPool.pas to skip previously deleted records. - Fixed bug parsing # and $ as first character in YAML.