Search in sources :

Example 1 with Vertx

use of io.vertx.mutiny.core.Vertx in project smallrye-mutiny by smallrye.

the class WaitForCentral method call.

@Override
public Integer call() throws Exception {
    info("Waiting at most %d seconds for artifacts %s version %s to land in repository (%s)", timeout, artifacts, version, repository);
    List<String> urls = new ArrayList<>();
    for (String artifact : artifacts) {
        String[] segments = artifact.split(":");
        if (segments.length != 2) {
            fail("Invalid artifact (%s), must be groupId:artifactId", artifact);
        }
        String groupId = segments[0].replace(".", "/");
        String artifactId = segments[1];
        String url = String.format("%s/%s/%s/%s/%s-%s.pom", repository, groupId, artifactId, version, artifactId, version);
        urls.add(url);
        info("Url for %s: %s", artifact, url);
    }
    Vertx vertx = Vertx.vertx();
    WebClient client = WebClient.create(vertx);
    long beginning = System.currentTimeMillis();
    long max = beginning + (timeout * 1000);
    boolean done = false;
    while (!done && System.currentTimeMillis() < max) {
        try {
            if (get(client, urls)) {
                done = true;
            } else {
                info("Next attempt in 30s");
                Thread.sleep(30000);
            }
        } catch (Exception e) {
            warn("Failed to retrieve artifacts: %s", e);
        }
    }
    if (!done) {
        fail("Artifacts still not available after %d seconds", timeout);
    } else {
        info("Artifacts found on the repository!");
    }
    client.close();
    vertx.closeAndAwait();
    if (!done) {
        return -1;
    }
    return 0;
}
Also used : ArrayList(java.util.ArrayList) Vertx(io.vertx.mutiny.core.Vertx) WebClient(io.vertx.mutiny.ext.web.client.WebClient)

Example 2 with Vertx

use of io.vertx.mutiny.core.Vertx in project reactive-systems-in-java by cescoffier.

the class UniApi method main.

public static void main(String[] args) {
    Vertx vertx = Vertx.vertx();
    WebClient client = WebClient.create(vertx);
    Uni<HttpResponse<Buffer>> uni = client.getAbs("https://httpbin.org/json").send();
    uni.onItem().transform(HttpResponse::bodyAsJsonObject).onFailure().recoverWithItem(new JsonObject().put("message", "fallback")).subscribe().with(json -> System.out.println("Got json document: " + json));
}
Also used : HttpResponse(io.vertx.mutiny.ext.web.client.HttpResponse) JsonObject(io.vertx.core.json.JsonObject) Vertx(io.vertx.mutiny.core.Vertx) WebClient(io.vertx.mutiny.ext.web.client.WebClient)

Example 3 with Vertx

use of io.vertx.mutiny.core.Vertx in project smallrye-reactive-messaging by smallrye.

the class KafkaClientReactiveStreamsPublisherTest method init.

