经过快3个月的测试,kbmmw 4.40 正式版终于在圣诞节前发布了。

We are happy to announce the availability of a new kbmMW release!

This is a major release that amongst other things adds support for
Delphi XE5 Win32/Win64/OSX/IOS/Android.

The release also includes the following major features (only a subset of
all new features added):

- A new highly configurable and flexible authorization manager where
actors, roles, resources, authorizations and constraints can be defined.

- New portable high performance algorithms: TkbmMWLock and TkbmMWEvent

  and detailed CPU affinity configuration for functionality groups.

- Async progress framework for subscribing for progress and sending it,

  with the ability to cancel long running operations.

- Multipart HTTP parsing and HTTP authentication support.

- Numerous new bundled ciphers and hashes based on the

  discontinued DCPCrypt open source product. C4D has revived

  the code within kbmMW, and ported it to support all platforms

  supported by kbmMW.

- New FireDAC database adapter.

Please check the log further down in this post for more information!

If you have an active SAU, the download of this latest kbmMW release is
readily available on your portal at:

https://portal.components4developers.com

If your SAU has lapsed, you can extend it with another 12 months.

If it has been lapsed for more than 24 months, contact us for a

10% discount on a new kbmMW license replacing the old.

This release require kbmMemTable v. 7.40.00.

4.40.00 Dec 22 2013

Important notes (changes that may break existing code)

        ======================================================

        - Changed JSON object marshalling (TkbmMWJSONMarshal) to not

          add double child arrays in collections.

          Notice this makes JSON incompable with previous JSON

          streaming format.

