Habari Client libraries release 2017.04

Habarisoft released new versions of Habari Client libraries for Delphi and Free Pascal application integration with popular free open source message brokers. This release has been tested with Apache ActiveMQ 5.14.5, Apache ActiveMQ Artemis 2.0, OpenMQ 5.1.1 and RabbitMQ 3.6.9. It contains enhancements and better test case organization of the included DUnit / FPCUnit test projects, which now prefer Stomp 1.2 over Stomp 1.0. It also introduces the IConnectionInfo interface, which returns broker version string and Stomp version of the current connection. Starting with this release, the library requires Delphi 2009 or Free Pascal 3.0.2 (or newer), it is not compatible with non-Unicode versions of Delphi. The internal version numbers of all client libraries in the 2017.04 release is 5.0.0.

Full release notes are available at https://www.habarisoft.com/releases/2017.04/

habari_logo_2016Habari Client libraries enable Object Pascal applications to take advantage of message broker / message queue technology – which is distributed, loosely coupled, reliable and asynchronous – to build integrated systems, using peer-to-peer and publish-subscribe communication models.

Advertisement

Habari Client libraries release 2015.12

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.13.0
  • Apollo 1.7.1
  • Artemis 1.0.0
  • HornetQ 2.4.5.Final
  • Open MQ 5.1.1 b02
  • RabbitMQ 3.5.7

Release notes

Full release notes are available at https://www.habarisoft.com/releases/2015.12/

habari_logo_2016

 

Habari Client libraries release 2015.10

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.12
  • Apollo 1.7.1
  • HornetQ 2.4.5.Final
  • Open MQ 5.1.1 b02
  • RabbitMQ 3.5.6

Improvements in this release

♦ RabbitMQ workaround

A workaround is included for a breaking change in version 3.5.4 of RabbitMQ (and newer).

♦ Support for text content types in RabbitMQ

All messages which have a content type starting with ‘text/’ are treated as text messages.

♦ Deletion of durable subscriptions in RabbitMQ

Deleting durable subscriptions from the client now works as expected.

♦ SSL support activation

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).

♦ Removed deprecated functions

Deprecated functions in TJMSConnectionFactory have been replaced by constants in BTBrokerConsts.

♦ HOST header in CONNECT frame

The method TBTStompClient.AddConnectOptions no longer adds a ‘default’ HOST header.

♦ Receipt frame check

A bug has been fixed which caused the client to not wait for a receipt frame.

♦ Frequently asked questions

The Getting Started document now includes a new section with frequently asked questions

Online resources

Previous version release notes: Habari Client libraries release 2015.06

Habari Client Libraries

Habari Client libraries release 2015.06

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.

Fixes

♦ 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).

Documentation updates

Deprecated classes and methods

The Getting Started document now includes a new section which lists deprecated classes and methods.

Online resources

Previous version release notes: Habari Client libraries release 2015.02

unittests.2015.02

Habari Client Libraries

Habari Client libraries release 2015.02

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.0
  • Apollo 1.7
  • HornetQ 2.4.0.Final
  • Open MQ 5.1 b09
  • RabbitMQ 3.4.3

Fixes

  • The throughput test application uses the subscribe.receipt=true connection parameter to ensure that the broker is ready before the producer starts sending messages

Improvements

  • Connection factory – 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
  • Password logging – If Log4D logging is enabled, the passcode header value will be not be logged but replaced with *** in the log output
  • Optional units – Several units which are not covered by basic support have been moved to the source/optional directory (BTMessageTransformer*, BTStreamhelper, SSL support units)
  • Refactorings – Refactorings reduce unit dependencies and hard type casts in several places
  • Cleanup – Removed unused procedure TBTStompClient.Connect(const AURI: IURI)
  • Documentation – More documentation improvements and streamlining between library versions

Previous version release notes: Habari Client libraries release 2014.09

unittests.2015.02

 

Habari Client Libraries

 

Habari Client libraries release 2014.09

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.10.0
  • Apollo 1.7
  • HornetQ 2.4.0.Final
  • Open MQ 5.1 b09
  • RabbitMQ 3.3.5

Continue reading “Habari Client libraries release 2014.09”