Habari Client for ActiveMQ Artemis 1.0a1 released

Habarisoft announces the first version of its new Delphi and Free Pascal STOMP client library. Habari Client for Artemis is a library which provides access to the ActiveMQ Artemis free open source message broker.

About Habari Client for Artemis
Habari Client for Artemis is easy to install and configure, and provides a high-level API and programming model, based on connections, sessions, destinations, message producers, and message consumers.

Habari Client for Artemis home page:

About Apache ActiveMQ Artemis:
Apache ActiveMQ Artemis has a proven non blocking architecture. It delivers outstanding performance. Its features include AMQP protocol support, OpenWire support for ActiveMQ 5 clients, STOMP protocol support, HornetQ Core protocol support for HornetQ 2.4,2.5 clients, JMS 2.0 and 1.1 support.

ActiveMQ Artemis home page:

1.0a1 (alpha) release now available
The alpha release includes one year free updates. As a special promotion offer for early adopters, the year begins with the final 1.0 release, which is planned for Q3/2015. Also, the alpha release is offered with a 30 to 40 Euro discount compared to Habari Client libraries for other open source message brokers.

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.


♦ 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


Habari Client Libraries

ScroogeXHTML for the Java™ platform example source code

Habarisoft released source code examples for its RTF to HTML/XHTML converter library, ScroogeXHTML for the Java™ platform. The download archive includes projects for the 4.6 and 5.0 releases.

Included examples

  • tutorial source code from Getting Started PDF (new in 1.0.4)
  • CSS based document size optimization
  • extraction of embedded pictures
  • hyperlink field conversion
  • table conversion (experimental feature)
  • slf4j logging

Continue reading

ScroogeXHTML for the Java™ platform: “Getting Started” guide (draft)

A first draft of the new “Getting Started” Guide (PDF) for the RTF to HTML/XHTML converter library ScroogeXHTML for the Java™ platform version is now available. Note that the PDF uses the root package of the new 5.0 version, com.habarisoft.

Continue reading

ScroogeXHTML for the Java™ platform 4.6 – fast RTF to HTML/XHTML converter

Habarisoft released its RTF to HTML/XHTML converter library, ScroogeXHTML for the Java™ platform, version 4.6.

Release Notes:

  • Fixed image sizing error in the WMF picture helper class WMFPictureHelper
  • Fixed support for special characters
  • Improved support for field conversion

Continue reading

Test your Delphi knowledge: Exception handling

With this code, what will happen:

program FunWithDelphi;


  Controls, SysUtils;

    raise TMouse.Create;
    on E:Exception do
      Writeln(E.Classname, ': E is Exception');
    on E:TObject do
      Writeln(E.Classname, ': E is TObject');
    on E:TMouse do
      Writeln(E.Classname, ': E is TMouse');
  • the program will print “TMouse: E is Exception”
  • the program will print “TMouse: E is TObject”
  • the program will print “TMouse: E is TMouse”
  • compilation fails
  • the program will terminate with a runtime error

Continue reading

RabbitMQ 3.5.0 free open source message broker released

The RabbitMQ team announced the release of RabbitMQ 3.5.0. This release adds support for priority queues which were available as a plugin before. Performance is improved; in particular messages smaller than configurable size are embedded in the queue index to reduce I/O and memory consumption. Stability of clustering and autoheal partition handling is improved as well. A new pause_if_all_down partition handling mode is added. The management web UI now shows many more I/O statistics. Binary and source distributions of the new release can be found on the download page.

For application integration in Delphi and Free Pascal, Habarisoft offers a commercial client library for RabbitMQ 3.4.0 and newer.