Habari Client libraries release 2014.03

Habarisoft announces new release

Habari Client libraries are Delphi and Free Pascal libraries for application integration with five popular open source message brokers. Updated versions of these libraries are now available. New features and improvements in this release include improved support for transacted sessions, improved support of STOMP specification for message header properties, more unit tests and documentation, and bug fixes.

Tested with current message broker versions

The new release has been tested with the latest message broker versions: Apache ActiveMQ 5.9.0, Apollo 1.6, HornetQ 2.4.0.Final, Open Message Queue 5.0.1 and RabbitMQ 3.2.4

Transaction support for message receipt acknowledgement

Transactional sending of messages was already supported in all versions of Habari Client libraries. Some library versions1 now also support commit and roll back for received messages.

To enable transacted message receive, use the CreateSession method with the transactional flag set to true and client message acknowledgment enabled (amClientAcknowledge instead of amTransactional) as shown below:

  // receive in a transacted session
  Session := Connection.CreateSession(True, amClientAcknowledge);
  Queue := Session.CreateQueue(GetQueueName);
  Consumer := Session.CreateConsumer(Queue);
  Msg := Consumer.Receive(1000);

  // process the message

  // acknowledge the message


  // in case of critical errors, roll back acknowledgements

After a transaction rollback or a connection close without commit, messages which have been acknowledged after the transaction start will return to unacknowledged state.

Now with 100+ DUnit and FPCUnit tests

Tests related to unsupported features are disabled / ignored automatically.


Bug fixes and improvements

  • Authentication with empty credentials (login / passcode) values fails
  • Support for encoded carriage return (“r”) in STOMP 1.2 headers
  • Support for equal signs and colons in STOMP headers
  • Support for empty STOMP header values
  • Compiler errors with Free Pascal 2.7.1
  • Unit tests for wild-card destinations
  • Unit tests for queue browser

1Tested with Apache ActiveMQ 5.9.0, Apollo 1.6 and RabbitMQ 3.2.3