Skip to content

ActiveMQ

Since v0.44.0

Introduction

The Testcontainers module for Apache ActiveMQ Classic. This module is distinct from the Artemis module, which targets Apache ActiveMQ Artemis (the next-generation broker).

Adding this module to your project dependencies

Please run the following command to add the ActiveMQ module to your Go dependencies:

go get github.com/testcontainers/testcontainers-go/modules/activemq

Usage example

ctx := context.Background()

activemqContainer, err := activemq.Run(ctx,
    "apache/activemq-classic:5.18.7",
    activemq.WithAdminCredentials("test", "test"),
)
defer func() {
    if err := testcontainers.TerminateContainer(activemqContainer); err != nil {
        log.Printf("failed to terminate container: %s", err)
    }
}()
if err != nil {
    log.Printf("failed to start container: %s", err)
    return
}

Module Reference

Run function

The ActiveMQ module exposes one entrypoint function to create the ActiveMQ container, and this function receives three parameters:

func Run(ctx context.Context, img string, opts ...testcontainers.ContainerCustomizer) (*Container, error)
  • context.Context, the Go context.
  • string, the Docker image to use.
  • testcontainers.ContainerCustomizer, a variadic argument for passing options.

Image

Use the second argument in the Run function to set a valid Docker image. In example: Run(context.Background(), "apache/activemq-classic:5.18").

Container Options

When starting the ActiveMQ container, you can pass options in a variadic way to configure it.

WithAdminCredentials

Sets the username and password for the ActiveMQ web console administrator. The credentials are propagated via the ACTIVEMQ_WEB_ADMIN_NAME and ACTIVEMQ_WEB_ADMIN_PASSWORD environment variables. The wait strategy is also updated to authenticate with the provided credentials.

The default credentials are admin/admin.

activemq.WithAdminCredentials("testuser", "testpass"),

The following options are exposed by the testcontainers package.

Basic Options

Lifecycle Options

Files & Mounts Options

Build Options

Logging Options

Image Options

Networking Options

Advanced Options

Experimental Options

Container Methods

The ActiveMQ container exposes the following methods:

AdminUser

The AdminUser() method returns the administrator username used to access the web console.

user := activemqContainer.AdminUser()

AdminPassword

The AdminPassword() method returns the administrator password used to access the web console.

pass := activemqContainer.AdminPassword()

BrokerURL

The BrokerURL(ctx) method returns the OpenWire broker URL as a string with the format tcp://<host>:<port>, using the mapped 61616/tcp port.

brokerURL, err := ctr.BrokerURL(ctx)

WebConsoleURL

The WebConsoleURL(ctx) method returns the HTTP URL of the ActiveMQ web console as a string with the format http://<host>:<port>, using the mapped 8161/tcp port.

consoleURL, err := ctr.WebConsoleURL(ctx)