kbmmw 5.01 发布
- Important notes (changes that may break existing code)
- ======================================================
- * Officially now only supporting XE2 and forward. Support for pre XE2
- may 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 XE2
- may not be complete.
- - Added RemoteLocationsPrimaryPart to
- TkbmMWAuthorizationTransportConstraint (default false).
- If set to true, will only compare primary part of
- clientidentity.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 vastly
- improved features for
- controlling the look and layout of the log output. Its the default
- used log formatter.
- - Added TkbmMWSimpleLogFormatter to kbmMWLog. It outputs a log with only
- datetime,
- type (info/warning/error/fatal etc) and log string.
- - Added LogFormatter property to IkbmMWLogManager. It can be set to a
- custom log formatter.
- - Added mwldtRaw log data type and methods LogRaw to IkbmMWLog. It
- allows for logging
- bytes or strings without interpretation/reformatting.
- - Added global SystemLog instance which will always output to system log
- outputs.
- It is used as a fallback in case the regular log system excepts.
- - Added support for marshalling/unmarshalling named enum values via the
- new kbmMW_Enum
- attribute.
- Its useful when an enum value cant be used as an identifier or its
- value should be different
- from its presented name.
- - Added ExceptOnUnknownType to TkbmMWCustomRTTIMarshal. It controls if
- to 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 unmarshalling
- that contains a capacity
- constructor argument.
- - Added Run methods to TkbmMWScheduler. It allows for one time run and
- forget scheduled async
- code. They are used in the same way as the Schedule methods, but sets
- Occurs to mwsoRun.
- The job will be automatically unscheduled after the run.
- - Added overloaded DelayInitial(const AInitialDelaySecs:double) to
- IkbmMWScheduledEvent.
- It allows for directly giving an initial delay in seconds. It supports
- fractional second
- values.
- - Added Clear to TkbmMWScheduledEvents (scheduler.Events) to allow for
- clearing all scheduled
- events. Running events will be allowed to finish.
- - Added GetNameSpaceByURI, DefaultNameSpace, DefaultNameSpaceURI to
- TkbmMWDOMXMLNameSpaceList.
- - 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.
- - Added
- mwrtoOptionalInsert,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 key
- not 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 when
- insert/update/delete should happen.
- If one of the optional (OIM,OMD,OID,OI,OD,OM) is given, no exception
- will 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 resolve
- operation will be skipped
- for the specific record if key is null.
- - Added ReadBOM overloaded methods with default TEncoding option to
- TkbmMWPlatformMarshal.
- - Added overloaded kbmMWTextToString, kbmMWExpectText,
- kbmMWStringRightPad, kbmMWStringLeftPad,
- kbmMWGetComputerName functions to kbmMWGlobal.pas.
- - Added optional ACallback anonymous function to SendAsyncRequest and
- SendAsyncRequestEx in
- kbmMWClient.pas (WIB only).
- It allows for providing an anonymous function that should be called
- when 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 object
- trees consisting of
- TkbmMWONNative, TkbmMWONArray and TkbmMWONObject which all are based
- on 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 TkbmMWCustomHTTPSmartService
- services, which
- can be selected in the service wizard to create smart services. Smart
- services
- supports tagging any function to be exported to a smart client or a
- REST client
- (TkbmMWCustomHTTPSmartService required).
- - Updated transports to support marshalling objects via the transport.
- - Added several near lock free features to kbmMWGlobal, including
- TkbmMWLockFreeStack,
- more interlocked functions, lock free array GC fixes, optional
- TkbmMWREWLock statistics,
- support for TkbmMWMREWLock can switch to TMonitor for reader/writer
- fair 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 from
- TkbmMWCustomHash.
- - 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 to
- prevent
- potential login spam.
- - Added support for HTTPSys based transport for Windows. Its specially
- useful
- for high performance RESTful applications.
- - Added AutoRegisterServices method to TkbmMWServer which can be used
- for automatically
- locating and registering any service that has the kbmMW_Service
- attribute defined.
- It makes use of the old RegisterService and RegisterServiceByName
- optional.
- - 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 fast
- setting
- the UTC value of an already defined TkbmMWDateTime record. The record
- MUST be initialized before using FastSetUTC, for example by
- dt:=TkbmMWDateTime.Now;
- - Added ValueToStream, ValueFromStream, ValueToBytes and ValueFromBytes in
- TkbmMWCustomRTTIMarshal. Allows for easy marshalling objects to and
- from bytes and streams.
- - Added ExceptOnUnknownType boolean property to TkbmMWCustomRTTIMarshal.
- Controls if an exception should be thrown in case a type cant be
- marshalled or
- unmarshalled, or it should be silently skipped.
- - Added Devart MyDAC support (DMYDAC).
- - Added CORS support (Cross Origin-Resource Sharing) in
- TkbmMWCustomHTTPService 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 HTTPSys
- transport
- is used for smart services.
- - Added TkbmMWSmartClient which allows simple and easy access to server
- side 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 (32
- bit),
- TkbmMWRandomMersenneTwisterUInt64 (64 bit)
- - Added high quality pronouncable password generators in new unit
- kbmMWPassword.
- TkbmMWMixerPasswordGen, TkbmMWKoremutakePasswordGen
- - Added support for ExchangeType in TkbmMWAMQPClient.
- - Added new GC and CloseAndGC methods in TkbmMWAMQPChannel to force
- getting 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 Persistence
- Framework)
- in unit kbmMWORM.pas. Compiles with XE5 and higher. Check new ORM demos.
- Currently in beta.
- - Added TkbmMWBinaryPasswordGen to kbmMWPassword.pas. Generates random
- binary 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(const
- AFileName:string=''):IkbmMWLocalFileLogManager;
- procedure OutputToDefault;
- function OutputToStrings(const AStrings:TStrings; const
- ASynchronized:boolean = true):IkbmMWStringsLogManager;
- function OutputToStringsAndFile(const AStrings:TStrings; const
- ASynchronized:boolean = true; const
- AFileName:string=''):IkbmMWTeeLogManager;
- function OutputToTee:IkbmMWTeeLogManager;
- procedure OutputToNull;
- to IkbmMWLog to make it easier to redirect output to some standard
- destinations.
- - Added mwddLog to kbmMWGlobal, as a new output destination for kbmMW
- lowlevel debugging.
- Will output to the default logger.
- - Fixed and improved TkbmMWCircularBuffer.
- - Added kbmMWSmartUtils.pas containing Use class with easy to use
- methods to convert arguments and results.
- Changes/minor additions
- =======================
- - Removed (mwloProcessThreadInfo,mwloThreadName from TkbmMWLogOption
- since its now controlled
- by the log formatter.
- - Changed Activate method of IkbmMWScheduledEvent to have true as
- default argument AValue.
- - Changed SetAsDuration and GetAsDuration to use TkbmMWDuration instead
- of TkbmMWDateTime.
- - Added support for checking if path is accessible in
- TkbmMWBufferedFileStream.Create.
- - Changed JSON parser/generator to be based on the object notation
- framework.
- - Improved scalability of FastCGI services to better spread load accross
- multiple instances.
- Fixes
- =====
- - Fixed A/V when attempting to use audit file.
- - Fixed missing clearing of TkbmMWDuration when parsing duration
- strings, resulting in
- an incorrect duration value (instead of null) on invalid duration strings.
- - Fixed TDuration.Passed(const ADuration:TkbmMWDuration) which didnt
- return 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 发布的更多相关文章
- kbmmw 5.04 发布
增加了一大波功能,消灭了一大堆问题,也肯定引进了一大票BUG.We are happy to announce the release of our latest version of kbmMW. ...
- kbmmw 5.02发布
5.02.00 May 27 2017 Important notes (changes that may break existing code) ========================= ...
- KbmMW 4.5 发布
We are happy to announce the release of kbmMW v. 4.50.00 Professional, Enterprise and CodeGear Editi ...
- kbmmw 5.09 发布
New stuff ========= - Added kbmMWSmartBind.pas unit with optional kbmMWSmartBindVCL.pa ...
- DB 查询分析器7.01 新增的保存执行结果到多个文件功能
1 引言 中国本土程序员马根峰(CSDN专访马根峰:海量数据处理与分析大师的中国本土程序员)推出的个人作品----万能数据库查询分析器,中文版本DB 查询分析器.英文版本< ...
- 热烈庆祝自已厉精13年开发的 DB查询分析器 7.01(最新版本) 在中关村在线本月获得近6000次的下载量
中国本土程序员马根峰(CSDN专访马根峰:海量数据处理与分析大师的中国本土程序员)推出的个人作品----万能数据库查询分析器,中文版本 DB 查询分析器.英文版本DB Query Analyzer.它 ...
- DB查询分析器7.01新增的周、月SQL执行计划功能
DB查询分析器7.01新增的周.月SQL执行计划功能 马根峰 (广东联合电子服务股份有限公司, 广州 510300) 1 引言 中国本土 ...
- DB 查询分析器 6.04 发布 ,本人为之撰写的相关技术文章达78篇
DB查询分析器 6.04 发布,本人为之撰写的相关技术文章达78篇 中国本土程序员马根峰(CSDN专访马根峰:海量数据处理与分析大师的中国本土程序员 http://www.csdn.net/artic ...
- kbmMW授权管理解析(The kbmMW Authorization manager explained)
从kbmMW v.4.40开始,引入了一个新的非常灵活的授权管理器. 它的目的是为开发人员提供为用户定义资源权限的功能,这是一个可选功能,将现有的授权事件驱动方案内置到kbmMW中,使授权开发任务更容 ...
随机推荐
- vue confirm确认
this.$confirm('您确定删除吗?').then(_ => { do something ... (确认) }).catch(_ => { do something ... (取 ...
- vue 中安装使用sass 报错遇到的问题整理
不出错的情况下,正常安装: 1.安装包: npm install node-sass --save-dev npm install sass-loader --save-dev (sass-loade ...
- 二叉树的镜像(python)
题目描述 操作给定的二叉树,将其变换为源二叉树的镜像. 输入描述: 二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \ 10 6 / \ / \ ...
- ansible1
前期工作: 第一步:下载epel源 wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo 第二步: ...
- 图片Bitmap在本地的存储与读取 File
将Bitmap存储到本地: public void SaveImage(Bitmap image, String user_id){ //照片通常存在DCIM文件夹中 String sdCardDir ...
- C#后台对密码框不能直接赋值
当页面密码框 为 textmode="textpassword"时候,使用 txtpwd.text="XXX",是不会显示的, 应该使用txtpass.Attr ...
- 安装vCenter server 6.0
注意,5.5的还可以直接把iso里的ova直接导入为模板,6.0之后的要拉到Windows下安装. 总路线 ESXI是服务器系统,用vsphere client连接,在client里新建一个虚拟机为W ...
- Ubuntu防火墙配置
转载自:http://blog.csdn.net/sumer0922/article/details/7485584Ubuntu11.04默认的是UFW(ufw 即uncomplicated fire ...
- DataInputStream FileInputStream 区别
DataInputStream是数据输入流,读取的是java的基本数据类型. FileInputStream是从文件系统中,读取的单位是字节. FileReader 是从文件中,读取的单位是字符
- Oracle Telnet 1521 失败
作中发现自己的电脑“telnet 127.0.0.1 1521”(注意:不要拼成telnet 127.0.0.1:1521 ) 可以通过,但是使用localhost.主机名来telnet,则失败. 解 ...