Search in sources :

Example 6 with ConfirmationStatus

use of com.rabbitmq.stream.ConfirmationStatus in project rabbitmq-stream-java-client by rabbitmq.

the class StreamProducerTest method firstMessagesShouldNotBeFilteredOutWhenNamedProducerRestarts.

@ParameterizedTest
@ValueSource(ints = { 1, 7 })
void firstMessagesShouldNotBeFilteredOutWhenNamedProducerRestarts(int subEntrySize, TestInfo info) throws Exception {
    int messageCount = 10_000;
    String producerName = info.getTestMethod().get().getName();
    AtomicReference<Producer> producer = new AtomicReference<>(environment.producerBuilder().name(producerName).subEntrySize(subEntrySize).stream(stream).build());
    AtomicReference<CountDownLatch> publishLatch = new AtomicReference<>(new CountDownLatch(messageCount));
    IntConsumer publishing = i -> producer.get().send(producer.get().messageBuilder().addData("".getBytes()).build(), confirmationStatus -> publishLatch.get().countDown());
    IntStream.range(0, messageCount).forEach(publishing);
    assertThat(publishLatch.get().await(10, TimeUnit.SECONDS)).isTrue();
    producer.get().close();
    publishLatch.set(new CountDownLatch(messageCount));
    producer.set(environment.producerBuilder().name(producerName).subEntrySize(subEntrySize).stream(stream).build());
    IntStream.range(0, messageCount).forEach(publishing);
    assertThat(publishLatch.get().await(10, TimeUnit.SECONDS)).isTrue();
    producer.get().close();
    CountDownLatch consumeLatch = new CountDownLatch(messageCount * 2);
    environment.consumerBuilder().stream(stream).offset(OffsetSpecification.first()).messageHandler((ctx, msg) -> consumeLatch.countDown()).build();
    assertThat(consumeLatch.await(10, TimeUnit.SECONDS)).isTrue();
}
Also used : IntStream(java.util.stream.IntStream) BeforeEach(org.junit.jupiter.api.BeforeEach) SortedSet(java.util.SortedSet) Assertions.assertThat(org.assertj.core.api.Assertions.assertThat) IntConsumer(java.util.function.IntConsumer) TestUtils.latchAssert(com.rabbitmq.stream.impl.TestUtils.latchAssert) AtomicBoolean(java.util.concurrent.atomic.AtomicBoolean) AtomicReference(java.util.concurrent.atomic.AtomicReference) TestUtils.streamName(com.rabbitmq.stream.impl.TestUtils.streamName) TreeSet(java.util.TreeSet) ConfirmationHandler(com.rabbitmq.stream.ConfirmationHandler) StreamException(com.rabbitmq.stream.StreamException) ExtendWith(org.junit.jupiter.api.extension.ExtendWith) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) ProducerInfo(com.rabbitmq.stream.impl.MonitoringTestUtils.ProducerInfo) Duration(java.time.Duration) Map(java.util.Map) ExecutorService(java.util.concurrent.ExecutorService) Host(com.rabbitmq.stream.Host) ValueSource(org.junit.jupiter.params.provider.ValueSource) TestUtils.waitAtMost(com.rabbitmq.stream.impl.TestUtils.waitAtMost) Status(com.rabbitmq.stream.impl.StreamProducer.Status) EventLoopGroup(io.netty.channel.EventLoopGroup) Environment(com.rabbitmq.stream.Environment) ConcurrentHashMap(java.util.concurrent.ConcurrentHashMap) Set(java.util.Set) UUID(java.util.UUID) Compression(com.rabbitmq.stream.compression.Compression) Producer(com.rabbitmq.stream.Producer) Collectors(java.util.stream.Collectors) EnvironmentBuilder(com.rabbitmq.stream.EnvironmentBuilder) StandardCharsets(java.nio.charset.StandardCharsets) Executors(java.util.concurrent.Executors) TestInfo(org.junit.jupiter.api.TestInfo) BackOffDelayPolicy(com.rabbitmq.stream.BackOffDelayPolicy) TimeUnit(java.util.concurrent.TimeUnit) Consumer(java.util.function.Consumer) Test(org.junit.jupiter.api.Test) CountDownLatch(java.util.concurrent.CountDownLatch) AtomicLong(java.util.concurrent.atomic.AtomicLong) Level(ch.qos.logback.classic.Level) List(java.util.List) AfterEach(org.junit.jupiter.api.AfterEach) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest) ConfirmationStatus(com.rabbitmq.stream.ConfirmationStatus) Constants(com.rabbitmq.stream.Constants) OffsetSpecification(com.rabbitmq.stream.OffsetSpecification) TestUtils.localhost(com.rabbitmq.stream.impl.TestUtils.localhost) Producer(com.rabbitmq.stream.Producer) AtomicReference(java.util.concurrent.atomic.AtomicReference) CountDownLatch(java.util.concurrent.CountDownLatch) IntConsumer(java.util.function.IntConsumer) ValueSource(org.junit.jupiter.params.provider.ValueSource) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest)