New stuff

        =========

        - Added properties Cancel:boolean, UniqueID:string,

          UniqueCallID:string, RequesterNodeID:string and

          RequesterClusterID:string

          to TkbmMWCustomService. Enables features for cancelling

          ongoing request.

        - Added full XE5 Win32/Win64/OSX/Android and IOS support. Add

          kbmMW and kbmMemTable source directory to Library path

          when compiling for Android or IOS.

        - Added TkbmMWAuthorizationManager which can be used for

          keeping track of resources, actors, logins and authorizations

          and constraints.

        - Added AuthorizationManager property to TkbmMWServer.

        - Added OnPreServeRequest to TkbmMWServer. Provides access to a

          request before even authorization manager kicks in.

        - Added Cancel method to TkbmMWServer allowing for requesting

          cancelation of a specific request.

        - Added Enabled property to TkbmMWCustomServerTransport.

        - Modified OnAuthenticate event to include AMessage:string

          argument.

        - Added Transport:string to TkbmMWClientIdentity. Is set on

          server to let authentication know from which transport a

          request originates.

        - Added portable high performance TkbmMWLock (when

          KBMMW_SUPPORT_FASTMRWSLOCK is defined (default)) which is

          much faster

          than TEvent/TMutex and TMultiReadExclusiveWriteSynchronizer.

        - Added TkbmMWTiming which provides portable high resolution

          time functionality.

        - Added TkbmMWInterlocked which provides portable interlocking

          functions.

        - Added high performance TkbmMWEvent to replace slower TEvent.

        - Added ConfigureAffinity, Yield, Sleep, CurrentThreadID,

          CurrentThread, ThreadGroup and ThreadAffinityType to

          TkbmMWCustomThread.

          ThreadGroup allows selection of a thread group which share a

          common CPU core affinity. Max 256 threadgroups exists.

          Placement of the thread on a CPU core within the defined

          affinity is determined by the ThreadAffinityType setting.

          Allows for fine tuned thread optimization. Specify affinities

          in global variable: kbmMWThreadGroupAffinity.

        - Added TkbmMWPlatformMarshal for portable memory/bytes

          /utf8/string marshalling.

        - Changed kbmMWHashString from a simple xor hash to the better

          FNV-1A 32 bit hash.

        - Added portable kbmMWGetApplicationName:string returning the

          name (typically with path) of the current executable.

        - Added optional Mapping:string argument to LoadFromDataset.

          Specify sourcefield=destfield;... for custom mapping of

          fields.

        - Added new WIB message type mwmtEvent (EVT.). Its designed to

          be used for sending system/application events. For example

          used by the new progress management system, which allows for

          a client to subscribe for progress, and a server to push

          progress status, for example for long running synchrone or

          asynchrone requests (require WIB).

        - Added new transport heartbeat functionality via properties

          HeartbeatInterval and OnSendHeartbeat. OnSendHeartbeat is

          triggered every n seconds, and its the developers

          responsibility to then actually send a message/request to

          indicate a heartbeat from a client

          with help of the SendHeartbeat method on the client transport.

        - Added mwsloNullOnValueError as a new SQLite option. Instead

          of excepting the field is set to null.

        - Added Pause:boolean, PausePriority:byte to TkbmMWCustomQueue.

          If Pause=true will pause processing (sending if outbound

          queue) messages equal to or lower than PausePriority.

        - Added counters TotalPushCount, TotalTentativePopCount,

          TotalCommitCount, TotalRollbackCount, TotalRejectCount,

          TotalDeleteCount to TkbmMWCustomQueue.

        - Added support for multiple events for a single subscription

          via the Events property of TkbmMWSubscription.

          Now Subscribe adds an additional event if a subscription

          allready exists for a particular subscription subject.

          Use SubscribeReplace to replace all previously events for a

          subscription with another event.

          Unsubscribe method now overloaded with multiple methods,

          allowing to unsubscribe for a specific event for a subject.

          The "old" Unsubscribe unsubscribes all events for the given

          subject.

        - Added ThreadGroup and ThreadAffinityType to

          TkbmMWCustomAsyncMessageProcessor,

          TkbmMWCustomAsyncMessageQueueProcessor

          and TkbmMWCustomPooledMessageQueueProcessor.

        - Added new TkbmMWCustomEventMessage which is the basis for all

          WIB based messages that constitutes an event message.

        - Added new TkbmMWHeartbeatEventMessage.

        - Added properties AsEncodedString, UpperName to

          TkbmMWHTTPCustomValue.

        - Added Delete, Values, Names, ValueAsString, AsEncodedString

          to TkbmMWHTTPCustomValues.

        - Added TkbmMWHTTPMimeHeaderValueField,

          TkbmMWHTTPMimeHeaderValueFields, TkbmMWHTTPMimeHeaderValue,

          TkbmMWHTTPMimeHeaderValues, TkbmMWHTTPMultiPart,

          TkbmMWHTTPMultiParts in kbmMWHTTPUtils.pas.

          Thus now multipart HTTP messages can be parsed.

        - Added TkbmMWHTTPCustomAuthorization and

          TkbmMWHTTPBasicAuthorization along with

          new function kbmMWParseAuthorization(const

          AAuthorizationHeader:string):TkbmMWHTTPCustomAuthorization;

          for parsing authorization header.

        - Updated TkbmMWHTTPTransportStreamHelper to support new

          TkbmMWHTTPMimeHeaderValues, and added HTTPRealm:string

          property, and added

          Authorization:TkbmMWHTTPCustomAuthorization property.

        - Added  function

          HTTPResponseFromStream(AStream:TkbmMWMemoryStream):variant;

          to TkbmMWCustomHTTPService.

        - Updated known mimetypes (Added SVG, JSON, TTF, OTF, WOFF,

          EOT, MP4, MPEG4)

        - Updated known charsets (added JSON = UTF8).

        - Added TkbmMWSAFSyncRequestResponseStatus set

          (mwbrsTimeout,mwbrsAbort,mwbrsOK) which allows for

          a sync/async request to determined if a request has timed

          out, been cancelled or proceeded ok.

        - Added OnProcessorException to TkbmMWCustomSAFClientTransport

          which is triggered if the internal inbound or outbound

          processor encounters an exception.

        - Added optional APriority argument to AnnounceSubscriptions

          method.

        - Added OnClientWaitingResponse event to TkbmMWCustomClient.

          Its triggered when a request is sent that is blocking (sync).

        - Added new TkbmMWProgressManager which can be used to send and

          receive progress information via the WIB.

        - Added new FireDAC adapter.

        - Added new ciphers and hashes. The closed DCPCrypt library

          (www.cityinthesky.co.uk/opensource/dcpcrypt) has been

          picked up by C4D and resurrected with support for all

          platforms.

          Thus now added TkbmMWHashHaval, TkbmMWHashMD4, TkbmMWHashMD5,

          TkbmMWHashRipeMD128, TkbmMWHashRipe160,

          TkbmMWHashSHA1, TkbmMWHashSHA256, TkbmMWHashSHA512,

          TkbmMWHashTiger hashes, and

          TkbmMWCipherBlowfish, TkbmMWCipherCast128,

          TkbmMWCipherCast256, TkbmMWCipherDes, TkbmMWCipher3Des,

          TkbmMWCipherIce, TkbmMWCipherThinIce, TkbmMWCipherIdea,

          TkbmMWCipherMars, TkbmMWCipherMisty1,

          TkbmMWCipherRC2, TkbmMWCipherRC4, TkbmMWCipherRC5,

          TkbmMWCipherRC6, TkbmMWCipherRijndael, TkbmMWCipherAES,

          TkbmMWCipherSerpent, TkbmMWCipherTea, TkbmMWCipherTwofish

          ciphers.

        - Added TkbmMWCrypt transport encryption plugin, which supports

          all above ciphers and hashes.

        - Added mwsloSharedCache, mwsloExceptOnLocked options to

          TkbmMWSQLiteOptions.

        - Added MaxLockedWait property to TkbmMWSQLiteConnectionPool.

          It controls how long time a statement will wait (msecs) for

          a blocking lock to be lifted, before excepting.

        - Added support for accessing native SQLite library on Android.

          Make sure NOT to use KBMMW_SQLITE_STATIC_LINKED. On IOS

          you MUST use KBMMW_SQLITE_STATIC_LINKED.

        - Added UTF8CEncode and String2CBytes to TkbmMWPlatformMarshal.

          They will add an ending zero byte to the resulting byte array.

        - Added TkbmMWCustomHashStream, and made TkbmMWMD5Stream

          descend from it.

        - Added kbmMWCopyDigest and kbmMWZeroDigest functions to

          kbmMWGlobal.pas

        - Added support for defining null value for boolean value via

          the kbmMW_Null attribute (object marshalling).

        - Added 4 new exception error codes related to

          encryption/descruption to kbmMWExceptions.pas.

        - Added DontExceptOnEmptyString boolean property to

          TkbmMWJSONStreamer. If true, parsing an empty string will

          not cause exception, but only return an empty

          TkbmMWJSONObject instance.

