package examples;
import io.vertx.core.json.JsonObject;
import io.vertx.servicediscovery.ServiceDiscovery;
import io.vertx.servicediscovery.Record;
import io.vertx.servicediscovery.ServiceReference;
import io.vertx.servicediscovery.types.EventBusService;
public class EventBusServiceExamples {
public void example1(ServiceDiscovery discovery) {
Record record = EventBusService.createRecord(
"some-eventbus-service",
"address",
"examples.MyService",
new JsonObject()
.put("some-metadata", "some value")
);
discovery.publish(record, ar -> {
});
}
public void example2(ServiceDiscovery discovery) {
discovery.getRecord(new JsonObject().put("name", "some-eventbus-service"), ar -> {
if (ar.succeeded() && ar.result() != null) {
ServiceReference reference = discovery.getReference(ar.result());
MyService service = reference.getAs(MyService.class);
reference.release();
}
});
}
public void example3(ServiceDiscovery discovery) {
EventBusService.getProxy(discovery, MyService.class, ar -> {
if (ar.succeeded()) {
MyService service = ar.result();
ServiceDiscovery.releaseServiceObject(discovery, service);
}
});
}
public void example31(ServiceDiscovery discovery) {
EventBusService.getServiceProxyWithJsonFilter(discovery,
new JsonObject().put("service.interface", "org.acme.MyService"),
MyService.class,
ar -> {
if (ar.succeeded()) {
MyService service = ar.result();
ServiceDiscovery.releaseServiceObject(discovery, service);
}
});
}
}