Active MQ Artemis

Creating a jms client for an Active MQ Artemis cluster is as easy as:

import cats.data.NonEmptyList
  import cats.effect.{ IO, Resource }
  import jms4s.activemq.activeMQ
  import jms4s.activemq.activeMQ._
  import org.typelevel.log4cats.Logger
  import jms4s.JmsClient

  def jmsClientResource(implicit L: Logger[IO]): Resource[IO, JmsClient[IO]] =
    activeMQ.makeJmsClient[IO](
      Config(
        endpoints = NonEmptyList.one(Endpoint("localhost", 61616)),
        username = Some(Username("YOU")),
        password = Some(Password("PW")),
        clientId = ClientId("YOUR.APP")
      )
    )

Why not ActiveMQ 5 “Classic”?

ActiveMQ 5 “Classic” is only supporting JMS 1.1, which is missing a bunch of features we really need to offer.