首页 > 代码库 > kbmmw 5.01 发布
kbmmw 5.01 发布
Important notes (changes that may break existing code)======================================================* Officially now only supporting XE2 and forward. Support for pre XE2may not be complete.New stuff=========- Added support for RAD Studio 10.2 Tokyo, including Linux support(currently in beta) Include new sample simpleinvocation LinuxServer demo.- Officially now only supporting XE2 and forward. Support for pre XE2may not be complete.- Added RemoteLocationsPrimaryPart toTkbmMWAuthorizationTransportConstraint (default false). If set to true, will only compare primary part ofclientidentity.remotelocation. Primary part is defined by everything up til the last ‘:‘. In most cases that will mean the IP address without the port number.- Added IkbmMWLogFormatter interface to kbmMWLog.- Added TkbmMWStandardLogFormatter to kbmMWLog. It contains vastlyimproved features for controlling the look and layout of the log output. Its the defaultused log formatter.- Added TkbmMWSimpleLogFormatter to kbmMWLog. It outputs a log with onlydatetime, type (info/warning/error/fatal etc) and log string.- Added LogFormatter property to IkbmMWLogManager. It can be set to acustom log formatter.- Added mwldtRaw log data type and methods LogRaw to IkbmMWLog. Itallows for logging bytes or strings without interpretation/reformatting.- Added global SystemLog instance which will always output to system logoutputs. It is used as a fallback in case the regular log system excepts.- Added support for marshalling/unmarshalling named enum values via thenew kbmMW_Enum attribute. Its useful when an enum value cant be used as an identifier or itsvalue should be different from its presented name.- Added ExceptOnUnknownType to TkbmMWCustomRTTIMarshal. It controls ifto throw an exception if an unknown type is accessed or not (default true).- Added support for marshalling/unmarshalling TDictionary<K,V> types.- Added support for correctly instantiating classes in unmarshallingthat contains a capacity constructor argument.- Added Run methods to TkbmMWScheduler. It allows for one time run andforget scheduled async code. They are used in the same way as the Schedule methods, but setsOccurs to mwsoRun. The job will be automatically unscheduled after the run.- Added overloaded DelayInitial(const AInitialDelaySecs:double) toIkbmMWScheduledEvent. It allows for directly giving an initial delay in seconds. It supportsfractional second values.- Added Clear to TkbmMWScheduledEvents (scheduler.Events) to allow forclearing all scheduled events. Running events will be allowed to finish.- Added GetNameSpaceByURI, DefaultNameSpace, DefaultNameSpaceURI toTkbmMWDOMXMLNameSpaceList.- Added SearchRelNodeByID, SearchNodeByID, SearchRelNodeByGivenName,SearchNodeByGivenName to IkbmMWDOMXMLParser.- Added ExpandNameSpace, GivenName, ChildrenByGivenName, ChildByGivenName, CheckChildByGivenName to TkbmMWDOMXMLNode.- Added CheckNodeByGivenName, NodeByGivenName to TkbmMWXMLNodeList.- Added missing ADSDBF support to kbmMWReg.- AddedmwrtoOptionalInsert,mwrtoKeyNotNullInsert,mwrtoOptionalModify,mwrtoKeyNotNullModify, mwrtoOptionalDelete,mwrtoKeyNotNullDelete and table modifier flags OIM/OMI (optional insert/modify), OID/ODI (optional insert/delete), OMD/ODM (optional modify/delete), OI (optional insert), OD (optional delete), OM (optional modify), KIM/KMI (insert/modify on key not null), KID/KDI (insert/delete on keynot null), KMD/KDM (modify(delete on key not null), KI (insert on key not null), KM (modify on key not null), KD (delete on key no null) to TkbmMWResolverTableOption They allow for more finegrained definition on wheninsert/update/delete should happen. If one of the optional (OIM,OMD,OID,OI,OD,OM) is given, no exceptionwill be raised for the table when an operation did not succeed, and resolving will continue. If one of the key (KIM,KMD,KID,KI,KM,KD) is given, record resolveoperation will be skipped for the specific record if key is null.- Added ReadBOM overloaded methods with default TEncoding option toTkbmMWPlatformMarshal.- Added overloaded kbmMWTextToString, kbmMWExpectText,kbmMWStringRightPad, kbmMWStringLeftPad, kbmMWGetComputerName functions to kbmMWGlobal.pas.- Added optional ACallback anonymous function to SendAsyncRequest andSendAsyncRequestEx in kbmMWClient.pas (WIB only). It allows for providing an anonymous function that should be calledwhen an async response is returned. The function must follow this type: function(Sender:TObject;TransportStream:IkbmMWCustomTransportStream):boolean;- Added LOB blob/clob support (user fix) to DOA adapter.- Vastly improved XSD importer.- Added generic Object Notation framework for building virtual objecttrees consisting of TkbmMWONNative, TkbmMWONArray and TkbmMWONObject which all are basedon TkbmMWONCustomObject.- Added YAML parser/generator based on object notation framework.- Added Messagepack parser/generator based on object notation framework.- Added BSON parser/generator based on object notation framework.- Added support for converting XML to and from object notation format via LoadFromObjectNotation and SaveToObjectNotation functions.- Added new TkbmMWCustomSmartService and TkbmMWCustomHTTPSmartServiceservices, which can be selected in the service wizard to create smart services. Smartservices supports tagging any function to be exported to a smart client or aREST client (TkbmMWCustomHTTPSmartService required).- Updated transports to support marshalling objects via the transport.- Added several near lock free features to kbmMWGlobal, includingTkbmMWLockFreeStack, more interlocked functions, lock free array GC fixes, optionalTkbmMWREWLock statistics, support for TkbmMWMREWLock can switch to TMonitor for reader/writerfair support.- Optimized many algorithms like TkbmMWStringBuilder, TkbmMWGenerateGUID, TkbmMWGenerateShortGUID and many more to improve performance overall.- Added many new general purpose functions to kbmMWGlobal.- Added direct support for salt in hash functions deriving fromTkbmMWCustomHash.- Added support for anonymous functions in async kbmMWClient requests (WIB)- Added new kbmMWRTTI unit with loads of RTTI functionality.- Added YAML stream format for kbmMemTable and descendants.- Added Messagepack stream format for kbmMemTable and descendants.- Added BSON stream format for kbmMemTable and descendants.- Added object marshalling to and from YAML.- Added object marshalling to and from Messagepack.- Added object marshalling to and from BSON.- Added ServicePath property to TkbmMWClientIdentity.- Added MaxLogins to TkbmMWAuthorizationManager which is default 100 toprevent potential login spam.- Added support for HTTPSys based transport for Windows. Its speciallyuseful for high performance RESTful applications.- Added AutoRegisterServices method to TkbmMWServer which can be usedfor automatically locating and registering any service that has the kbmMW_Serviceattribute defined. It makes use of the old RegisterService and RegisterServiceByNameoptional.- Added LocalSinceEpochMS, UTCSinceEpochMS, Temporenc to TkbmMWDateTime.Temporenc is a very compact binary encoding of a datetime value.- Added FastSetUTC method to TkbmMWDateTime to threadsafely very fastsetting the UTC value of an already defined TkbmMWDateTime record. The record MUST be initialized before using FastSetUTC, for example bydt:=TkbmMWDateTime.Now;- Added ValueToStream, ValueFromStream, ValueToBytes and ValueFromBytes in TkbmMWCustomRTTIMarshal. Allows for easy marshalling objects to andfrom bytes and streams.- Added ExceptOnUnknownType boolean property to TkbmMWCustomRTTIMarshal. Controls if an exception should be thrown in case a type cant bemarshalled or unmarshalled, or it should be silently skipped.- Added Devart MyDAC support (DMYDAC).- Added CORS support (Cross Origin-Resource Sharing) inTkbmMWCustomHTTPService and descendants. (OnCORS event).- Added PerformOPTIONS and PerformPATCH support to TkbmMWCestomHTTPService. (OnOptions and OnPatch in TkbmMWEventHTTPService).- Added REST transport stream format which must be used if non HTTPSystransport is used for smart services.- Added TkbmMWSmartClient which allows simple and easy access to serverside smart functions. Check simpleinvocation sample.- Added high quality random functions in new kbmMWRandom unit. TkbmMWRandomDelphi (32 bit non high quality ramdom!),TkbmMWRandomSplitMix (64 bit) TkbmMWRandomXoroshiro128Plus (64 bit), TkbmMWRandomXoroshiro1024 (64 bit), TkbmMWRandomPCGUInt32 (32 bit), TkbmMWRandomMersenneTwisterUInt32 (32bit), TkbmMWRandomMersenneTwisterUInt64 (64 bit)- Added high quality pronouncable password generators in new unitkbmMWPassword. TkbmMWMixerPasswordGen, TkbmMWKoremutakePasswordGen- Added support for ExchangeType in TkbmMWAMQPClient.- Added new GC and CloseAndGC methods in TkbmMWAMQPChannel to forcegetting rid of defunct/cached but unused AMQP channels.- Added IPVersion property to TkbmMWCustomTCPIPIndyClientTransport.- Split out all lockfree algorithms from kbmMWGlobal to kbmMWLockFree unit to make kbmMWGlobal smaller, partly due to internal compiler errors.- Fixed to default not inlining kbmMWMREWLock methods on 32 bit CPUs due to unstable compiler which can result in F2084/C2491 error combinations.- Moved all lockfree code to new kbmMWLockFree.pas unit.- Added TkbmMWLockfreeStack.- Changed so XE6/XE7 SKU‘s do not compile in new kbmMWLockFree contents due to compiler errors.- Added kbmMW ORM OPF (Object Relational Modelling Object PersistenceFramework) in unit kbmMWORM.pas. Compiles with XE5 and higher. Check new ORM demos. Currently in beta.- Added TkbmMWBinaryPasswordGen to kbmMWPassword.pas. Generates randombinary keys of any length, suitable for cryptographic use.- Added functions Year(ADateTime:TDateTime=Math.NaN):word; function Month(ADateTime:TDateTime=Math.NaN):byte; function DayOfMonth(ADateTime:TDateTime=Math.NaN):byte; function HourOfDay(ADateTime:TDateTime=Math.NaN):byte; function MinuteOfHour(ADateTime:TDateTime=Math.NaN):byte; function SecondOfMinute(ADateTime:TDateTime=Math.NaN):byte; to TkbmMWDateTime.- Improved Null handling in kbmMWNullable and TkbmMWDateTime.- Improved Modified support in kbmMWNullable and TkbmMWDateTime.- Added functions function OutputToFile(constAFileName:string=‘‘):IkbmMWLocalFileLogManager; procedure OutputToDefault; function OutputToStrings(const AStrings:TStrings; constASynchronized:boolean = true):IkbmMWStringsLogManager; function OutputToStringsAndFile(const AStrings:TStrings; constASynchronized:boolean = true; constAFileName:string=‘‘):IkbmMWTeeLogManager; function OutputToTee:IkbmMWTeeLogManager; procedure OutputToNull; to IkbmMWLog to make it easier to redirect output to some standarddestinations.- Added mwddLog to kbmMWGlobal, as a new output destination for kbmMWlowlevel debugging. Will output to the default logger.- Fixed and improved TkbmMWCircularBuffer.- Added kbmMWSmartUtils.pas containing Use class with easy to usemethods to convert arguments and results.Changes/minor additions=======================- Removed (mwloProcessThreadInfo,mwloThreadName from TkbmMWLogOptionsince its now controlled by the log formatter.- Changed Activate method of IkbmMWScheduledEvent to have true asdefault argument AValue.- Changed SetAsDuration and GetAsDuration to use TkbmMWDuration insteadof TkbmMWDateTime.- Added support for checking if path is accessible inTkbmMWBufferedFileStream.Create.- Changed JSON parser/generator to be based on the object notationframework.- Improved scalability of FastCGI services to better spread load accrossmultiple instances.Fixes=====- Fixed A/V when attempting to use audit file.- Fixed missing clearing of TkbmMWDuration when parsing durationstrings, resulting in an incorrect duration value (instead of null) on invalid duration strings.- Fixed TDuration.Passed(const ADuration:TkbmMWDuration) which didntreturn correct value.- Fixed deactivating precise scheduled events.- Fixed events scheduled to start on day, month, week or year boundaries.- Fixed issues to initial delay in scheduled events.- Fixed parsing tags crossing line boundaries in XML parser.- Fixed various namespace issues in XML parser.- Fixed WIB compilation issue for XE.- Fixed TkbmMWStreamStore offset bug when writing first segment.- Fixed potential shutdown issue in Indy10 transports due to Indy10 bug.- Fixed kbmMWDependency non accumulating memory leaks.- Fixed NexusDB transport compilation.- Fixed Autoinc field detection in EDB (ElevateDB) adapter.
kbmmw 5.01 发布
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。