Habari Client libraries 2018.08 – second beta version available

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

  • Habari Client for ActiveMQ 5.5 – tested with ActiveMQ 5.15.4
  • Habari Client for Artemis 5.5 – tested with Artemis 2.4.0 and 1.5.6
  • Habari Client for OpenMQ 5.5 – tested with OpenMQ 5.1.1
  • Habari Client for RabbitMQ 5.5 – tested with RabbitMQ 3.7.7

Download

Release 2018.08.beta.1 is available now for download from the Habarisoft server for registered users.

Changes in release 2018.08

  • Improved STOMP unescaping of escaped header values
  • Undefined escape sequences in STOMP headers such as \t (octet 92 and 116) are treated as a fatal protocol error
  • Raise an exception if code tries to add another receipt header
  • Receipt id generator adds a timestamp value after the id
  • Removed experimental receipt support for some frame types (ack, nack, begin, commit, abort) as receipt frames are mixed with other frames in the input stream
  • Removed code for unsupported Free Pascal versions

About

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 2018.08 – new low-level comm log

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

  • Habari Client for ActiveMQ 5.5
  • Habari Client for Artemis 5.5
  • Habari Client for OpenMQ 5.5
  • Habari Client for RabbitMQ 5.5 – tested with RabbitMQ 3.7.7

Continue reading

Habari Client libraries 2018.08 – first beta available

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

  • Habari Client for ActiveMQ 5.5
  • Habari Client for Artemis 5.5
  • Habari Client for OpenMQ 5.5
  • Habari Client for RabbitMQ 5.5 – tested with RabbitMQ 3.7.7

Continue reading

Apache ActiveMQ 5.15.4 released

The Apache project released Apache ActiveMQ 5.15.4.

A list of issues resolved in this release is available here:
https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311210&version=12342685

The Wiki page for the release is here:
http://activemq.apache.org/activemq-5154-release.html

Release announcement: http://activemq.2283324.n4.nabble.com/ANNOUNCE-Apache-ActiveMQ-5-15-4-Released-td4739771.html

Habari Client libraries 6.0 preview: new API

New interface types

The new API in Habari Client libraries 6.0 is based on three new interfaces which reduce the amount of client code:

  • IMQContext
  • IMQProducer
  • IMQConsumer

IMQContext interface

A IMQContext object encapsulates both the IConnection and the ISession object of the classic API. The connection factory interface contains new methods to create IMQContext objects:

function CreateContext: IMQContext; overload;
function CreateContext(const AcknowledgeMode:
           TAcknowledgementMode): IMQContext; overload;
function CreateContext(const Username, Password: string):
           IMQContext; overload;
function CreateContext(const Username, Password: string;
           const AcknowledgeMode: TAcknowledgementMode):
           IMQContext; overload;

The IMQContext provides methods to create messages, producer and consumer objects, destinations (queues, topics, temporary queues, temporary topics, durable subscribers and so forth), and for transaction control (commit, rollback).

IMQProducer interface

A IMQProducer object provides methods to produce and send messages to the broker. As a shortcut, a method allows to send text or bytes messages without creating ITextMessage or IBytesMessage object by providing the text or bytes as a parameter.

function Send(const Destination: IDestination;
           const Body: string): IMQProducer; overload;
function Send(const Destination: IDestination;
           const AMessage: IMessage): IMQProducer; overload;
...

IMQConsumer interface

A IMQConsumer object provides methods to consume messages from the broker.

The following example is taken from the unit tests. It uses the new API to create and send a text message to a broker queue destination, and then receives the message from this queue.

Source code example

procedure TNewApiTests.TestSendMessage;
var
  Context: IMQContext;
  Destination: IQueue;
  Producer: IMQProducer;
  Consumer: IMQConsumer;
  TextMessage: ITextMessage;
begin
  Context := Factory.CreateContext;
  Destination := Context.CreateQueue(GetQueueName);

  Producer := Context.CreateProducer;
  Producer.Send(Destination, 'Hello World');

  Consumer := Context.CreateConsumer(Destination);
  TextMessage := Consumer.Receive(2500) as ITextMessage;

  CheckEquals('Hello World', TextMessage.Text);
  Context.Close;
end;

Release 6.0 is planned for Q4/2018.

About Habari Client libraries

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 2018.04 released

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

The 2018.04 release is a maintenance release and includes:

Download

Release 2018.04 is available now for download from the Habarisoft server for registered users:

Changes in release 2018.04

  • Connection.Close closes all sessions and consumers. Previous versions only stopped the session(s), but did not send an UNSUBSCRIBE to the server.
  • Fixed several Free Pascal compiler warnings
  • Indy version check: if the symbol INDY100 is not defined, the compilation will end with an error. If the symbol 10_6_2 is not defined, the compilation will emit a warning

Unit test changes

  • Stopwatch methods
  • Test case ReceiveNoWaitDoesNotBlock
  • LocalStompServer closes connection after sending ERROR frame (specification)

Known issues with Apache ActiveMQ Artemis 1.5.6

  • The unit test case TestNoLocal fails with Apache ActiveMQ Artemis 1.5.6

Known issues with Apache ActiveMQ Artemis 2.5.0

  • Many unit test cases fail with Apache ActiveMQ Artemis 2.5.0

Resources

Home page: https://www.habarisoft.com/index.html

Feature matrix: https://www.habarisoft.com/index.html#feature_matrix

About Habari Client libraries

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 2018.04 – first beta available

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

  • Habari Client for ActiveMQ 5.4 – tested with Apache ActiveMQ 5.15.3
  • Habari Client for Artemis 5.4 – tested with Apache ActiveMQ Artemis 2.4.0
  • Habari Client for OpenMQ 5.4 – tested with OpenMQ 5.1.1 (August 2017) and Payara 5.0
  • Habari Client for RabbitMQ 5.4 – tested with RabbitMQ 3.7.4

Continue reading