Example 7 with ConfirmationStatus

use of com.rabbitmq.stream.ConfirmationStatus in project rabbitmq-stream-java-client by rabbitmq.

the class StreamProducerTest method sendWithMultipleProducers.

@Test
void sendWithMultipleProducers() throws Exception {
    int batchSize = 10;
    // don't want a multiple of batch size
    int messageCount = 1_000 * batchSize + 1;
    int nbProducers = 20;
    Map<String, CountDownLatch> publishLatches = new ConcurrentHashMap<>(nbProducers);
    Map<String, Producer> producers = new ConcurrentHashMap<>(nbProducers);
    List<String> producerNames = IntStream.range(0, nbProducers).mapToObj(i -> {
        String producerName = UUID.randomUUID().toString();
        publishLatches.put(producerName, new CountDownLatch(messageCount));
        producers.put(producerName, environment.producerBuilder().stream(stream).batchSize(batchSize).build());
        return producerName;
    }).collect(Collectors.toList());
    AtomicLong count = new AtomicLong(0);
    ExecutorService executorService = Executors.newCachedThreadPool();
    try {
        producerNames.forEach(name -> {
            CountDownLatch publishLatch = publishLatches.get(name);
            Producer producer = producers.get(name);
            Runnable publishRunnable = () -> {
                IntStream.range(0, messageCount).forEach(i -> {
                    producer.send(producer.messageBuilder().addData(name.getBytes()).build(), confirmationStatus -> {
                        count.incrementAndGet();
                        publishLatch.countDown();
                    });
                });
            };
            executorService.submit(publishRunnable);
        });
        for (CountDownLatch publishLatch : publishLatches.values()) {
            boolean completed = publishLatch.await(10, TimeUnit.SECONDS);
            assertThat(completed).isTrue();
        }
    } finally {
        executorService.shutdownNow();
    }
}
Also used : IntStream(java.util.stream.IntStream) BeforeEach(org.junit.jupiter.api.BeforeEach) SortedSet(java.util.SortedSet) Assertions.assertThat(org.assertj.core.api.Assertions.assertThat) IntConsumer(java.util.function.IntConsumer) TestUtils.latchAssert(com.rabbitmq.stream.impl.TestUtils.latchAssert) AtomicBoolean(java.util.concurrent.atomic.AtomicBoolean) AtomicReference(java.util.concurrent.atomic.AtomicReference) TestUtils.streamName(com.rabbitmq.stream.impl.TestUtils.streamName) TreeSet(java.util.TreeSet) ConfirmationHandler(com.rabbitmq.stream.ConfirmationHandler) StreamException(com.rabbitmq.stream.StreamException) ExtendWith(org.junit.jupiter.api.extension.ExtendWith) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) ProducerInfo(com.rabbitmq.stream.impl.MonitoringTestUtils.ProducerInfo) Duration(java.time.Duration) Map(java.util.Map) ExecutorService(java.util.concurrent.ExecutorService) Host(com.rabbitmq.stream.Host) ValueSource(org.junit.jupiter.params.provider.ValueSource) TestUtils.waitAtMost(com.rabbitmq.stream.impl.TestUtils.waitAtMost) Status(com.rabbitmq.stream.impl.StreamProducer.Status) EventLoopGroup(io.netty.channel.EventLoopGroup) Environment(com.rabbitmq.stream.Environment) ConcurrentHashMap(java.util.concurrent.ConcurrentHashMap) Set(java.util.Set) UUID(java.util.UUID) Compression(com.rabbitmq.stream.compression.Compression) Producer(com.rabbitmq.stream.Producer) Collectors(java.util.stream.Collectors) EnvironmentBuilder(com.rabbitmq.stream.EnvironmentBuilder) StandardCharsets(java.nio.charset.StandardCharsets) Executors(java.util.concurrent.Executors) TestInfo(org.junit.jupiter.api.TestInfo) BackOffDelayPolicy(com.rabbitmq.stream.BackOffDelayPolicy) TimeUnit(java.util.concurrent.TimeUnit) Consumer(java.util.function.Consumer) Test(org.junit.jupiter.api.Test) CountDownLatch(java.util.concurrent.CountDownLatch) AtomicLong(java.util.concurrent.atomic.AtomicLong) Level(ch.qos.logback.classic.Level) List(java.util.List) AfterEach(org.junit.jupiter.api.AfterEach) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest) ConfirmationStatus(com.rabbitmq.stream.ConfirmationStatus) Constants(com.rabbitmq.stream.Constants) OffsetSpecification(com.rabbitmq.stream.OffsetSpecification) TestUtils.localhost(com.rabbitmq.stream.impl.TestUtils.localhost) CountDownLatch(java.util.concurrent.CountDownLatch) AtomicLong(java.util.concurrent.atomic.AtomicLong) Producer(com.rabbitmq.stream.Producer) ExecutorService(java.util.concurrent.ExecutorService) ConcurrentHashMap(java.util.concurrent.ConcurrentHashMap) Test(org.junit.jupiter.api.Test) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest)

