Release 2025.06 (9.3) - first offered 20 June 2025
|
|
Core
|
✓ Fixed
|
Remove deprecated constants from unit BTBrokerConsts.
|
✓ Fixed
|
Remove obsolete type casts in TBTStompClient.StompDataAvailable, BTStompEncoder.Escape, and TBTStompClient.TraceFrameHeaders.
|
✓ Fixed
|
Remove obsolete overload directive for TBTStompClient.TraceFrameHeaders.
|
✓ Fixed
|
Fixed hints and warnings.
|
❄ New
|
The ICompletionListener interface of the modern API and its implementation is deprecated, as it does not add substantial value.
|
❄ New
|
Reduce visibility of methods and properties to protected which implement an interface.
|
❄ New
|
Log Indy product name and version in unit BTCommAdapterBaseIndy.
|
❄ New
|
Renamed setter and getter methods for JMSRedelivered and JMSDeliveryMode to follow naming conventions.
|
|
Examples and documentation
|
✓ Fixed
|
Doxygen: warning: More #endif's than #if's found.
|
✓ Fixed
|
Doxygen: warning: Found ';' while parsing initializer list! (doxygen could be confused by a macro call without semicolon).
|
✓ Fixed
|
Doxygen: use \cond to exclude documentation for some internal implementation classes.
|
✓ Fixed
|
Doxygen: improve class diagrams by explicitly have interfaces to inherit from IInterface.
|
✓ Fixed
|
Doxygen: reduce duplicated documentation comments by using INHERIT_DOCS and \copydoc.
|
✓ Fixed
|
Fixed and updated links in Getting Started PDF.
|
❄ New
|
Update Doxygen to version 1.14.0.
|
❄ New
|
Add more HTML documentation.
|
❄ New
|
Add diagram of new programming model to PDF and API docs.
|
❄ New
|
Update source/optional/readme.txt.
|
❄ New
|
Update copyright text.
|
|
Tests
|
✓ Fixed
|
Remove obsolete code for old decoder implementation.
|
✓ Fixed
|
Remove obsolete type casts.
|
✓ Fixed
|
Remove Indy version check from BTCommAdapterBaseIndy unit.
|
❄ New
|
Add unit test for Indy version: IdGlobal.gsIdProductVersion must be equal to 10.6.3.
|
❄ New
|
Tested with Lazarus IDE 4.0.
|
❄ New
|
Tested with the
Indy 10.7 branch
|
|
Habari STOMP Client for ActiveMQ
|
✓ Fixed
|
Move deprecated contant TRANSFORMER_ID_ADVISORY_JSON from BTBrokerConsts unit to broker-specific demo code in activemq-advisory/AdvisoryMessagesReceiver unit.
|
❄ New
|
Tested with ActiveMQ 6.1.6
|
|
Habari STOMP Client for Artemis
|
❄ New
|
Tested with Artemis 2.40.0
|
|
Habari STOMP Client for RabbitMQ
|
❄ New
|
Tested with RabbitMQ 4.1.0
|
Release 2024.08 (9.1) - first offered 03 August 2024
|
|
Core
|
✓ Fixed
|
Add abstract keyword to classes TBTAbstractCommAdapter and TBTAbstractTransport.
|
✓ Fixed
|
Move fields from the protected to the private section.
|
✓ Fixed
|
Add missing STOMP protocol version case labels.
|
✓ Fixed
|
Use method RecvTerminated in unit BTCommAdapterBaseSynapse and move it to private section.
|
✓ Fixed
|
Add condition checks to use DEFAULT_TIMEOUT only for (deprecated) message listener.
|
|
Examples and documentation
|
❄ New
|
Add link to new Synapse GitHub repository to documentation.
|
|
Habari STOMP Client for ActiveMQ
|
✓ Fixed
|
Deprecate several ActiveMQ Classic constants releated to advisory message and object message transformation.
|
|
Habari STOMP Client for Artemis
|
✓ Fixed
|
Use BrokerFeatures.SupportsTransactedAck flag to disable test case for transactional ACK.
|
❄ New
|
Tested with Artemis 2.35.0
|
|
Habari STOMP Client for OpenMQ
|
✓ Fixed
|
Use BrokerFeatures.SupportsTransactedAck flag to disable test case for transactional ACK.
|
✓ Fixed
|
Use BrokerFeatures.SupportsHeartbeats flag to disable test cases for heart-beating.
|
✓ Fixed
|
Fixed failing test TestMgmtInterfaces which was not updated to expect STOMP 1.2
|
❄ New
|
Tested with OpenMQ 6.5.0
|
|
Habari STOMP Client for RabbitMQ
|
❄ New
|
Tested with RabbitMQ 3.13.4 and 4.0.0-beta.3
|
Release 2024.06 (9.0) - first offered 05 June 2024
|
|
Core
|
✓ Fixed
|
Fix initialization of field FNackHeaders in class TBTMessage
|
❄ New
|
Changed TBTMQProducer.InternalSend method from function to procedure
|
❄ New
|
Lower method visibility in TTCPClient and other classes
|
❄ New
|
Remove obsolete field FURI in TBTConnectionParams
|
❄ New
|
Remove obsolete exception variable E:
|
❄ New
|
Remove obsolete properties in several BTCommAdapterBase* units
|
❄ New
|
Migrate sub-procedures to first level procedures in BTStompEncoder and other units
|
❄ New
|
Use strict private for TBTStompClient and other classes
|
❄ New
|
Tested with Indy 10.6.3.3
|
|
Habari STOMP Client for ActiveMQ
|
❄ New
|
Tested with ActiveMQ 6.1.2
|
|
Habari STOMP Client for Artemis
|
❄ New
|
Tested with Artemis 2.33.0
|
|
Habari STOMP Client for RabbitMQ
|
❄ New
|
Tested with RabbitMQ 3.13.3
|
Release 2024.04 (8.7) - first offered 20 April 2024
|
|
Core
|
❄ New
|
Refactor TBTStompClient class
|
❄ New
|
Refactor BTFailoverURLParser class
|
❄ New
|
Remove old STOMP decoder code from TBTStompDecoder class
|
❄ New
|
Remove needless virtual keywords
|
❄ New
|
Reduce visibility of classes, fields and methods
|
❄ New
|
Suppress false positive Pascal Expert warnings
|
✓ Fixed
|
Add missing GUID to interfaces
|
✓ Fixed
|
Tested with Indy 10.6.3
|
|
Habari STOMP Client for ActiveMQ
|
❄ New
|
Tested with ActiveMQ 6.1.0
|
|
Habari STOMP Client for Artemis
|
❄ New
|
Tested with Artemis 2.33.0
|
|
Habari STOMP Client for RabbitMQ
|
❄ New
|
Add broker-specific demo for filtered streams
|
❄ New
|
Tested with RabbitMQ 3.13.0
|
Release 2024.02 (8.6) - first offered 04 February 2024
|
|
Core
|
✓ Fixed
|
Fix Pascal Expert warnings
|
✓ Fixed
|
Fix doxygen warnings
|
|
Examples and documentation
|
✓ Fixed
|
Remove empty folders in libraries folder
|
❄ New
|
Update doxygen to 1.10.0
|
❄ New
|
Add more HTML documentation
|
|
Habari STOMP Client for ActiveMQ
|
❄ New
|
Tested with ActiveMQ 5.18.3 and 6.0.1
|
|
Habari STOMP Client for Artemis
|
❄ New
|
Tested with Artemis 2.31.2
|
|
Habari STOMP Client for RabbitMQ
|
❄ New
|
Add broker-specific demo documentation
|
❄ New
|
Tested with RabbitMQ 3.12.12 and 3.13.0-rc.4
|
Release 2023.12 (8.5) - first offered 09 December 2023
|
|
Core
|
❄ New
|
Test with Indy 10.6.2 rev 4565
|
❄ New
|
Test with mORMot 2.1
|
|
Examples and documentation
|
❄ New
|
Add more HTML documentation
|
✓ Fixed
|
Fix doxygen warnings
|
|
Habari STOMP Client for ActiveMQ
|
❄ New
|
Tested with ActiveMQ 5.18.3 and 6.0.0
|
|
Habari STOMP Client for Artemis
|
❄ New
|
Tested with Artemis 2.31.2
|
|
Habari STOMP Client for RabbitMQ
|
❄ New
|
Add broker-specific demo documentation
|
❄ New
|
Tested with RabbitMQ 3.12.10 and 3.13.0-rc.2
|
Release 2023.08 (8.3) - first offered 26 August 2023
|
|
Core
|
❄ New
|
When logging is enabled, log which STOMP receipts are enabled
|
❄ New
|
Use resourcestrings in unit BTStompClient
|
❄ New
|
Remove Writeln(Result) in TestHelper.BrokerVersion
|
❄ New
|
Fix compiler warning in TBTAbstractCommAdapter.ReadStompHeader
|
❄ New
|
Fix potential endless loop in TBTAbstractCommAdapter.ReadFirstHeaderLineSkippingHeartbeats
|
❄ New
|
Omit third parameter of Copy method in newer versions of Object Pascal
|
❄ New
|
Removed wrong comment for TBTCommAdapterBaseIndy.TCPCLient (property is used in TBTCommAdapterIndySSL.Create)
|
❄ New
|
Update doxygen to 1.9.7
|
❄ New
|
Add method IStompFrame#GetContentLength
|
❄ New
|
Test with Indy 10.6.2 rev 4539
|
|
Habari STOMP Client for ActiveMQ
|
❄ New
|
Tested with ActiveMQ 5.18.2
|
|
Habari STOMP Client for Artemis
|
❄ New
|
Delete todo comment in deprecated method (Artemis)
|
❄ New
|
Tested with Artemis 2.30.0
|
|
Habari STOMP Client for RabbitMQ
|
❄ New
|
Tested with RabbitMQ 3.11.20, 3.12.2, 3.13.0-beta.3
|
Release 2023.06 (8.2) - first offered 03 June 2023
|
|
Core
|
❄ New
|
Add new decoder for STOMP header lines (unit BTStompDecoder)
|
❄ New
|
Add new interface IStompDecoder (unit BTStompInterfaces)
|
❄ New
|
Add test for invalid characters in STOMP headers
|
❄ New
|
Test with Indy 10.6.2 rev 4469
|
|
Habari STOMP Client for ActiveMQ
|
❄ New
|
Tested with ActiveMQ 5.18.0
|
|
Habari STOMP Client for Artemis
|
❄ New
|
Tested with Artemis 2.28.0
|
|
Habari STOMP Client for RabbitMQ
|
❄ New
|
Tested with RabbitMQ 3.12.0
|
Release 2023.04 (8.1) - first offered 01 April 2023
|
|
Core
|
❄ New
|
Remove unused units
|
❄ New
|
Remove outdated todo notes
|
❄ New
|
Extract resourcestrings
|
❄ New
|
Add internal methods AssertIsTrailingNull and AssertIsTrailingLf
|
❄ New
|
Use CreateFmt instead of Create(Format(...))
|
❄ New
|
Add doc comments for IHeartbeat interface
|
❄ New
|
Commented out unused interface declarations in unit BTSessionIntf
|
❄ New
|
Reduce timeout for loop in ReadFirstHeaderLineSkippingHeartbeats
|
❄ New
|
Store heart-beat time when the first header line was received
|
❄ New
|
Add internal methods AssertServerSendsHeartBeats and AssertTransportConnected;
|
❄ New
|
Fix GetTickCount in unit BTPlatform
|
❄ New
|
Add method CheckValidTimeOut
|
❄ New
|
Update mORMot2 to 2.0.stable
|
❄ New
|
BTPlatform.GetTickCount returns GetTickCount64 (FPC only)
|
❄ New
|
BTAdapterRegistry uses Windows only when MSWINDOWS is defined, and FPC is not defined
|
❄ New
|
Add length check in ReadMessageBodyWithLength
|
❄ New
|
Update code signing certificates
|
❄ New
|
Suppress hints and warnings for third party units (FPC)
|
❄ New
|
Test with Indy 10.6.2 rev 4441
|
|
Tests
|
❄ New
|
Add test TestHeadersAreNotTrimmed
|
❄ New
|
Add test TestConnectFailsWithMQException
|
❄ New
|
Suppress warnings and hints for Indy, Synapse, and mORMot (Delphi only)
|
|
Habari STOMP Client for ActiveMQ
|
❄ New
|
Tested with ActiveMQ 5.18.0
|
|
Habari STOMP Client for Artemis
|
❄ New
|
Tested with Artemis 2.28.0
|
|
Habari STOMP Client for OpenMQ
|
✓ Fixed
|
Fixed ReadMessageBodyWithLength
|
❄ New
|
Tested with OpenMQ 6.4.0
|
|
Habari STOMP Client for RabbitMQ
|
❄ New
|
Tested with RabbitMQ 3.11.12
|
Release 2023.02 (8.0) - first offered 11 February 2023
|
|
Core
|
❄ New
|
Rename unit BTJMSInterfaces to BTMQInterfaces
|
❄ New
|
Move exceptions to new unit BTGlobal
|
❄ New
|
Remove unused exceptions
|
❄ New
|
Use EMQException instead of SysUtils.Exception / EConnectionFailedException
|
❄ New
|
ReceiveHeartbeat raises an exception if there is something else than a heart-beat waiting on the socket
|
❄ New
|
Add support for Synopse mORMot 1
|
❄ New
|
Add support for Synopse mORMot 2
|
❄ New
|
Use ssl_openssl3 instead of ssl_openssl in the complimentary Synapse communication adapter for TLS/SSL
|
❄ New
|
Remove deprecated unit BTStompReadThreadSynapse
|
❄ New
|
Test with Indy 10.6.2 rev 4421
|
|
Tests
|
❄ New
|
Run tests for all available communication adapters (except for TLS/SSL)
|
❄ New
|
Removed switch HABARI_TEST_SYNAPSE
|
|
Habari STOMP Client for ActiveMQ
|
❄ New
|
Tested with ActiveMQ 5.17.3
|
|
Habari STOMP Client for Artemis
|
❄ New
|
Tested with Artemis 2.28.0
|
|
Habari STOMP Client for OpenMQ
|
❄ New
|
Tested with OpenMQ 6.3.0 and 6.4.0-SNAPSHOT
|
|
Habari STOMP Client for RabbitMQ
|
❄ New
|
Tested with RabbitMQ 3.10.17 and 3.11.8
|
Release 2022.12 (7.3) - first offered 03 December 2022
|
|
Core
|
❄ New
|
Update Ararat Synapse to revision r266
|
❄ New
|
Update JsonDataObjects (support for Delphi 11.0 Alexandria)
|
❄ New
|
Add experimental communication adapter for Synopse mORMot SynCrtSock
|
❄ New
|
Add test for a 4 byte Unicode code point
|
❄ New
|
Tested with Indy 10.6.2 (revision 4159)
|
|
Habari STOMP Client for ActiveMQ
|
❄ New
|
Tested with ActiveMQ 5.16.5 and 5.17.2
|
|
Habari STOMP Client for Artemis
|
❄ New
|
Tested with Artemis 2.26.0 and 2.27.0
|
|
Habari STOMP Client for OpenMQ
|
❄ New
|
Tested with OpenMQ 6.3.0 and 6.4.0-SNAPSHOT
|
|
Habari STOMP Client for RabbitMQ
|
❄ New
|
Add an example project for user generated queue names for topic and exchange destinations (x-queue-name)
|
❄ New
|
Tested with RabbitMQ 3.10.11 and 3.11.3
|
Release 2022.08 (7.2) - first offered 06 August 2022
|
|
Core
|
❄ New
|
Insert new header values before old header values instead ignoring them
(STOMP 1.2 specification: Repeated Header Entries)
|
❄ New
|
Failover protocol support can be enabled with the new conditional symbol HABARI_ENABLE_FAILOVER_PROTOCOL
|
❄ New
|
Use Generics (Delphi and Free Pascal)
|
❄ New
|
Tested with Indy 10.6.2 revision 4081
|
|
Examples and documentation
|
✓ Fixed
|
Fix missing TBTSession API documentation
|
✓ Fixed
|
Improved exception handling in Habari Chat demo application
|
|
Habari STOMP Client for ActiveMQ
|
✓ Fixed
|
Fixed unit test TestForward
|
❄ New
|
Include a TomEE+ (Jakarta EE 9.1) example in demo-broker
|
❄ New
|
Tested with ActiveMQ 5.16.5 and 5.17.1
|
|
Habari STOMP Client for Artemis
|
✓ Fixed
|
Fixed unit test TestForward
|
❄ New
|
Tested with Artemis 2.23.1
|
|
Habari STOMP Client for OpenMQ
|
✓ Fixed
|
Fixed warning about obsolete header subscription-id for ACK frame
|
✓ Fixed
|
Fixed unit test TestForward
|
❄ New
|
Use STOMP 1.2 by default (unit BTBrokerConsts)
|
❄ New
|
Include a Payara 5 (Jakarta EE 9.1) example in demo-broker
|
❄ New
|
Tested with OpenMQ 6.3.0
|
Ⓘ Open
|
With STOMP 1.2, unit tests for temp queues and message ack fail because of an issue in the OpenMQ STOMP bridge
STOMP 1.2 value encoding is not implemented
|
|
Habari STOMP Client for RabbitMQ
|
❄ New
|
Tested with RabbitMQ 3.9.22 and 3.10.7
|
Release 2022.06 (7.1) - first offered 04 June 2022
|
|
Core
|
❄ New
|
Moved units BTThread, BTStompReadThreadIndy, BTStompReadThreadSynapse to optional folder
|
❄ New
|
Tested with Indy 10.6.2 revision 4075
|
|
Examples
|
✓ Fixed
|
Failover protocol support improvements
|
❄ New
|
Connection configuration dialog form improvements
|
❄ New
|
New connection test demo application
|
❄ New
|
Document TLS switch passthrough
|
|
Habari STOMP Client for ActiveMQ
|
❄ New
|
Tested with ActiveMQ 5.16.5 and 5.17.1
|
|
Habari STOMP Client for Artemis
|
❄ New
|
FQQN demo (send to queue given its fully qualified name)
|
❄ New
|
Tested with Artemis 2.22.0
|
|
Habari STOMP Client for OpenMQ
|
❄ New
|
Tested with GlassFish 6.2.3
|
|
Habari STOMP Client for RabbitMQ
|
✓ Fixed
|
Incorrect conversion of missing expiration header
|
❄ New
|
Tested with RabbitMQ 3.9.18, 3.10.0, 3.10.1 and 3.10.2
|
Release 2022.02 (7.0) - first offered 02 February 2022
|
|
Core
|
❄ New
|
Handle non-standard server replies to CONNECT by disconnecting and raising a EConnectionFailed exception
|
❄ New
|
Moved exception class definitions from BTJMSTypes to BTTypes
|
❄ New
|
Removed code for old map/object message transformation API
|
❄ New
|
Removed unit BTJMSTypes
|
❄ New
|
Renamed EJMSException to EMQException
|
❄ New
|
Removed needless synchronization in TBTSession.Send method
|
❄ New
|
Tested with Indy 10.6.2 revision 4066
|
❄ New
|
Tested with Lazarus 2.2.0
|
❄ New
|
Tested with Free Pascal 3.2.2
|
|
Habari STOMP Client for ActiveMQ
|
❄ New
|
Tested with ActiveMQ 5.15.15 and 5.16.3
|
|
Habari STOMP Client for Artemis
|
❄ New
|
Tested with Artemis 2.20.0
|
|
Habari STOMP Client for OpenMQ
|
❄ New
|
Tested with GlassFish 6.2.3
|
|
Habari STOMP Client for RabbitMQ
|
❄ New
|
Tested with RabbitMQ 3.9.12
|
Release 2021.12 (6.12) - first offered 06 December 2021
|
|
Core
|
❄ New
|
Class TBTMQContext implements interface IConnectionInfo
|
❄ New
|
Class TBTMQContext implements interface IHeartbeat
|
❄ New
|
Added HABARI_USE_INTERCEPT_STDOUT switch to enable logging of STOMP frames to the console (Windows only)
|
❄ New
|
Increased minimum required FPC version to 3.2.0
|
❄ New
|
Commented out deprecated transformation API code
|
|
Examples and documentation
|
❄ New
|
Updated 'HabariChat' example application (added heart-beating)
|
❄ New
|
Updated 'Performance Test' example application
|
❄ New
|
Added connection troubleshooting section to Getting Started PDF
|
❄ New
|
Added loadbalancing demo
|
❄ New
|
Removed NativeXml from libraries
|
❄ New
|
Removed management API from library
|
|
Habari STOMP Client for ActiveMQ
|
❄ New
|
Tested with ActiveMQ 5.15.15 and 5.16.3
|
|
Habari STOMP Client for Artemis
|
❄ New
|
Tested with Artemis 2.19.0
|
❄ New
|
Tested XPATH selector support (new in 2.18.0)
|
|
Habari STOMP Client for RabbitMQ
|
✓ Fixed
|
Error in broker log when unsubscribing durable subscriber
|
✓ Fixed
|
Error UNSUBSCRIBE 'id' may not start with /temp-queue/
|
❄ New
|
Added example project for RabbitMQ streams
RabbitMQ Streams Overview
|
❄ New
|
Added example project for non-durable queues
|
❄ New
|
Tested with RabbitMQ 3.8.26 and 3.9.11
|
Release 2021.08 (6.11) - first offered 14 August 2021
|
✓ Fixed
|
FPC 3.0.4 compilation error in TSimpleObjectMessageTransformer.ProducerTransform
|
✓ Fixed
|
Failing string conversion test with FPC 3.2.0
|
❄ New
|
If the STOMP ERROR frame contains a 'receipt-id' header, its value will be included in the EBTStompServerErrorMessage exception message
|
❄ New
|
The client closes the TCP connection after receiving a STOMP ERROR frame
|
❄ New
|
Code cleanup / maintenance in the included 'Performance Test' demo project
|
❄ New
|
Improved and simplified test for client ACK
|
❄ New
|
The complimentary connection builder class now provides the method BuildContext: IMQContext which returns a IMQContext instance - IMQContext is part of the new API which was introduced in release 6.0
|
❄ New
|
Added a deprecation warning for FPC versions before 3.2.0. This is the last release with support for FPC 3.0.4 - future versions will require FPC 3.2.0 or newer
|
❄ New
|
Tested with Lazarus 2.2.0RC1 / FPC 3.2.2
|
❄ New
|
Tested with Indy 10.6.2 revision 3914
|
❄ New
|
Updated Innosetup installer to 6.2.0
|
|
Habari STOMP Client for RabbitMQ
|
❄ New
|
Tested with RabbitMQ 3.8.19 and 3.9.0
|
Release 2021.06 (6.10) - first offered 26 June 2021
|
❄ New
|
Added a check that the map message transformation ID and the object message transformation ID are not equal
|
❄ New
|
Removed unit tests for old (deprecated) message transformation API
|
❄ New
|
Added unit test for new message transformation API, using MQContext API (which has been introduced in version 6.0)
|
❄ New
|
Added a compiler warning which appears when the old (deprecated) message transformation API is enabled
|
❄ New
|
Implement interface IMessageTransformerSupport in class TBTMQContext when the old (deprecated) message transformation API is enabled
|
❄ New
|
Moved message transformation IDs for the transformation API to the broker-specific unit BTBrokerConst
|
❄ New
|
Removed experimental TCP keep-alive feature, instead the STOMP heart-beating may be used
|
❄ New
|
Improved handling of incoming heart-beat (EOL bytes)
|
❄ New
|
Removed a check for incoming heart-beats when no heart-beats are expected, this caused higher timeout times for Receive(Integer) method calls
|
|
Habari STOMP Client for ActiveMQ
|
❄ New
|
Tested with ActiveMQ 5.16.2
|
|
Habari STOMP Client for RabbitMQ
|
❄ New
|
Tested with RabbitMQ 3.8.17
|
Release 2021.04 (6.9) - first offered 21 April 2021
|
❄ New
|
The new API interface IMQContext contains the function CreateMapMessage(): IMapMessage
|
❄ New
|
The new API interface IMQContext contains the function CreateObjectMessage(): IObjectMessage
|
❄ New
|
The new API interface IMQContext contains the function CreateObjectMessage(AObject: TObject): IObjectMessage
|
❄ New
|
BTMessageTransformer moved to optional source directory
|
❄ New
|
Updated to doxygen 1.9.1
|
❄ New
|
Tested with Indy 10.6.2 rev 3798, Delphi 2009, Lazarus 2.0.10 / Free Pascal 3.2.0
|
|
Habari STOMP Client for ActiveMQ
|
❄ New
|
Tested with ActiveMQ 5.16.1
|
❄ New
|
Use new map message transformation API in Advisory Message demo
|
❄ New
|
Use new map message transformation API in Broker Statistics demo
|
✓ Fixed
|
Added documentation and improved output messages in demo applications
|
|
Habari STOMP Client for Artemis
|
❄ New
|
Tested with Artemis 2.17.0
|
|
Habari STOMP Client for RabbitMQ
|
❄ New
|
Tested with RabbitMQ 3.8.14 on Erlang 23.2
|
Release 2021.02 (6.8) - first offered 20 February 2021
|
❄ New
|
Tested with Indy 10.6.2 rev 3662, Delphi 2009, Lazarus 2.0.10 / Free Pascal 3.2.0
|
❄ New
|
New support API for map messages and object messages
|
❄ New
|
Installer applications are now digitally signed
|
❄ New
|
Console output for unit test logging now includes test class name and test method name
|
❄ New
|
Add tests cases for IMessageTransformer, BTConnection.SetMapMessageTransformer and BTConnection.SetObjectMessageTransformer
|
❄ New
|
Moved management API from Superobject to JsonDataObjects
|
❄ New
|
Removed support for OmniXML
|
❄ New
|
Removed support for Superobject
|
✓ Fixed
|
Fixed FPC warnings about uninitialized values
|
✓ Fixed
|
Renamed IMessageTransfomerIdSupport to IMessageTransformerIdSupport
|
|
Habari STOMP Client for ActiveMQ
|
❄ New
|
Tested with ActiveMQ 5.16.0
|
❄ New
|
Added a test for queue browser API. This test replaces the external demo program for queue browsing.
|
|
Habari STOMP Client for Artemis
|
❄ New
|
Tested with Artemis 2.16.0
|
❄ New
|
Added support for queue browser API
|
✓ Fixed
|
Fixed failing unit tests
|
|
Habari STOMP Client for OpenMQ
|
❄ New
|
Tested with Eclipse GlassFish 6.0.0
|
|
Habari STOMP Client for RabbitMQ
|
❄ New
|
Tested with RabbitMQ 3.8.9 and 3.8.11
|
Release 2020.12 (6.7) - first offered 12 December 2020
|
❄ New
|
Tested with Indy 10.6.2 rev 3660, Delphi 2009, Lazarus 2.0.10 / Free Pascal 3.2.0
|
|
Habari STOMP Client for ActiveMQ
|
❄ New
|
Tested with ActiveMQ 5.16.0
|
|
Habari STOMP Client for Artemis
|
❄ New
|
Tested with Artemis 2.16.0
|
Ⓘ Open
|
Several unit tests fail with ActiveMQ Artemis
|
|
Habari STOMP Client for OpenMQ
|
❄ New
|
Tested with Eclipse Open Message Queue (OpenMQ) 5.1.3
|
|
Habari STOMP Client for RabbitMQ
|
❄ New
|
Tested with RabbitMQ 3.8.9
|
Release 2020.06 (6.7) - first offered 20 June 2020
|
❄ New
|
Tested with Indy 10.6.2 rev 3645, Delphi 2009, Lazarus 2.0.4 / Free Pascal 3.0.4
|
|
Habari STOMP Client for ActiveMQ
|
❄ New
|
Tested with ActiveMQ 5.15.13
|
❄ New
|
Support advisory message transformation header 'jms-advisory-json'
|
❄ New
|
Added a basic example for advisory message receive
|
|
Habari STOMP Client for ActiveMQ Artemis
|
❄ New
|
Tested with Artemis 2.11.0, 2.12.0 and 2.13.0
|
❄ New
|
Changed STOMP destination prefixes to /queue and /topic (for details please see the 'Getting Started' PDF)
|
Ⓘ Open
|
Several unit tests fail with ActiveMQ Artemis
|
|
Habari STOMP Client for OpenMQ
|
❄ New
|
Tested with Eclipse Open Message Queue (OpenMQ) 5.1.3
|
|
Habari STOMP Client for RabbitMQ
|
❄ New
|
Tested with RabbitMQ 3.8.4
|
Release 2020.04 (6.5) - first offered 04 April 2020
|
❄ New
|
Tested with Indy 10.6.2 rev 3645, Delphi 2009, Lazarus 2.0.4 / Free Pascal 3.0.4
|
❄ New
|
Includes a newer version of the NativeXml XML parser library (https://github.com/kattunga/NativeXml) which supports newer versions of Delphi
|
❄ New
|
Development now uses the GitHub version of the Indy Sockets TCP/IP library (https://github.com/IndySockets/Indy), please note that Indy distributions are no longer available on https://indy.fulgan.com/
|
✓ Fixed
|
Example code which used the SuperObjects library has been removed
|
✓ Fixed
|
Renamed compiler conditional define TEST_OPTIONAL_UNITS to HABARI_TEST_OPTIONAL_UNITS
|
|
Habari STOMP Client for ActiveMQ
|
❄ New
|
Tested with ActiveMQ 5.15.11 and 5.15.12
|
|
Habari STOMP Client for Artemis
|
❄ New
|
Tested with Artemis 2.9.0, 2.10.0 and 2.10.1
|
Ⓘ Open
|
Several unit tests fail with ActiveMQ Artemis 2.11.0
|
|
Habari STOMP Client for OpenMQ
|
❄ New
|
Tested with Eclipse Open Message Queue (OpenMQ) 5.1.3
|
|
Habari STOMP Client for RabbitMQ
|
❄ New
|
Tested with RabbitMQ 3.8.2 and 3.8.3
|
Release 2019.12 (6.4) - first offered 08 December 2019
|
❄ New
|
Tested with Indy 10.6.2 rev 5515, Delphi 2009, Lazarus 2.0.4 / Free Pascal 3.0.4
|
❄ New
|
Support for custom NACK frame headers
|
✓ Fixed
|
Failover URL may contain heart-beat configuration parameters
|
|
Habari STOMP Client for ActiveMQ
|
❄ New
|
Tested with ActiveMQ 5.15.10
|
|
Habari STOMP Client for Artemis
|
❄ New
|
Tested with Artemis 2.10.1
|
|
Habari STOMP Client for OpenMQ
|
❄ New
|
Tested with Eclipse Open Message Queue (OpenMQ) 5.1.3
|
|
Habari STOMP Client for RabbitMQ
|
❄ New
|
Tested with RabbitMQ 3.8.0
|
Release 2019.08 (6.3) - first offered 23 August 2019
|
❄ New
|
Tested with Indy 10.6.2 rev 5515, Delphi 2009, Lazarus 2.0.2 / Free Pascal 3.0.4
|
❄ New
|
Include JsonDataObjects for object serialization example code (map transformation)
|
❄ New
|
Lower timeout value in HabariChat demo
|
❄ New
|
Documentation updates (URL parameters are case sensitive)
|
❄ New
|
Exact match check for URI parameters
|
✓ Fixed
|
compilation error in unittests if TEST_OPTIONAL_UNITS is defined
|
✓ Fixed
|
compilation error in unittests if HABARI_DEPRECATED_MESSAGELISTENER is defined
|
✓ Fixed
|
compilation error in ObjectExchangeTests (missing BrokerFeatures unit)
|
✓ Fixed
|
IPrimitiveMap.ContainsKey must return True for properties even if value is empty (string)
|
✓ Fixed
|
AV in HabariChat demo caused by unassigned message
|
|
Habari STOMP Client for ActiveMQ
|
❄ New
|
Test with ActiveMQ 5.15.9
|
|
Habari STOMP Client for Artemis
|
❄ New
|
Test with Artemis 2.9.0
|
|
Habari STOMP Client for OpenMQ
|
❄ New
|
Test with Eclipse Open Message Queue (OpenMQ) 5.1.3
|
|
Habari STOMP Client for RabbitMQ
|
❄ New
|
Test with RabbitMQ 3.7.17
|
Release 2019.06 (6.2) - first offered 05 June 2019
|
|
Habari STOMP Client for ActiveMQ
|
❄ New
|
Test for message group header JMSXGroupID
|
❄ New
|
Test for exclusive consumers (activemq.exclusive header on SUBSCRIBE)
|
❄ New
|
Test with JDK 12.0.1 and OpenJDK 11.0.2 LTS
|
❄ New
|
Test with ActiveMQ 5.15.9
|
|
Habari STOMP Client for Artemis
|
❄ New
|
Test for message group header JMSXGroupID
|
❄ New
|
Test noLocal flag
|
❄ New
|
Documentation of anycastPrefix broker.xml entry for queue auto-creation, required for unit tests
|
❄ New
|
Test with JDK 12.0.1 and OpenJDK 11.0.2 LTS
|
❄ New
|
Test with Artemis 2.8.1
|
✓ Fixed
|
Unit test fixes
|
|
Habari STOMP Client for OpenMQ
|
❄ New
|
Test with Eclipse Open Message Queue (OpenMQ) 5.1.3
|
|
Habari STOMP Client for RabbitMQ
|
❄ New
|
Test with Erlang 22.0
|
❄ New
|
Test with RabbitMQ 3.7.15
|
❄ New
|
Test with RabbitMQ 3.8.0 beta 4
|
Release 2018.10 (6.0) - first offered 06 October 2018
|
❄ New
|
New simple API, based on MQContext, MQProducer and MQConsumer (old API still may be used)
|
❄ New
|
Asynchronous message receive is no longer supported, the IMessageListener interface has been removed. This reduces the client library size as no reader thread code is needed anymore.
|
❄ New
|
Removed old low-level logging code (HABARI_RAW_TRACE), instead, new Indy-based communication log (HABARI_USE_INTERCEPT) can be used
|
❄ New
|
TBTMessageConsumer performs a check for matching consumer ID and throws an exception if an unexpected id is received
|
❄ New
|
New connection URL parameter “message.subscription_check=false” allows to subscribe from multiple destinations with a single consumer
|
❄ New
|
Intercept (HABARI_USE_INTERCEPT) log file name now includes a random value to avoid file in use errors
|
❄ New
|
Tested with Indy 10.6.2 rev 5475
|
Release 2018.08 (5.5) - first offered 18 August 2018
|
❄ New
|
Message interceptor API for low-level custom logging
|
❄ New
|
Support transformation header for temporary queues
|
❄ New
|
Support compilation without Indy sources in project search path
|
❄ New
|
Raise exception if a message already has a receipt id header
|
❄ New
|
Make receipt ids longer (include time stamp)
|
❄ New
|
Tested with Indy 10.6.2 rev 5473
|
❄ New
|
Use {$IFNDEF FPC} instead {$IFDEF UNICODE}
|
✓ Fixed
|
String conversion warnings in StubServerTests unit
|
✓ Fixed
|
BTThread conditions for deprecated TThread suspend / resume (D2010 and higher)
|
✓ Fixed
|
Undefined escape sequences such as \t (octet 92 and 116) MUST be treated as a fatal protocol error
|
✓ Fixed
|
Avoid exception if serialized XML or JSON object is an empty string
|
✓ Fixed
|
Hide warnings in NativeXML, NativeXMLObjectStorage units
|
|
Habari STOMP Client for ActiveMQ
|
❄ New
|
Removed warning 'FPC 3.0.0 contains a bug which causes wrong message expiration values'
|
Ⓘ Open
|
ActiveMQ does not encode/decode carriage returns in headers to/from \r (as required by the STOMP 1.2 specification)
STOMP 1.2 specification: Value encoding
|
|
Habari STOMP Client for OpenMQ
|
❄ New
|
Removed warning 'FPC 3.0.0 contains a bug which causes wrong message expiration values'
|
Release 2018.04 (5.4) - first offered 20 April 2018
|
|
Habari STOMP Client for ActiveMQ
|
❄ New
|
Tested with Apache ActiveMQ 5.15.3
|
|
Habari STOMP Client for Artemis
|
❄ New
|
Tested with Apache ActiveMQ Artemis 2.4.0 and 1.5.6
|
|
Habari STOMP Client for OpenMQ
|
❄ New
|
Tested with Payara 5
|
❄ New
|
Tested with Open MQ 5.1.1 (August 2017)
|
|
Habari STOMP Client for RabbitMQ
|
❄ New
|
Tested with RabbitMQ 3.7.4
|
|
Habari STOMP Client for all versions
|
❄ New
|
Tested with Indy 10.6.2 rev 5446
|
❄ New
|
Enforce Indy 10: if the Indy version is not 10 compilation will fail with an error
|
❄ New
|
Unit tests: new methods THabariTestCase.StartStopwatch / AssertStopWatch
|
❄ New
|
Unit tests: new test case ReceiveNoWaitDoesNotBlock
|
✓ Fixed
|
Unit tests: fixed FPC warnings
|
✓ Fixed
|
Unit tests: fixed test TestTransactionRollbackForACK for brokers which do not support transacted receive
|
✓ Fixed
|
Unit tests: TLocalStompServer in StubServerTests closes the connection after sending the ERROR frame (as per STOMP specification)
|
Release 2018.02 (5.3) - first offered 18 February 2018
|
❄ New
|
The library now supports connection URL parameters for receipt request configuration – receipt requests can be configured for the SUBSCRIBE, UNSUBSCRIBE, SEND, ACK, NACK, BEGIN, COMMIT, ABORT and DISCONNECT frame, the client raises an exception if it the receipt does not arrive in time. Note: this is work in progress.
|
❄ New
|
The library detects invalid connection URL parameter names and raises an exception if it contains unknown parameters. The detection can be switched off with a conditional symbol (HABARI_ALLOW_UNKNOWN_URL_PARAMS). Note that parameters are case sensitve.
|
❄ New
|
The unit test suite includes a stub STOMP server for heart-beat tests, the server is derived from the Indy TCP server implementation TIdCustomTCPServer and runs embedded in the unit test executable
|
❄ New
|
Method StompProtocolVersion of the IConnectionInfo interface returns the protocol version of the active connection
|
❄ New
|
Use the ConnectTimeout value also as read time-out for the CONNECTED frame
|
❄ New
|
Removed unused properties in TBTMessageConsumer
|
❄ New
|
Tested with Free Pascal 3.0.4 / Lazarus 1.8
|
❄ New
|
Added test cases for TBTConnectionFactory.ConnectTimeOut (Indy only)
|
❄ New
|
Documentation updates: (deprecation list, limitations with Free Pascal)
|
❄ New
|
Tested with Apache ActiveMQ 5.15.1, 5.15.2, 5.15.3 and Indy 10.6.2 rev 5446 (ActiveMQ)
|
❄ New
|
Tested with Apache ActiveMQ Artemis 2.3.0, 2.4.0 and Indy 10.6.2 rev 5446 (Artemis)
|
❄ New
|
Tested with Open MQ 5.1.1 (August 2017) and Indy 10.6.2 rev 5446 (OpenMQ)
|
❄ New
|
Tested with RabbitMQ 3.6.15, 3.7.2, 3.7.3 and Indy 10.6.2 rev 5446 (RabbitMQ)
|
✓ Fixed
|
Fixed logging output of connect time out in TBTStompClient.Connect
|
✓ Fixed
|
Fixed unit tests for ActiveMQ Artemis tests
|
✓ Fixed
|
Fixed HABARI_LOGGING_RAW_TRACE
|
✓ Fixed
|
Fixed minor bug in ConnectTimeout
|
✓ Fixed
|
Fixed reply-to parameter handling for OpenMQ
|
✓ Fixed
|
Fixed empty subscription header in reply-to messages
|
Release 2017.10 (5.2) - first offered 20 October 2017
|
❄ New
|
Tested with Apache ActiveMQ 5.15.0, 5.15.1 and Indy 10.6.2 rev 5436 (ActiveMQ)
|
❄ New
|
Tested with Apache ActiveMQ Artemis 2.1.0, 2.2.0, 2.3.0 and Indy 10.6.2 rev 5436 (Artemis)
|
❄ New
|
Tested with Open MQ 5.1.1 (August 2017) and Indy 10.6.2 rev 5436 (OpenMQ)
|
❄ New
|
Tested with RabbitMQ 3.6.11, 3.6.12, 3.7.0-rc.1 and Indy 10.6.2 (RabbitMQ)
|
❄ New
|
Added DUnit test extensions which use the broker-specific JMX-based management API (ActiveMQ)
|
❄ New
|
Added DUnit test extensions which use the broker-specific JMX-based management API (Artemis)
|
❄ New
|
Added DUnit test extensions which use the broker-specific REST-based management API (RabbitMQ)
|
❄ New
|
FPCUnit tests using Lazarus 1.8 RC4/FPC 3.0.4 RC1
|
❄ New
|
Added support for STOMP connection URLs with user:password@host syntax to pass user credentials
|
❄ New
|
Added BTQueueRequestor in example code
|
❄ New
|
Added logging with error level if connect fails
|
❄ New
|
Added constants for failover options
|
❄ New
|
Added constants for Ack modes
|
❄ New
|
Added 'not recommended' hint where IMessageListener is used (HabariChat)
|
❄ New
|
Added comment in SSL adapter class to show how TLS 1.2 can be configured exclusively
|
❄ New
|
Replaced unneccessary PMString type with string type
|
❄ New
|
Replaced OnAfterTransportConnected event with AfterSocketConnected
|
❄ New
|
Removed FPC 2 workaround for TFormatSettings which is available in FPC 3
|
✓ Fixed
|
Fixed test failure in TestMessageForOtherSubInWaitForReceiptFrame (related to HABARI_RAW_TRACE)
|
✓ Fixed
|
Fixed a compiler warning in TBTSession.Send
|
✓ Fixed
|
Fixed compiler warning - UnsubscribeDurable is now virtual
|
✓ Fixed
|
Fixed several compiler warnings in TBTCommAdapter
|
Ⓘ Open
|
Artemis 2.3.0 error messages
|
Release 2017.06 (5.1) - first offered 30 June 2017
|
❄ New
|
Tested with Apache ActiveMQ 5.14.5 and Indy 10.6.2 rev 5426 (ActiveMQ)
|
❄ New
|
Tested with Apache ActiveMQ Artemis 2.1.0 and Indy 10.6.2 rev 5426 (Artemis)
|
❄ New
|
Tested with Open MQ 5.1.1 and Indy 10.6.2 rev 5426 (OpenMQ)
|
❄ New
|
Tested with RabbitMQ 3.6.10 and Indy 10.6.2 5426 (RabbitMQ)
|
❄ New
|
Updated documentation on asynchronous delivery, IMessageListener will become deprecated
|
❄ New
|
Performance demo optionally runs multiple times to calculate median result (shift+click start button)
|
❄ New
|
Chat demo updated to work without Consumer.MessageListener
|
❄ New
|
ConsumerTool updated to work without Consumer.MessageListener
|
❄ New
|
Performance demo footer panel shows the version string of currently connected message broker
|
❄ New
|
Connection configuration demo form shows the version string of currently connected message broker
|
❄ New
|
Connections use STOMP 1.2 by default (ActiveMQ, Artemis, RabbitMQ)
|
❄ New
|
DUnit test GUI shows the version string of currently connected message broker
|
❄ New
|
FPCUnit test GUI shows the version string of currently connected message broker
|
❄ New
|
Removed unused BTQueueBrowser unit (Artemis, OpenMQ, RabbitMQ)
|
❄ New
|
Removed unused BTQueueRequestor unit
|
❄ New
|
Refactored and removed BTResourceStrings unit
|
❄ New
|
Refactored and removed ActiveMQTypes unit
|
❄ New
|
Constant declarations (SH_DURABLE_SUBSCRIBER_NAME, SH_NOLOCAL) moved to unit BTBrokerConsts
|
✓ Fixed
|
Fixed unit test TestMessageForOtherSubInWaitForReceiptFrame
|
✓ Fixed
|
Fixed unit test TestUnicodeWithLanguageNames error ACK: [BSS4012]: Invalid value id for header (OpenMQ)
|
✓ Fixed
|
Fixed unit test TestReceiveNoWaitMany error ACK: [BSS4012]: Invalid value id for header (OpenMQ)
|
✓ Fixed
|
Fixed warning 'Private symbol 'GetServerAndConnectionInfo' declared but never used' (RabbitMQ)
|
✓ Fixed
|
Fixed missing doxygen documentation for IConnectionInfo and other interfaces
|
Release 2017.04 (5.0) - first offered 29 April 2017
|
❄ New
|
Tested with current broker versions ActiveMQ 5.14.5, Artemis 2.0.0 and RabbitMQ 3.6.9
|
❄ New
|
Tested with Indy 10.6.2 v 5412
|
❄ New
|
Tested with Free Pascal 3.0.2
|
❄ New
|
Tested with IPv6
|
❄ New
|
Added IConnectionInfo interface which gives access to broker version string and STOMP version of the current connection
|
❄ New
|
Added logging of broker version string and STOMP protocol version number
|
❄ New
|
Added logging of detected message type of incoming STOMP message (text, binary, object, map)
|
❄ New
|
Added a check for unsupported character sets in the content-type header of incoming text messages
|
❄ New
|
Added a warning at compile time for Free Pascal 3.0.0, since a bug in LocalTimeToUniversal function may cause wrong message expiration time (bug has been fixed in Free Pascal 3.0.2)
|
❄ New
|
Added a DUnit/FPCUnit base test class which provides a parameter-compatible ExpectException method for FPCUnit
|
❄ New
|
Added a conditional symbol (HABARI_TEST_SYNAPSE) to enables Synapse communication adapter in DUnit/FPCUnit tests, default is Indy
|
❄ New
|
Changed DUnit/FPCUnit tests use STOMP 1.2 by default
|
❄ New
|
Reorganzied DUnit/FPCUnit tests, added documentation section on unit tests
|
✓ Fixed
|
Fixed doxygen warnings
|
✓ Fixed
|
Removed support for Free Pascal 2.6.* and non-Unicode Delphi
|
✓ Fixed
|
Removed HABARI_USE_WIDESTRING conditional symbol
|
✓ Fixed
|
Fixed unit test for NoLocal flag handling (Apache ActiveMQ Artemis)
|
✓ Fixed
|
Applied workaround for RabbitMQ 3.5.4 or newer (which is now the minimum supported version) (RabbitMQ)
|
Release 2017.02 (4.5) - first offered 02 February 2017
|
❄ New
|
Tested with current broker versions ActiveMQ 5.14.3, Artemis 1.5.1 and RabbitMQ 3.6.6
|
❄ New
|
Added SetBoolean / GetBoolean methods to the MapMessage interface
|
❄ New
|
Added JMS MapMessage and ObjectMesssage demo (ActiveMQ)
|
❄ New
|
Added example for auto-delete and priority in Getting Started PDF (RabbitMQ)
|
❄ New
|
Added an exception when client ack is used on consumer of a temporary queue (RabbitMQ)
|
❄ New
|
Added BTConnectionConst unit for connection URL parameter constants
|
❄ New
|
Added logging of inbound STOMP message body whith HABARI_RAW_TRACE_BODY
|
❄ New
|
Added removal of destination URL parameters in a SEND frame
|
✓ Fixed
|
Replaced TBTJMSConnection usage with TBTConnection
|
✓ Fixed
|
Fixed a ompilation error with OmniXML by Kluug.net
|
✓ Fixed
|
Removed lkJSON from distribution
|
✓ Fixed
|
Removed direct Log4D dependencies (for logging, the library uses SLF4P exclusively)
|
✓ Fixed
|
Removed Log4D from distribution
|
✓ Fixed
|
Removed deprecated TBTJMSConnectionFactory
|
✓ Fixed
|
Removed objectpool from distribution
|
✓ Fixed
|
Removed HABARI_USE_SLF4P_LOGGING conditional symbol
|
Ⓘ Open
|
A Free Pascal 3.0.0 bug in LocalTimeToUniversal causes wrong message expiration timestamp values
(bug report)
|
Ⓘ Open
|
A workaround is still required for the Synapse communication adapter when used with RabbitMQ 3.5.4 and newer. To enable it, define the HABARI_RABBITMQ_354_UP conditional symbol. Note: programs which define this symbol are not compatible with older versions of RabbitMQ.
|
Release 2016.10 (4.4) - first offered 01 October 2016
|
❄ New
|
Tested with current broker versions ActiveMQ 5.14.0 and RabbitMQ 3.6.5, and with Internet Direct (Indy) version 10.6.2 5367
|
❄ New
|
Added exchange destination demo (RabbitMQ)
|
✓ Fixed
|
Unit tests create a distinct queue per unit test to reduce potential side effects
|
✓ Fixed
|
Fixed usage of with keyword
|
✓ Fixed
|
Updated SLF4P logging facade library and added a deprecation warning for direct usage of Log4D (without SLF4P)
|
✓ Fixed
|
Documentation fixes for scheduler demo project (ActiveMQ)
|
✓ Fixed
|
Queue browser demo project (ActiveMQ)
|
✓ Fixed
|
With Artemis 1.4.0, distinction between text and binary messages now works as expected again (Artemis)
|
✓ Fixed
|
Fixed subscribing to /exchange destinations (RabbitMQ)
|
✓ Fixed
|
Specifying NoLocal or non-empty message selectors will cause exceptions (RabbitMQ)
|
Ⓘ Open
|
A Free Pascal 3.0.0 bug in LocalTimeToUniversal causes wrong message expiration timestamp values
(bug report)
|
Ⓘ Open
|
A workaround is still required for the Synapse communication adapter when used with RabbitMQ 3.5.4 and newer. To enable it, define the HABARI_RABBITMQ_354_UP conditional symbol. Note: programs which define this symbol are not compatible with older versions of RabbitMQ.
|
Release 2016.04 (4.3) - first offered 16 April 2016
|
❄ New
|
Added support for the SLF4P logging facade which provides bindings to the LazLogger, Log4D, and other logging implementations
|
❄ New
|
Tested with current broker versions ActiveMQ 5.13.2 and RabbitMQ 3.6.1, and with Internet Direct (Indy) version 10.6.2 5353
|
✓ Fixed
|
Enforce check of matching clientId and subscription name for STOMP 1.0 (ActiveMQ)
(AMQ-3917)
|
✓ Fixed
|
Fixed unit test TestReceiveMessagesFromOtherSubscription (Artemis)
|
✓ Fixed
|
The 'Message Priority' demo project sets the 'x-max-priority' header on SEND and SUBSCRIBE frames and uses separate connections for producer and consumer (RabbitMQ)
|
✓ Fixed
|
Changed default installation folder to common documents
|
✓ Fixed
|
Documentation fixes
|
Ⓘ Open
|
A Free Pascal 3.0.0 bug in LocalTimeToUniversal causes wrong message expiration timestamp values
(bug report)
|
Ⓘ Open
|
A workaround is still required for the Synapse communication adapter when used with RabbitMQ 3.5.4 and newer. To enable it, define the HABARI_RABBITMQ_354_UP conditional symbol. Note: programs which define this symbol are not compatible with older versions of RabbitMQ.
|
Release 2015.12 (4.2) - first offered 16 December 2015
|
❄ New
|
Example console program project for sending and receiving of a Unicode text message in demo/unicode
|
❄ New
|
Example console program project for sending a message within a transaction in demo/transactions
|
❄ New
|
Internet Direct (Indy) communication adapter consumes EOLs between STOMP frames according to the STOMP 1.2 specification
|
❄ New
|
Support for subscribing to composite destinations with ActiveMQ 5.12.2/5.13.0 (broker-specific feature supported only by Habari Client for ActiveMQ)
(AMQ-6030)
|
❄ New
|
Tested with Internet Direct (Indy) version 10.6.2 5317
|
❄ New
|
Tested broker specific STOMP header 'x-max-priority' with RabbitMQ 3.5.6
|
✓ Fixed
|
Free Pascal 3.0.0 warnings about unsafe string casts
|
✓ Fixed
|
JMSDestination property value is nil in incoming message
|
✓ Fixed
|
JMSExpiration property value is zero after send completed
|
✓ Fixed
|
Duplicate declaration of exception type EIllegalStateException
|
✓ Fixed
|
IMessageConsumer#Dispatch method is not required in interface
|
Ⓘ Open
|
A Free Pascal 3.0.0 bug in LocalTimeToUniversal causes wrong message expiration timestamp values
(bug report)
|
Ⓘ Open
|
A workaround is still required for the Synapse communication adapter when used with RabbitMQ 3.5.4 and newer. To enable it, define the HABARI_RABBITMQ_354_UP conditional symbol. Note: programs which define this symbol are not compatible with older versions of RabbitMQ.
|
Release 2015.10 (4.1) - first offered 24 October 2015
|
❄ New
|
The new conditional symbol HABARI_SSL_SUPPORT enables SSL support code. (Important note: SSL is an optional feature, no support is included in the basic support plan)
|
❄ New
|
The method TBTStompClient.AddConnectOptions no longer adds a ‘default’ HOST header
|
❄ New
|
All messages which have a content type starting with ‘text/’ are treated as text messages (RabbitMQ)
|
❄ New
|
Deprecated functions in TJMSConnectionFactory have been replaced by constants in BTBrokerConsts
|
✓ Fixed
|
A bug has been fixed which caused the client to not wait for a receipt frame
|
✓ Fixed
|
Deleting durable subscriptions from the client now works as expected with RabbitMQ
|
✓ Fixed
|
A workaround is included for a breaking change in version 3.5.4 of RabbitMQ and newer
|
Release 2015.06 (4.0) - first offered 24 June 2015
|
❄ New
|
The setter method TBTObjectMessage.SetObject will raise an EIllegalArgumentException if the passed object reference is nil
|
❄ New
|
TBTAbstractConnectionFactory.CreateMQConnection now throws EConfigurationException instead of Exception when the connection URL specifies an unsupported protocol
|
❄ New
|
The unit tests include a test which produces a message with 32 MB size. (TBasicTests.TestLargeBytesMessage)
|
❄ New
|
(RabbitMQ) The library supports both JMS (0…9) and AMQP (0…255) priority ranges
|
❄ New
|
The library versions for ActiveMQ, Apollo, OpenMQ and RabbitMQ support temporary queues. Temporary destinations are typically used to receive response messages in a request/response messaging exchange. This release includes a unit test which demonstrates the work flow in a RPC style communication, where a temporary queue is used by the client to receive the server replies. Also, a problem with addressing temporary queues of ActiveMQ message brokers surfaced in this test, and a workaround is included in the test. (TStompJMSBindingTests.TestTemporaryQueue)
|
❄ New
|
The unit tests now include a test which shows XPath message selector usage. (TStompJMSBindingTests.TestXPATHSelector)
|
✓ Fixed
|
This release fixed a potential memory leak which occured in the error handling of method TBTAbstractConnectionFactory.CreateMQConnection when unsupported protocols are specified in the broker connection URL
|
✓ Fixed
|
(RabbitMQ) A bug in the creation of message consumers for temporary destination has been fixed. (The bug also caused the RPC demo to fail)
|
✓ Fixed
|
The unit tests for ActiveMQ dead letter queue usage has been fixed. Tests showed that messages have to be sent with the persistent flag to appear in the ActiveMQ.DLQ destination. (TStomp12TestCase.TestClientNackOneMessage)
|
Release 2015.02 (3.9) - first offered 21 February 2015
|
❄ New
|
As a preparation for further code streamlining between library versions, a new API compatible factory class TBTConnectionFactory is included in this version which will replace TBTJMSConnectionFactory in the next major release
|
❄ New
|
If Log4D logging is enabled, the passcode header value will be not be logged but replaced with *** in the log output
|
❄ New
|
Several units which are not covered by basic support have been moved to the source/optional directory (BTMessageTransformer*, BTStreamhelper, SSL support units)
|
❄ New
|
Refactorings reduce unit dependencies and hard type casts in several places
|
❄ New
|
Removed unused procedure TBTStompClient.Connect(const AURI: IURI)
|
❄ New
|
The unit tests now include a test which shows XPath message selector usage. (TStompJMSBindingTests.TestXPATHSelector)
|
✓ Fixed
|
The throughput test application uses the subscribe.receipt=true connection parameter to ensure that the broker is ready before the producer starts sending messages
|
Release 2014.09 (3.8) - first offered 10 September 2014
|
❄ New
|
changed the Receive methods to update the heart-beat timestamp when heart-beats arrive, even if no message has been received. With this change, it is no longer required to call the CheckHeartbeat method periodically if no message arrived
|
❄ New
|
ITextMessage.Text is now of type string instead of WideString
|
❄ New
|
persistent messages will be sent with a receipt request
|
❄ New
|
Eliminate duplicate code in map message transformers
|
❄ New
|
Added a check that the STOMP frame ends with a NUL byte and raise a EBTStompError if a non-NUL byte is found, to indicate a STOMP protocol violation (and a potential loss of data)
|
❄ New
|
Added a transformer class for map message exchange based on the Superobject JSON library
|
❄ New
|
Added a transformer class for map message exchange based on the default XML parser library in Delphi (IXMLDocument)
|
❄ New
|
Added class TBTConnectionBuilder which can be used to construct a connection by chaining configuration methods (experimental/unsupported code)
|
❄ New
|
Added Free Pascal version of ConsumerTool application
|
❄ New
|
Added unit tests for durable subscriptions
|
❄ New
|
Added unit tests and a mock server to verify that the library detects a connection loss
|
❄ New
|
Added Free Pascal version of throughput test application
|
✓ Fixed
|
Unhandled Exceptions in WaitForReceiptFrame are re-raised to notify client code about the exception
|
✓ Fixed
|
Fixed compiler error undeclared identifier ‘ShortDateFormat’ when using Log4D with newer Delphi versions
|
✓ Fixed
|
Fixed Free Pascal compiler warning about deprecated ShortDateFormat in Log4D
|
✓ Fixed
|
Fixed Free Pascal compiler error ‘unknown identifier: TClassList’ and run time error SIGSGEV (Linux)
|
✓ Fixed
|
Fixed CurrentUTC method by using LocalTimeToUniversal (Free Pascal)
|