Fixes

        =====

        - Fixed compilation for D2009.

        - Fixed mime encoding/decoding in kbmMWMime.pas.

        - Fixed null validation/conversion for collection items (object

          marshalling).

        - Fixed storing/retrieving stream of size 0 in kbmMW Stream

          Store.

        - Fixed several other issues.

Changes/minor additions

        =======================

        - Removed old TkbmMWDCPCrypt transport encryption plugin.

        - Changed TkbmMWThreadList to be a generic class.

        - Changed kbmMWImplode to optionally accept AQuote argument

          (default none).

        - Changed TkbmMWAuthorizationActor so the actor name is stored

          and compared case insensitive (uppercase).

        - Changed JSON object marshalling (TkbmMWJSONMarshal) to not

          add double child arrays in collections.

          Notice this makes JSON incompable with previous JSON

          streaming format.

KbmMW 4.40.00 正式版发布的更多相关文章

  1. KbmMW 4.40.00 测试发布

    经过漫长的等待,支持移动开发的kbmmw 4.40.00 终于发布了,这次不但支持各个平台的开发, 而且增加了认证管理器等很多新特性,非常值得升级.具体见下表. 4.40.00 BETA 1 Oct ...

  2. .NET 5.0 RC1 发布,离正式版发布仅剩两个版本

    原文:http://dwz.win/Qf8 作者:Richard 翻译:精致码农-王亮 说明:1. 本译文并不是完全逐句翻译的,存在部分语句我实在不知道如何翻译或组织就根据个人理解用自己的话表述了.2 ...

  3. Python 3.8.0 正式版发布,新特性初体验 全面介绍

    Python 3.8.0 正式版发布,新特性初体验 北京时间 10 月 15 日,Python 官方发布了 3.8.0 正式版,该版本较 3.7 版本再次带来了多个非常实用的新特性. 赋值表达式 PE ...

  4. Angular2正式版发布,Wijmo抢先支持

    Angular2正式版发布 9月15日,Angular 2 的最终版正式发布了.作为 Angular 1 的全平台继任者 -- Angular 2 的最终版,意味着什么? 意味着稳定性已经得到了大范围 ...

  5. Redis 3.0正式版发布,正式支持Redis集群

    Redis是一个开源.基于C语言.基于内存亦可持久化的高性能NoSQL数据库,同时,它还提供了多种语言的API.近日,Redis 3.0在经过6个RC版本后,其正式版终于发布了.Redis 3.0的最 ...

  6. PyPy 2.1 正式版发布

    PyPy 2.1 Beta1 才刚刚在2天前发布,今天 PyPy 宣布 2.1 正式版发布. 值得关注的改进内容有: JIT support for ARM, architecture version ...

  7. Appium路线图及1.0正式版发布

    Appium更新的速度极快,从我试用时候的0.12到1.0(0.18版本后就是1.0),完全符合移动互联网的节奏. 更新可能会慢,可以多试几次 整理了testerhome上思寒发表的帖子,让我们来看下 ...

  8. Java 开源博客——B3log Solo 0.6.1 正式版发布了!

    Java 开源博客 —— B3LOG Solo 0.6.1 正式版发布了!欢迎大家下载. 该版本主要是改善细节体验,并加入了一款 Metro 风格的皮肤. 特性 基于标签的文章分类 Ping Goog ...

  9. Eclipse 4.3正式版发布

    Eclipse 4.3正式版发布 作者:chszs,转载需注明.博客主页: http://blog.csdn.net/chszs Eclipse 4.3版代号为Kepler. 主要特性如下: 1. E ...