Example 8 with ConfirmationStatus

use of com.rabbitmq.stream.ConfirmationStatus in project rabbitmq-stream-java-client by rabbitmq.

the class StreamProducerTest method newIncarnationOfProducerCanQueryItsLastPublishingId.

@ParameterizedTest
@ValueSource(ints = { 1, 7 })
void newIncarnationOfProducerCanQueryItsLastPublishingId(int subEntrySize) throws Exception {
    Producer p = environment.producerBuilder().name("producer-1").stream(stream).subEntrySize(subEntrySize).build();
    AtomicReference<Producer> producer = new AtomicReference<>(p);
    AtomicLong publishingSequence = new AtomicLong(0);
    AtomicLong lastConfirmed = new AtomicLong(-1);
    ConfirmationHandler confirmationHandler = confirmationStatus -> {
        if (confirmationStatus.isConfirmed()) {
            lastConfirmed.set(confirmationStatus.getMessage().getPublishingId());
        }
    };
    AtomicBoolean canPublish = new AtomicBoolean(true);
    Runnable publish = () -> {
        while (canPublish.get()) {
            producer.get().send(producer.get().messageBuilder().publishingId(publishingSequence.getAndIncrement()).addData(String.valueOf(publishingSequence.get()).getBytes()).build(), confirmationHandler);
        }
    };
    new Thread(publish).start();
    Thread.sleep(1000L);
    canPublish.set(false);
    waitAtMost(10, () -> publishingSequence.get() == lastConfirmed.get() + 1);
    assertThat(lastConfirmed.get()).isPositive();
    producer.get().close();
    p = environment.producerBuilder().name("producer-1").stream(stream).subEntrySize(subEntrySize).build();
    producer.set(p);
    long lastPublishingId = producer.get().getLastPublishingId();
    assertThat(lastPublishingId).isEqualTo(lastConfirmed.get());
    canPublish.set(true);
    new Thread(publish).start();
    Thread.sleep(1000L);
    canPublish.set(false);
    waitAtMost(10, () -> publishingSequence.get() == lastConfirmed.get() + 1);
    assertThat(lastConfirmed.get()).isGreaterThan(lastPublishingId);
    CountDownLatch consumeLatch = new CountDownLatch((int) (lastConfirmed.get() + 1));
    AtomicInteger consumed = new AtomicInteger();
    environment.consumerBuilder().stream(stream).offset(OffsetSpecification.first()).messageHandler((offset, message) -> {
        consumed.incrementAndGet();
        consumeLatch.countDown();
    }).build();
    assertThat(consumeLatch.await(10, TimeUnit.SECONDS)).isTrue();
    Thread.sleep(1000);
    assertThat(consumed.get()).isEqualTo(lastConfirmed.get() + 1);
}
Also used : IntStream(java.util.stream.IntStream) BeforeEach(org.junit.jupiter.api.BeforeEach) SortedSet(java.util.SortedSet) Assertions.assertThat(org.assertj.core.api.Assertions.assertThat) IntConsumer(java.util.function.IntConsumer) TestUtils.latchAssert(com.rabbitmq.stream.impl.TestUtils.latchAssert) AtomicBoolean(java.util.concurrent.atomic.AtomicBoolean) AtomicReference(java.util.concurrent.atomic.AtomicReference) TestUtils.streamName(com.rabbitmq.stream.impl.TestUtils.streamName) TreeSet(java.util.TreeSet) ConfirmationHandler(com.rabbitmq.stream.ConfirmationHandler) StreamException(com.rabbitmq.stream.StreamException) ExtendWith(org.junit.jupiter.api.extension.ExtendWith) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) ProducerInfo(com.rabbitmq.stream.impl.MonitoringTestUtils.ProducerInfo) Duration(java.time.Duration) Map(java.util.Map) ExecutorService(java.util.concurrent.ExecutorService) Host(com.rabbitmq.stream.Host) ValueSource(org.junit.jupiter.params.provider.ValueSource) TestUtils.waitAtMost(com.rabbitmq.stream.impl.TestUtils.waitAtMost) Status(com.rabbitmq.stream.impl.StreamProducer.Status) EventLoopGroup(io.netty.channel.EventLoopGroup) Environment(com.rabbitmq.stream.Environment) ConcurrentHashMap(java.util.concurrent.ConcurrentHashMap) Set(java.util.Set) UUID(java.util.UUID) Compression(com.rabbitmq.stream.compression.Compression) Producer(com.rabbitmq.stream.Producer) Collectors(java.util.stream.Collectors) EnvironmentBuilder(com.rabbitmq.stream.EnvironmentBuilder) StandardCharsets(java.nio.charset.StandardCharsets) Executors(java.util.concurrent.Executors) TestInfo(org.junit.jupiter.api.TestInfo) BackOffDelayPolicy(com.rabbitmq.stream.BackOffDelayPolicy) TimeUnit(java.util.concurrent.TimeUnit) Consumer(java.util.function.Consumer) Test(org.junit.jupiter.api.Test) CountDownLatch(java.util.concurrent.CountDownLatch) AtomicLong(java.util.concurrent.atomic.AtomicLong) Level(ch.qos.logback.classic.Level) List(java.util.List) AfterEach(org.junit.jupiter.api.AfterEach) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest) ConfirmationStatus(com.rabbitmq.stream.ConfirmationStatus) Constants(com.rabbitmq.stream.Constants) OffsetSpecification(com.rabbitmq.stream.OffsetSpecification) TestUtils.localhost(com.rabbitmq.stream.impl.TestUtils.localhost) AtomicBoolean(java.util.concurrent.atomic.AtomicBoolean) AtomicLong(java.util.concurrent.atomic.AtomicLong) Producer(com.rabbitmq.stream.Producer) ConfirmationHandler(com.rabbitmq.stream.ConfirmationHandler) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) AtomicReference(java.util.concurrent.atomic.AtomicReference) CountDownLatch(java.util.concurrent.CountDownLatch) ValueSource(org.junit.jupiter.params.provider.ValueSource) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest)

