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

Advertisements

Apache ActiveMQ Artemis 2.6.0 released

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

Release announcement: http://activemq.2283324.n4.nabble.com/ANNOUNCE-ActiveMQ-Artemis-2-6-0-Released-td4739757.html

About Apache ActiveMQ Artemis

Features

  • 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
  • High availability with shared store and non shared store (replication)
  • Flexible Clustering
  • High performance journal for message persistence
  • Queue memory limitation
  • SSL support
  • Management over JMX, JMS and core protocol
  • Large message support
  • Topic hierarchies
  • Producer flow control
  • Consumer flow control
  • Diverts
  • Last value queue
  • Message Groups
  • OSGi support

Habari Client libraries 6.0 preview: new API (update)

Update

The 6.0 release will include a new simplified API. You can read more about it here: https://habarisoft.wordpress.com/2018/05/16/habari-client-libraries-6-0-preview-new-api/

The second snapshot fixes a bug in the TBTMQProducer class.

Download

The new snapshot is available in the Habari Client for ActiveMQ and the Habari Client for RabbitMQ download areas:

General availability

Release 6.0 is planned for Q4/2018. Users of the 5.x releases are encouraged to download and test the 6.0 snapshot. Feedback is always welcome.

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 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;

Download

A snapshot of the new 6.0 release is available in the Habari Client for ActiveMQ and the Habari Client for RabbitMQ download areas:

General availability

Release 6.0 is planned for Q4/2018. Users of the 5.x releases are encouraged to download and test the 6.0 snapshot. Feedback is always welcome.

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.

Connect Delphi and Free Pascal applications with WildFly 12 Final

Earlier this year, Red Hat released WildFly 12 Final, a free and open source Java EE application server for the Java platform. If you need to exchange data between Delphi or Free Pascal code and WildFly, you can follow these steps for a quick demonstration of the Habari Client for Artemis library from Habarisoft

Download

Server configuration

  • run <inst>wildfly-12.0.0.Final\bin\add-user and add the application user chat with password chat and role guest
  • edit <inst>wildfly-12.0.0.Final\standalone\configuration\standalone-full.xml to enable STOMP and add the ExampleTopic destination (see below)
<subsystem xmlns="urn:jboss:domain:messaging-activemq:3.0">
<server name="default">
 ...
  <acceptor name="stomp-acceptor" factory-class="org.apache.activemq.artemis.core.remoting.impl.netty.NettyAcceptorFactory">
    <param name="protocols" value="STOMP"/>
    <param name="port" value="61613"/>
  </acceptor>
  ...
  <jms-topic name="ExampleTopic" entries="java:/jms/topic/ExampleTopic" />
  </server>
</subsystem>

Launch server and clients

  1. start WildFly with <inst>wildfly-12.0.0.Final\bin\standalone -c standalone-full.xml
  2. launch one or more instances of the HabariChat demo application and connect to the server on localhost with user chat and password chat

The Delphi application now can use the ExampleTopic as the ‘chat room’ for messages between all running instances (and, of course, allows also non-Delphi clients to receive and send messages within this chat room topic as well).

chat-wildfly-12

chatroom

nickname

chat

Related posts

 

Apache ActiveMQ Artemis 2.5.0 released

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

 

About Apache ActiveMQ Artemis

Features

  • 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
  • High availability with shared store and non shared store (replication)
  • Flexible Clustering
  • High performance journal for message persistence
  • Queue memory limitation
  • SSL support
  • Management over JMX, JMS and core protocol
  • Large message support
  • Topic hierarchies
  • Producer flow control
  • Consumer flow control
  • Diverts
  • Last value queue
  • Message Groups
  • OSGi support