@BeforeAll
public static void init(@KafkaBootstrapServers String bootstrapServers) {
    companion = new KafkaCompanion(bootstrapServers);
    String newTopic = "tck-" + UUID.randomUUID();
    companion.topics().createAndWait(newTopic, partitions);
    topic = newTopic;
    vertx = Vertx.vertx();
    companion.produceStrings().usingGenerator(i -> new ProducerRecord<>(topic, Integer.toString(i % partitions), Integer.toString(i)), MESSAGE_COUNT).awaitCompletion(Duration.ofSeconds(30));
}
Also used : ProducerRecord(org.apache.kafka.clients.producer.ProducerRecord) HashMap(java.util.HashMap) Multi(io.smallrye.mutiny.Multi) MapBasedConfig(io.smallrye.reactive.messaging.test.common.config.MapBasedConfig) AfterAll(org.junit.jupiter.api.AfterAll) StringDeserializer(org.apache.kafka.common.serialization.StringDeserializer) ExtendWith(org.junit.jupiter.api.extension.ExtendWith) PublisherVerification(org.reactivestreams.tck.junit5.PublisherVerification) BeforeAll(org.junit.jupiter.api.BeforeAll) KafkaBootstrapServers(io.smallrye.reactive.messaging.kafka.companion.test.KafkaBrokerExtension.KafkaBootstrapServers) Duration(java.time.Duration) Map(java.util.Map) KafkaBrokerExtension(io.smallrye.reactive.messaging.kafka.companion.test.KafkaBrokerExtension) CountKafkaCdiEvents(io.smallrye.reactive.messaging.kafka.CountKafkaCdiEvents) Tuple2(io.smallrye.mutiny.tuples.Tuple2) Publisher(org.reactivestreams.Publisher) ConsumerConfig(org.apache.kafka.clients.consumer.ConsumerConfig) UUID(java.util.UUID) UnsatisfiedInstance(io.smallrye.reactive.messaging.kafka.base.UnsatisfiedInstance) AfterEach(org.junit.jupiter.api.AfterEach) KafkaCompanion(io.smallrye.reactive.messaging.kafka.companion.KafkaCompanion) TestEnvironment(org.reactivestreams.tck.TestEnvironment) Vertx(io.vertx.mutiny.core.Vertx) KafkaConnectorIncomingConfiguration(io.smallrye.reactive.messaging.kafka.KafkaConnectorIncomingConfiguration) KafkaSource(io.smallrye.reactive.messaging.kafka.impl.KafkaSource) IncomingKafkaRecord(io.smallrye.reactive.messaging.kafka.IncomingKafkaRecord) ProducerRecord(org.apache.kafka.clients.producer.ProducerRecord) KafkaCompanion(io.smallrye.reactive.messaging.kafka.companion.KafkaCompanion) BeforeAll(org.junit.jupiter.api.BeforeAll)

Example 4 with Vertx

use of io.vertx.mutiny.core.Vertx in project smallrye-reactive-messaging by smallrye.

the class PauseResumeTest method testPauseResumeWithBlockingConsumptionAndConcurrency.

@RepeatedTest(3)
void testPauseResumeWithBlockingConsumptionAndConcurrency() {
    MapBasedConfig config = commonConfiguration().with("client.id", UUID.randomUUID().toString());
    String group = UUID.randomUUID().toString();
    source = new KafkaSource<>(vertx, group, new KafkaConnectorIncomingConfiguration(config), getConsumerRebalanceListeners(), CountKafkaCdiEvents.noCdiEvents, getDeserializationFailureHandlers(), -1);
    injectMockConsumer(source, consumer);
    List<String> items = new CopyOnWriteArrayList<>();
    source.getStream().onItem().transformToUni(item -> Uni.createFrom().item(item).onItem().delayIt().by(Duration.ofMillis(1500)).onItem().invoke(() -> items.add(item.getPayload()))).merge(2).subscribe().with(item -> {
    // do nothing
    });
    TopicPartition tp0 = new TopicPartition(TOPIC, 0);
    TopicPartition tp1 = new TopicPartition(TOPIC, 1);
    TopicPartition tp2 = new TopicPartition(TOPIC, 2);
    Map<TopicPartition, Long> beginning = new HashMap<>();
    beginning.put(tp0, 0L);
    beginning.put(tp1, 0L);
    beginning.put(tp2, 0L);
    consumer.updateBeginningOffsets(beginning);
    consumer.schedulePollTask(() -> {
        consumer.rebalance(Arrays.asList(tp0, tp1, tp2));
        for (int i = 0; i < 5; i++) {
            consumer.addRecord(new ConsumerRecord<>(TOPIC, 0, i, "k", "v" + i));
        }
    });
    await().until(() -> items.size() > 3);
    await().until(() -> consumer.paused().isEmpty());
}
Also used : Consumer(org.apache.kafka.clients.consumer.Consumer) AssertSubscriber(io.smallrye.mutiny.helpers.test.AssertSubscriber) TopicPartition(org.apache.kafka.common.TopicPartition) Awaitility.await(org.awaitility.Awaitility.await) java.util(java.util) MockConsumer(org.apache.kafka.clients.consumer.MockConsumer) ConsumerConfig(org.apache.kafka.clients.consumer.ConsumerConfig) OffsetResetStrategy(org.apache.kafka.clients.consumer.OffsetResetStrategy) io.smallrye.reactive.messaging.kafka(io.smallrye.reactive.messaging.kafka) MapBasedConfig(io.smallrye.reactive.messaging.test.common.config.MapBasedConfig) GlobalOpenTelemetry(io.opentelemetry.api.GlobalOpenTelemetry) Uni(io.smallrye.mutiny.Uni) StringDeserializer(org.apache.kafka.common.serialization.StringDeserializer) MockKafkaUtils.injectMockConsumer(io.smallrye.reactive.messaging.kafka.base.MockKafkaUtils.injectMockConsumer) TypeLiteral(javax.enterprise.util.TypeLiteral) org.junit.jupiter.api(org.junit.jupiter.api) ConsumerRecord(org.apache.kafka.clients.consumer.ConsumerRecord) Duration(java.time.Duration) Vertx(io.vertx.mutiny.core.Vertx) WeldTestBase(io.smallrye.reactive.messaging.kafka.base.WeldTestBase) KafkaSource(io.smallrye.reactive.messaging.kafka.impl.KafkaSource) Instance(javax.enterprise.inject.Instance) CopyOnWriteArrayList(java.util.concurrent.CopyOnWriteArrayList) TopicPartition(org.apache.kafka.common.TopicPartition) MapBasedConfig(io.smallrye.reactive.messaging.test.common.config.MapBasedConfig) CopyOnWriteArrayList(java.util.concurrent.CopyOnWriteArrayList)