Example 9 with ConfirmationStatus

use of com.rabbitmq.stream.ConfirmationStatus in project rabbitmq-stream-java-client by rabbitmq.

the class StreamProducerTest method sendToNonExistingStreamShouldReturnUnconfirmedStatus.

@Test
void sendToNonExistingStreamShouldReturnUnconfirmedStatus() throws Exception {
    Client client = cf.get();
    String s = UUID.randomUUID().toString();
    Client.Response response = client.create(s);
    assertThat(response.isOk()).isTrue();
    Producer producer = environment.producerBuilder().stream(s).build();
    response = client.delete(s);
    assertThat(response.isOk()).isTrue();
    // it must close
    waitAtMost(10, () -> !((StreamProducer) producer).isOpen());
    CountDownLatch confirmationLatch = new CountDownLatch(1);
    AtomicReference<ConfirmationStatus> confirmationStatusReference = new AtomicReference<>();
    producer.send(producer.messageBuilder().addData("".getBytes()).build(), confirmationStatus -> {
        confirmationStatusReference.set(confirmationStatus);
        confirmationLatch.countDown();
    });
    assertThat(confirmationLatch.await(10, TimeUnit.SECONDS)).isTrue();
    assertThat(confirmationStatusReference.get()).isNotNull();
    assertThat(confirmationStatusReference.get().isConfirmed()).isFalse();
    assertThat(confirmationStatusReference.get().getCode()).isEqualTo(Constants.CODE_PRODUCER_CLOSED);
}
Also used : ConfirmationStatus(com.rabbitmq.stream.ConfirmationStatus) Producer(com.rabbitmq.stream.Producer) AtomicReference(java.util.concurrent.atomic.AtomicReference) CountDownLatch(java.util.concurrent.CountDownLatch) Test(org.junit.jupiter.api.Test) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest)

