posts - 202,  comments - 514,  trackbacks - 0
经过1个多月的测试,终于发布正式版。
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.
posted on 2018-07-12 08:57 xalion 阅读(...) 评论(...) 编辑 收藏