Apache Pulsar Module
Testcontainers can be used to automatically create Apache Pulsar containers without external services.
It's based on the official Apache Pulsar docker image, it is recommended to read the official guide.
Example
Create a PulsarContainer
to use it in your tests:
PulsarContainer pulsar = new PulsarContainer(DockerImageName.parse("apachepulsar/pulsar:3.0.0"));
Then you can retrieve the broker and the admin url:
final String pulsarBrokerUrl = pulsar.getPulsarBrokerUrl();
final String httpServiceUrl = pulsar.getHttpServiceUrl();
Options
Configuration
If you need to set Pulsar configuration variables you can use the native APIs and set each variable with PULSAR_PREFIX_
as prefix.
For example, if you want to enable brokerDeduplicationEnabled
:
PulsarContainer pulsar = new PulsarContainer(PULSAR_IMAGE)
.withEnv("PULSAR_PREFIX_brokerDeduplicationEnabled", "true");
Pulsar IO
If you need to test Pulsar IO framework you can enable the Pulsar Functions Worker:
PulsarContainer pulsar = new PulsarContainer(PULSAR_IMAGE).withFunctionsWorker();
Pulsar Transactions
If you need to test Pulsar Transactions you can enable the transactions feature:
PulsarContainer pulsar = new PulsarContainer(PULSAR_IMAGE).withTransactions();
Adding this module to your project dependencies
Add the following dependency to your pom.xml
/build.gradle
file:
testImplementation "org.testcontainers:pulsar:1.19.0"
<dependency>
<groupId>org.testcontainers</groupId>
<artifactId>pulsar</artifactId>
<version>1.19.0</version>
<scope>test</scope>
</dependency>