Habari Client libraries release 2017.10

Habarisoft released its Object Pascal STOMP client libraries for Delphi and Free Pascal integration with popular free open source message brokers.

The 2017.10 release includes:

  • Habari Client for ActiveMQ 5.2 – tested with Apache ActiveMQ 5.14.5, 5.15.0 and 5.15.1
  • Habari Client for Artemis 5.2 – tested with Apache ActiveMQ Artemis 2.1.0, 2.2.0 and 2.3.0
  • Habari Client for OpenMQ 5.2 – tested with OpenMQ 5.1.1 (August 2017) and Payara Server 4.1.1
  • Habari Client for RabbitMQ 5.2 – tested with RabbitMQ 3.6.11, 3.6.12 and 3.7.0-rc.1 (on Erlang/OTP 20)

Unit test improvements

Apache ActiveMQ Artemis and RabbitMQ message brokers

The Habari Client DUnit test code now uses the REST API provided by Apache ActiveMQ , Apache ActiveMQ Artemis and RabbitMQ message brokers to prepare initial test environment and and to evaluate test conditions. (requires Indy and SuperObject library)

 

 

Other improvements

  • support user:passwort@host in connection URIs
  • fixed Delphi and Free Pascal compiler warnings
  • included example class TBTQueueRequestor
  • improved logging of connection failures
  • removed code which was required for older versions of Free Pascal
  • replaced PMString type with string

Download

The new version is available now for download from the Habarisoft server for registered users.

Requirements

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

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

Second snapshot of Habari Client libraries release 2017.10

Habarisoft released the second development snapshot of its Object Pascal STOMP client libraries for Delphi and FPC integration with popular free open source message brokers. The upcoming 2017.10 release includes:

  • Habari Client for ActiveMQ 5.2.0 – tested with Apache ActiveMQ 5.14.5, 5.15.0, 5.15.1
  • Habari Client for Artemis 5.2.0 – tested with Apache ActiveMQ Artemis 2.1.0, 2.2.0, 2.3.0
  • Habari Client for OpenMQ 5.2.0 – tested with OpenMQ 5.1.1 (August 2017) and Payara Server 4.1.1
  • Habari Client for RabbitMQ 5.2.0 – tested with RabbitMQ 3.6.11, 3.6.12 and 3.7.0-rc.1 (on Erlang/OTP 20)

Unit test improvements

Apache ActiveMQ Artemis and RabbitMQ message brokers

The Habari Client DUnit test code now uses the REST API provided by Apache ActiveMQ Artemis and RabbitMQ message brokers to prepare initial test environment and and to evaluate test conditions.

For Apache ActiveMQ Artemis, the library includes a small Indy-based client for the Jolokia based REST API for its JMX management interface.  A similar client is also planned for tests of Apache ActiveMQ, which also exposes its JMX interface through Jolokia.

For RabbitMQ, a similar Indy-based client API is included which accesses the proprietary management API of the RabbitMQ broker.

testswithrabbitmq3.7.0.rc1

 

Other improvements

  • support user:passwort@host in connection URIs
  • fixed Delphi and Free Pascal compiler warnings
  • included example class TBTQueueRequestor
  • improved logging of connection failures
  • removed code which was required for older versions of Free Pascal
  • tested with Lazarus 1.8 RC1 / FPC 3.0.4 RC1
  • replaced PMString type with string

Download

The development snapshot is available now for download from the Habarisoft server for registered users.

Requirements

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

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.

Unit test enhancements based on broker Management API

Apache ActiveMQ, APACHE ACTIVEMQ Artemis and RabbitMQ message brokers SUPPORTED

For the upcoming Habari Client libraries release 2017.10, unit tests for three free open source message brokers now utilize a Indy-based management client to access  message broker proprietary management APIs:

  • Habari Client for ActiveMQ 5.2.0 – tested with the Apache ActiveMQ 5.15.0 message broker
  • Habari Client for Artemis 5.2.0 – tested with the Apache ActiveMQ Artemis 2.3.0 message broker
  • Habari Client for RabbitMQ 5.2.0 – tested with the RabbitMQ 3.6.12 message broker

CONDITIONAL SYMBOL

For backwards compatibility, the DUnit test suite does not access the management API by default. To enable it, the project options must define the conditional symbol HABARI_TEST_USE_MGMT_API and the DUnit test project must be rebuilt. (Free Pascal FPCUnit tests are not supported yet).

New Unit test methods

The base test class HabariTestCase now creates an instance of the management API client in its SetUp method if the symbol HABARI_TEST_USE_MGMT_API is defined. The base test class contains new check methods which may be used to write assertions in test case code, a method which creates a message queue, and a method to destroy (delete) a message queue to clean up the test environment before the test run.

CheckQueueSize(Expected: Integer; QueueName: string)