随机推荐

  1. python eval, exec. compile

    compile 编译某段代码, (将一个字符串编译为字节代码), 以方便重复调用. exec 可以理解为和if, for一样是一个语法声明, 而不是一个函数. 注意globals和locals的含义. ...

  2. 每天进步一点点——Linux中的线程局部存储(一)

    转载请说明出处:http://blog.csdn.net/cywosp/article/details/26469435    在Linux系统中使用C/C++进行多线程编程时,我们遇到最多的就是对同 ...

  3. C#.NET股票历史数据采集,【附18年历史数据和源代码】

    阅读目录 1.数据采集需求 2.股市数据接口 3.数据库设计 4.关键信息采集 5.源代码和数据库 如果用知乎,可以关注专栏:.NET开源项目和PowerBI社区 重点重点:我没有买股票,没有买股票, ...

  4. IMP-00009: 导出文件异常结束 imp

    在一次exp/imp中,用imp导入数据时报错.错误信息如下: IMP-00009: 导出文件异常结束 imp导入时异常结束可以有很多原因造成,要具体问题具体分析. 可能原因一: 导入的数据表过大,而 ...

  5. 解决一个java facets问题

    经常被一个问题困扰: JavaServer Faces 2.2 can not be installed : One or more constraints have not been satisfi ...

  6. Web验证方式(4)--JWT

    OAuth协议中说到的AccessToken可以是以下两种: 1.任意只起到标识作用的字符串:这种情况下Resource Server处理请求时需要去找Authorization Server获取用户 ...

  7. volatile的本质

    1. 编译器的优化 在本次线程内, 当读取一个变量时,为提高存取速度,编译器优化时有时会先把变量读取到一个寄存器中:以后,再取变量值时,就直接从寄存器中取值:当变量值在本线程里改变时,会同时把变量的新 ...

  8. FT5X06 如何应用在10寸电容屏

    硬件搭起来看现象,如下图: 红色区域是FT5406上报有效数据的范围(1280*600),以左上角为原点 ,X轴方向上报数据的最大值1280,Y轴方向上报的最大数据是600..但是我用的LG的10.1 ...

  9. keepalive配置db层的ha的一些注意点

    具体db是那种都一样 db先做好replica,可以用自己带的,或者drbd的磁盘复制 db和keepalived必须在同一主机 keepalived里面的rs必须只有一个(否则,做不了主从,理论上会 ...

  10. emacs之配置8,gdb调试设置

    emacsConfig/gdb-setting.el (global-set-key [(f5)] 'gud-go) (global-set-key [(f7)] 'gud-step) (global ...