Example 10 with ConfirmationStatus

use of com.rabbitmq.stream.ConfirmationStatus in project rabbitmq-stream-java-client by rabbitmq.

the class StreamProducerTest method messagesShouldBeDeDuplicatedWhenUsingNameAndPublishingId.

@ParameterizedTest
@ValueSource(ints = { 1, 7 })
void messagesShouldBeDeDuplicatedWhenUsingNameAndPublishingId(int subEntrySize) throws Exception {
    int lineCount = 50_000;
    int firstWaveLineCount = lineCount / 5;
    int backwardCount = firstWaveLineCount / 10;
    SortedSet<Integer> document = new TreeSet<>();
    IntStream.range(0, lineCount).forEach(i -> document.add(i));
    Producer producer = environment.producerBuilder().name("producer-1").stream(stream).subEntrySize(subEntrySize).build();
    AtomicReference<CountDownLatch> latch = new AtomicReference<>(new CountDownLatch(firstWaveLineCount));
    ConfirmationHandler confirmationHandler = confirmationStatus -> latch.get().countDown();
    Consumer<Integer> publishMessage = i -> producer.send(producer.messageBuilder().publishingId(i).addData(String.valueOf(i).getBytes()).build(), confirmationHandler);
    document.headSet(firstWaveLineCount).forEach(publishMessage);
    assertThat(latch.get().await(10, TimeUnit.SECONDS)).isTrue();
    latch.set(new CountDownLatch(lineCount - firstWaveLineCount + backwardCount));
    document.tailSet(firstWaveLineCount - backwardCount).forEach(publishMessage);
    assertThat(latch.get().await(5, TimeUnit.SECONDS)).isTrue();
    CountDownLatch consumeLatch = new CountDownLatch(lineCount);
    AtomicInteger consumed = new AtomicInteger();
    environment.consumerBuilder().stream(stream).offset(OffsetSpecification.first()).messageHandler((offset, message) -> {
        consumed.incrementAndGet();
        consumeLatch.countDown();
    }).build();
    assertThat(consumeLatch.await(10, TimeUnit.SECONDS)).isTrue();
    Thread.sleep(1000);
    // if we are using sub-entries, we cannot avoid duplicates.
    // here, a sub-entry in the second wave, right at the end of the re-submitted
    // values will contain those duplicates, because its publishing ID will be
    // the one of its last message, so the server will accept the whole sub-entry,
    // including the duplicates.
    assertThat(consumed.get()).isEqualTo(lineCount + backwardCount % subEntrySize);
}
Also used : AtomicInteger(java.util.concurrent.atomic.AtomicInteger) IntStream(java.util.stream.IntStream) BeforeEach(org.junit.jupiter.api.BeforeEach) SortedSet(java.util.SortedSet) Assertions.assertThat(org.assertj.core.api.Assertions.assertThat) IntConsumer(java.util.function.IntConsumer) TestUtils.latchAssert(com.rabbitmq.stream.impl.TestUtils.latchAssert) AtomicBoolean(java.util.concurrent.atomic.AtomicBoolean) AtomicReference(java.util.concurrent.atomic.AtomicReference) TestUtils.streamName(com.rabbitmq.stream.impl.TestUtils.streamName) TreeSet(java.util.TreeSet) ConfirmationHandler(com.rabbitmq.stream.ConfirmationHandler) StreamException(com.rabbitmq.stream.StreamException) ExtendWith(org.junit.jupiter.api.extension.ExtendWith) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) ProducerInfo(com.rabbitmq.stream.impl.MonitoringTestUtils.ProducerInfo) Duration(java.time.Duration) Map(java.util.Map) ExecutorService(java.util.concurrent.ExecutorService) Host(com.rabbitmq.stream.Host) ValueSource(org.junit.jupiter.params.provider.ValueSource) TestUtils.waitAtMost(com.rabbitmq.stream.impl.TestUtils.waitAtMost) Status(com.rabbitmq.stream.impl.StreamProducer.Status) EventLoopGroup(io.netty.channel.EventLoopGroup) Environment(com.rabbitmq.stream.Environment) ConcurrentHashMap(java.util.concurrent.ConcurrentHashMap) Set(java.util.Set) UUID(java.util.UUID) Compression(com.rabbitmq.stream.compression.Compression) Producer(com.rabbitmq.stream.Producer) Collectors(java.util.stream.Collectors) EnvironmentBuilder(com.rabbitmq.stream.EnvironmentBuilder) StandardCharsets(java.nio.charset.StandardCharsets) Executors(java.util.concurrent.Executors) TestInfo(org.junit.jupiter.api.TestInfo) BackOffDelayPolicy(com.rabbitmq.stream.BackOffDelayPolicy) TimeUnit(java.util.concurrent.TimeUnit) Consumer(java.util.function.Consumer) Test(org.junit.jupiter.api.Test) CountDownLatch(java.util.concurrent.CountDownLatch) AtomicLong(java.util.concurrent.atomic.AtomicLong) Level(ch.qos.logback.classic.Level) List(java.util.List) AfterEach(org.junit.jupiter.api.AfterEach) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest) ConfirmationStatus(com.rabbitmq.stream.ConfirmationStatus) Constants(com.rabbitmq.stream.Constants) OffsetSpecification(com.rabbitmq.stream.OffsetSpecification) TestUtils.localhost(com.rabbitmq.stream.impl.TestUtils.localhost) Producer(com.rabbitmq.stream.Producer) ConfirmationHandler(com.rabbitmq.stream.ConfirmationHandler) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) TreeSet(java.util.TreeSet) AtomicReference(java.util.concurrent.atomic.AtomicReference) CountDownLatch(java.util.concurrent.CountDownLatch) ValueSource(org.junit.jupiter.params.provider.ValueSource) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest)