This method retrieves the current size of queue QueueName over the management API and fails if it does not equal the Expected value.

CheckQueueIsEmpty(QueueName: string)

This method retrieves the sizeof queue QueueName over the management API and fails if it does not equal zero.

CreateQueue(QueueName: string)

Creates the message queue over the management API.

DestroyQueue(QueueName: string)

Destroy the message queue over the management API.

Download

The first development snapshot is available now for download from the Habarisoft server for registered users.

About Habari Client libraries

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

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.

Apache ActiveMQ Artemis 2.3.0 released

Aside

The Apache Software Foundation released Apache ActiveMQ Artemis 2.3.0.
Release notes: https://activemq.apache.org/artemis/release-notes-2.3.0.html
Documentation: https://activemq.apache.org/artemis/docs.html

Management Console

The new release introduces a web-based managment console.

About Apache ActiveMQ Artemis

The Apache ActiveMQ Artemis message broker includes AMQP protocol support, OpenWire support for ActiveMQ 5 clients, MQTT support, STOMP protocol support, HornetQ Core protocol support for HornetQ 2.4,2.5 clients, JMS 2.0 and 1.1 support.

First snapshot of Habari Client libraries release 2017.10

Habarisoft released a development snapshot of its Object Pascal STOMP client libraries for Delphi and FPC integration with popular free open source message brokers. The upcoming 2017.10 release includes:

  • Habari Client for ActiveMQ 5.2.0 – tested with Apache ActiveMQ 5.15.0,
  • Habari Client for Artemis 5.2.0 – tested with Apache ActiveMQ Artemis 2.1.0, 2.2.0 and 2.3.0
  • Habari Client for OpenMQ 5.2.0 – tested with OpenMQ 5.1.1 (August 2017) and Payara Server 4.1.1
  • Habari Client for RabbitMQ 5.2.0 – tested with RabbitMQ 3.6.11, 3.6.12 and 3.7.0-rc.1 (on Erlang/OTP 20)

Unit test improvements

Apache ActiveMQ Artemis and RabbitMQ message brokers

The Habari Client DUnit test code now uses the REST API provided by Apache ActiveMQ Artemis and RabbitMQ message brokers to prepare initial test environment and and to evaluate test conditions.

For Apache ActiveMQ Artemis, the library includes a small Indy-based client for the Jolokia based REST API for its JMX management interface.  A similar client is also planned for tests of Apache ActiveMQ, which also exposes its JMX interface through Jolokia.

For RabbitMQ, a similar Indy-based client API is included which accesses the proprietary management API of the RabbitMQ broker.

 

Other improvements

  • support user:passwort@host in connection URIs
  • fixed Delphi and Free Pascal compiler warnings
  • included example class TBTQueueRequestor
  • improved logging of connection failures
  • removed code which was required for older versions of Free Pascal
  • replaced PMString type with string

Download

The development snapshot is available now for download from the Habarisoft server for registered users.

Requirements

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

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.

Apache ActiveMQ Artemis 2.2.0 released

The Apache Software Foundation released Apache ActiveMQ Artemis 2.2.0.

Release notes: https://activemq.apache.org/artemis/release-notes-2.2.0.html

Documentation: https://activemq.apache.org/artemis/docs.html

About Apache ActiveMQ Artemis:
The Apache ActiveMQ Artemis message broker includes AMQP protocol support, OpenWire support for ActiveMQ 5 clients, MQTT support, STOMP protocol support, HornetQ Core protocol support for HornetQ 2.4,2.5 clients, JMS 2.0 and 1.1 support.

 

 

Habari Client libraries 2017.06 performance test application

Habari Client libraries 2017.06 (release date TBD) includes an enhanced performance test application, which optionally collects message rates of multiple test runs and displays the sample median.

Performance test application (screenshot)

To start the long-running tests, shift-click on the run button. Taking all test samples takes around ten seconds.

Shown below is an example for a client configuration:

  • 21 test runs (triggered by a shift-click on the test button)
  • 2000 messages per thread
  • 210 bytes payload
  • two producer threads, two consumer threads
  • wire level protocol: STOMP 1.2

Server configuration:

  • message broker running on localhost (4 GB virtual machine, SSD)
  • running with default configuration

Top three configurations: over 12000 messages per second

The current product versions 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) and Habari Client for RabbitMQ 5.1.0 (tested with RabbitMQ 3.6.10) reached over 12000 messages per second in the given test environment.

Slowest configuration: 6000 messages per second

The current product version Habari Client for OpenMQ 5.1.0 (tested with Open Message Queue 5.1.1) reached more than 6000 messages per second.

Disclaimer

Errors and omissions excepted. No warranty of any sort, expressed or implied, is provided in connection with the library, including, but not limited to, implied warranties of merchantability or fitness for a particular purpose.

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