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;
}
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));
}
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));
}
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());
}
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;
}
Aggregations