We are happy to announce v5.06.20 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.80.00 or newer is a prerequisite to this update.
This is the wrap up of the 5.06.xx beta release with some additional features, improvements and bugfixes. Major new features in this release includes::
- Added support for hardware based true random numbers via the new unit kbmMWInfTRNG (Enterprise Edition)
- Added ORM stage function Split for splitting data into separate groups.
- Added TkbmMWMultithreadMessageActionProcessor.
- Added optional non destructive ORM table upgrade feature.
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 is 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, governements, schools, laboratories, rentals, culture institutions, FDA approved medical devices, military and more.
5.06.20 July 11 2018 Important notes (changes that may break existing code) ====================================================== * Remote Desktop require Seattle or newer to compile. New stuff ========= - Added TkbmMWONObject.AssignObject which assigns another ON object values to the current one, clearing the original values. - Added TkbmMWONObject.MergeObject which merges another ON object values into the current one, potentially preserving the original values. - Added function kbmMWWildcard2RegEx(const AWildCard:string):string; in kbmMWGlobal.pas. It converts a file wildcard string to a valid regular expression string. It supports * and ?. - Added boolean triggerModified option to kbmMW_Field attribute. It controls if changes to that particular ORM field in the class should indicate that the data has been modified and thus resolves. Default true. - Added mwoctfNonDestructive to TkbmMWORMCompatibleTableFlag. Can be used in CompatibleTable, UpgradeTable and CreateOrUpgradeTable to control if only non destructive changes should be made to make an existing table compatible. If set, fields will not be removed, renamed, its field type changed or made smaller in size or precision. Indexes, primary or unique constraints will also not be changed. - Added SkipNoNameColumns property to TkbmMWCSVStreamer. Default false. If false and property Header is true, columns with an empty name will be given a name using DefaultNamePrefix and a column number. If true and property Header is true, columns with an empty name will be skipped. - Added property AutoActivate:boolean to TkbmMWCustomConnectionPool. Default true. If true and a connection is attempted to be obtained the connection pool is automatically set to active, else an exception is thrown. - Added TkbmMWMultithreadMessageActionProcessor which works similar to TkbmMWMessageActionProcessor except all messages are executed completely asynchronously. Be aware that execution order may be different than message post order. - Added new kbmMWProcess unit containing process related classes. (currently only for Windows). - Added function Split(const AGroupFields:string; const AHaving:string=''):IkbmMWLinqStages; to IkbmMWORMStage. It will split data in the stage into multiple stages according to Group By and Having like rules. Eg. stages:=Linq.Using(..).Split('fld1,fld2','fld2>2'); - Added OnLogin2, OnLoginSuccess2,OnLoginFail2,OnLogout2,OnAuthorize2,OnTrace2 events to TkbmMWAuthorizationManager. They are alternatives to existing events and are called after the "old" events. The events take a context instance which contains all information known during the autorization operation. The data in the context can be modified on the fly to override default behaviour. - Added unit kbmMWInfTRNG (Enterprise Edition) which provides support for hardware based true random noise generators for generating random numbers. This is usually considered the cryptographically most secure random generator. Default it supports https://13-37.org/en/infinite-noise-trng but others can be used aswell as long as they can generate random data into a file. TkbmMWInfTRNG32 and TkbmMWInfTRNG64 are surfaced as default random number generator classes. Changes/minor additions ======================= - Updated unittests. - Added (const AWaitUntilStopped:boolean=true) argument to Stop method in TkbmMWCustomMessageProcessor. - Added property TopIfExists:TkbmMWDOMXMLNode to TkbmMWDOMXML. Returns top (non declarative) node if it exists, else nil. - Updated TkbmMWORM.ModifiedValuesToDataset to attempt to leave record position the same. - Updated kbmMWFastCGI unit to use kbmMWProcess unit. - Added function DiffMinutes(const AValue:TkbmMWDateTime):integer; to TkbmMWDateTime. - Added optional ATopName:string to PrepareXMLStorage in TkbmMWConfiguration. Default 'config'. - Remote Desktop require Seattle or newer to compile. Fixes ===== - Fixed TkbmMWDateTime.DiffDays, DiffHours and added DiffMinutes. - Fixed TkbmMWConfiguration bug introduced in 5.06.10 by the case insensitive object notation changes. - Fixed TkbmMWONCustomObject.Path issue when instantiating final ON custom object. - Fixed nasty string sharing bug in TkbmMWStringBuilder when isntance was reused with preceded by Clear. - Fixed A/V in TkbmMWYAMLStreamer.LoadFromUTF16String when not able to parse due to empty or syntax error. - Fixed incorrect calculation in kbmMWMimeDecodedSize which cound result in buffer overruns. - Fixed A/V in TkbmMWBPParser.Create and TkbmMWBPParser.CreateFromString when syntax error or empty definition. - Fixed TkbmMWCustomConnectionPool to ensure all properties are read during component load, before it is set to active. - Improved AMQP client disconnect handling and fixed channel leak. - Fixed IkbmMWLinqStage.GroupBy to require , between field names. - Fixed incorrect TkbmMWDateTime DiffHours and DiffDays. - Fixed bugs in TkbmMWConfiguration.
19,082 total views, 1 views today