Example 5 with Vertx

use of io.vertx.mutiny.core.Vertx in project smallrye-reactive-messaging by smallrye.

the class AmqpClientHelper method createClient.

static AmqpClient createClient(AmqpConnector connector, AmqpConnectorCommonConfiguration config, Instance<AmqpClientOptions> instance) {
    AmqpClient client;
    Optional<String> clientOptionsName = config.getClientOptionsName();
    Vertx vertx = connector.getVertx();
    if (clientOptionsName.isPresent()) {
        client = createClientFromClientOptionsBean(vertx, instance, clientOptionsName.get(), config);
    } else {
        client = getClient(vertx, config);
    }
    connector.addClient(client);
    return client;
}
Also used : AmqpClient(io.vertx.mutiny.amqp.AmqpClient) Vertx(io.vertx.mutiny.core.Vertx)

Aggregations

Vertx (io.vertx.mutiny.core.Vertx)14 Awaitility.await (org.awaitility.Awaitility.await)7 KafkaSource (io.smallrye.reactive.messaging.kafka.impl.KafkaSource)6 MapBasedConfig (io.smallrye.reactive.messaging.test.common.config.MapBasedConfig)6 Instance (javax.enterprise.inject.Instance)6 StringDeserializer (org.apache.kafka.common.serialization.StringDeserializer)6 Test (org.junit.jupiter.api.Test)6 MockKafkaUtils.injectMockConsumer (io.smallrye.reactive.messaging.kafka.base.MockKafkaUtils.injectMockConsumer)5 WeldTestBase (io.smallrye.reactive.messaging.kafka.base.WeldTestBase)5 Duration (java.time.Duration)5 CopyOnWriteArrayList (java.util.concurrent.CopyOnWriteArrayList)5 TypeLiteral (javax.enterprise.util.TypeLiteral)5 TopicPartition (org.apache.kafka.common.TopicPartition)5 Message (org.eclipse.microprofile.reactive.messaging.Message)5 AfterEach (org.junit.jupiter.api.AfterEach)5 HealthReport (io.smallrye.reactive.messaging.health.HealthReport)4 io.smallrye.reactive.messaging.kafka (io.smallrye.reactive.messaging.kafka)4 java.util (java.util)4 HashMap (java.util.HashMap)4 Map (java.util.Map)4