Aggregations

ConfirmationStatus (com.rabbitmq.stream.ConfirmationStatus)10 Producer (com.rabbitmq.stream.Producer)9 StreamException (com.rabbitmq.stream.StreamException)8 CountDownLatch (java.util.concurrent.CountDownLatch)8 AtomicReference (java.util.concurrent.atomic.AtomicReference)8 Level (ch.qos.logback.classic.Level)7 BackOffDelayPolicy (com.rabbitmq.stream.BackOffDelayPolicy)7 ConfirmationHandler (com.rabbitmq.stream.ConfirmationHandler)7 Constants (com.rabbitmq.stream.Constants)7 Environment (com.rabbitmq.stream.Environment)7 EnvironmentBuilder (com.rabbitmq.stream.EnvironmentBuilder)7 Host (com.rabbitmq.stream.Host)7 OffsetSpecification (com.rabbitmq.stream.OffsetSpecification)7 Compression (com.rabbitmq.stream.compression.Compression)7 ProducerInfo (com.rabbitmq.stream.impl.MonitoringTestUtils.ProducerInfo)7 Status (com.rabbitmq.stream.impl.StreamProducer.Status)7 TestUtils.latchAssert (com.rabbitmq.stream.impl.TestUtils.latchAssert)7 TestUtils.localhost (com.rabbitmq.stream.impl.TestUtils.localhost)7 TestUtils.streamName (com.rabbitmq.stream.impl.TestUtils.streamName)7 TestUtils.waitAtMost (com.rabbitmq.stream.impl.TestUtils.waitAtMost)7