Habarisoft released new versions of Habari Client libraries for Delphi and Free Pascal application integration with free open source message brokers.
Tested with current message broker versions
- Apache ActiveMQ 5.11.1
- Apollo 1.7.1
- HornetQ 2.4.5.Final
- Open MQ 5.1.1 b02
- RabbitMQ 3.5.3
Improvements in this release
♦ Temporary destination support: unit test and ActiveMQ workaround
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)
♦ XPath selector test for ActiveMQ
The unit tests now include a test which shows XPath message selector usage. (TStompJMSBindingTests.TestXPATHSelector)
♦ Test for NACKed messages in ActiveMQ.DLQ
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)
♦ Large message test
The unit tests include a test which produces a message with 32 MB size. (TBasicTests.TestLargeBytesMessage)
♦ RabbitMQ message priority support
Habari Client for RabbitMQ has been prepared to support both JMS (0…9) and AMQP (0…255) priority ranges. Message priorities are supported by RabbitMQ 3.5, the RabbitMQ STOMP plugin however does not yet support message priorities (issue #13).
♦ Object Message argument check
The setter method TBTObjectMessage.SetObject will raise an EIllegalArgumentException if the passed object reference is nil.
♦ EConfigurationException raised for unsupported protocols
TBTAbstractConnectionFactory.CreateMQConnection now throws EConfigurationException instead of Exception when the connection URL specifies an unsupported protocol.
♦ Indy compatibility
The client library has been tested with Indy 10.6 revision 5277.
♦ Potential memory leaks
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.
♦ RabbitMQ temporary queues and RPC demo bug
A bug in the creation of message consumers for temporary destination has been fixed. (The bug also caused the RPC demo to fail).
♦ Deprecated classes and methods
The Getting Started document now includes a new section which lists deprecated classes and methods.
Previous version release notes: Habari Client libraries release 2015.02