增加了一大波功能,消灭了一大堆问题,也肯定引进了一大票BUG.
We are happy to announce the release of our latest version of kbmMW.
Downloads are readily available for holders of active SAU's from the
portal at: https://portal.components4developers.com
5.04.00 Nov 02 2017
New stuff
=========
- Added OnAccessException event to TkbmMWCustomFileClient.
- Added Checksum, ChecksumEx, SameFile, SameFileEx,
LocalChecksum to TkbmMWCustomFileClient
Checksum(Ex) and LocalChecksum use SHA256 to calculate
checksum.
SameFile(Ex) calculates checksum on both local and remote file
and compares those.
On platforms supporting TkbmMWScheduler, the calculations are
run in parallel.
- Added WithObject and WithInterface to TkbmMWScheduledEvent to
allow piggybacking additional data to events.
- Added additional overloaded SynchronizedAfterRun and AfterRun
for anonymous procedures to TkbmMWScheduledEvent.
- Added WhenException methods to TkbmMWScheduledEvent to allow
handling exceptions.
- Added WaitRun(s) to TkbmMWScheduledEvent to allow pausing a
thread until an event has finished running.
- Added additional Run/RunNow methods to TkbmMWScheduler to
allow for scheduling multiple parallel jobs that will be run
under control of one scheduled event.
Only when all jobs has run, the scheduled event is considered
to have run.
- Added mwxonoPreferAttributes and
mwxonoAutoIdentifyArrayElement to
TkbmMWXMLObjectNotationOption.
mwxonoPreferAttributes controls if conversion from object
notation should prefer defining XML node values as attributes
or as elements.
mwxonoAutoIdentifyArrayElement controls if conversion from
object notation should include index (i) attribute to
precisely identify a row in an array.
- Updated many database adapters to prevent certain leaks on
exceptions.
- Added MaxFileSize to TkbmMWFileServiceDefinition to define
maximum size of file that is allowed to be received by the
server. Default no limit.
- Added TkbmMWVirtualConfigurationStorage to kbmMWConfiguration
unit. It allows for getting and storing configuration from any
type of medias.
- Added TkbmMWMarshal.Bytes2Memory function in kbmMWGlobal.
- Added ToString to IkbmMWAutoValue.
- Added kbmMWExplode function to kbmMWGlobal. It allows for
exploding strings with start and end tags as delimiters.
- Added PrettyChar2String function to IkbmMWLogFormatter.
- Made Char2PrettyChar function in IkbmMWLogFormatter
implementers public.
- Added support for detecting version of databases for some
databases in TkbmMWCustomConnectionPool.
- Added TkbmMWThreadONObject and TkbmMWThreadONArray to
kbmMWObjectNotation. They allows for multithreaded access to
the same base object notation object or array.
- Added additional support for CoInitialize and CoUnInitialize
for UNIDac adapter.
- Added BasicProperties property to IkbmMWAMQPChannel.
- Updated database adapter wizard to generate up to date code.
- Improved stability of TkbmMWFileService, TkbmMWFileClient and
TkbmMWFilePool.
- Improved error handling in kbmMWORM.
Fixes
=====
- Fixed bugs in TkbmMWScheduler.
- Fixed compilation errors in AMQP on some IDE SKU versions.
- Fixed header properties not available under some circumstances
in AMQP.
- Fixed bugs in TkbmMWAuthorizationManager.
- Fixed bugs in kbmMWConfiguration.
- Fixed bugs in kbmMWHTTPUtils resulting in stack overflow.
- Fixed some null handling issues in TkbmMWObjectNotation.
- Removed leftover debug code from TkbmMWBPStringMaskPart.
- Fixed bugs in TkbmMWAMQPChannel.
- Fixed NULL marshalling issue in TkbmMWONNullableMarshal.
- Fixed kbmMWServer not instantiating minimum number of services
at startup.
- Fixed IDE Debug visualizers.
Changes/minor additions
=======================
- Improved GetStreamEx and PutStreamEx to allow for retry on
failure in TkbmMWCustomFileClient.
- Generally improved exception and error handling in
TkbmMWCustomFileClient.
- Improved PutStreamEx to include offset and total file size in
server call.
- Improved TkbmMWSQLiteMetaData to support obtaining version
meta data and index info from older SQLite versions (pre
3.8.3)