Habari Client libraries release 2017.06

Habarisoft released new versions of its Object Pascal STOMP client libraries for Delphi and FPC integration with popular free open source message brokers. The 2017.06 release includes

  • Habari Client for ActiveMQ 5.1.0 – tested with Apache ActiveMQ 5.14.5,
  • Habari Client for Artemis 5.1.0 – tested with Apache ActiveMQ Artemis 2.1.0
  • Habari Client for OpenMQ 5.1.0 – tested with OpenMQ 5.1.1 and Payara Server 4.1.1
  • Habari Client for RabbitMQ 5.1.0 – tested with RabbitMQ 3.6.10.

Chat demo uses synchronous receive thread

for all supported message brokers

In version 5.1.0, the chat demo creates its own receive thread to listen for chat messages. It is recommended to receive messages synchronously in this way, as it allows customized handling of connection failures. Minimal source code changes to the demo program were neccessary to use the new receive thread.

Receive thread code

The chat demo receives incoming messages in a simple thread without error handling. To recover from connection failures, the code would need a second loop which reconnects and starts the main loop again.

  Connection := Factory.CreateConnection;
  try
    try
      Connection.Start;

      Session := Connection.CreateSession(amAutoAcknowledge);
      Destination := Session.CreateTopic(ChatTopic);
      Consumer := Session.CreateConsumer(Destination);

      while not Terminated do
      begin
        Msg := Consumer.Receive(5000);
        if Assigned(Msg) then
        begin
          TThread.Queue(nil, PrintMessage);
        end;
      end;

    except
      on E: Exception do
      begin
        // (no recovery from connection failures)
        if IsConsole then WriteLn(E.Message);
      end;
    end;
  finally
    Connection.Close;
  end;

Performance test displays broker version

for all supported message brokers

The performance test program now uses the IConnectionInterface to retrieve the broker version string when running the test. In the example screenshot below, the application has connected to the “RabbitMQ 3.6.10” broker on the local machine.

You may also collect the message rates of multiple test runs and displays the sample median. To start the long-running tests, shift-click on the run button. Taking all test samples takes around ten seconds.

Connection configuration dialog

for all supported message brokers

The example dialog now uses the IConnectionInterface to retrieve the broker version string when pinging the message broker. In the example screenshot below, the application has connected to the “RabbitMQ 3.6.10” broker on the local machine.

Unit test improvements

for all supported message brokers

The DUnit and FPCUnit now use the IConnectionInfo interface to retrieve the broker version string from the running message broker. In the example shown below, the FPCUnit GUI TestRunner has connected to the “ActiveMQ/5.14.5” message broker on the local machine during the initialization of the test runner.

In the second example, the DUnit GUI TestRunner has connected to the “RabbitMQ 3.6.10” message broker on the local machine.

STOMP 1.2

Unit tests use the STOMP 1.2 wire protocol now by default (Habari Client for OpenMQ still uses STOMP 1.0).

Requirements

The library requires Delphi 2009 or Free Pascal 3.0.2 (or newer).

Release notes

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

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.

Advertisements

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.

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