package examples; import io.vertx.core.Vertx; import io.vertx.core.eventbus.DeliveryOptions; import io.vertx.core.eventbus.MessageConsumer; import io.vertx.core.json.JsonObject; import io.vertx.serviceproxy.ProxyHelper; /** * @author <a href="http://escoffier.me">Clement Escoffier</a> */ public class Examples { public void example1(Vertx vertx) { // Assume database service is already deployed somewhere.... // Save some data in the database JsonObject message = new JsonObject(); message.put("collection", "mycollection") .put("document", new JsonObject().put("name", "tim")); DeliveryOptions options = new DeliveryOptions().addHeader("action", "save"); vertx.eventBus().send("database-service-address", message, options, res2 -> { if (res2.succeeded()) { // done } else { // failure } }); } public void example2(Vertx vertx) { // Assume database service is already deployed somewhere.... // Create a proxy SomeDatabaseService service = SomeDatabaseService.createProxy(vertx, "database-service-address"); // Save some data in the database - this time using the proxy service.save("mycollection", new JsonObject().put("name", "tim"), res2 -> { if (res2.succeeded()) { // done } }); } public void register(Vertx vertx) { // Create an instance of your service implementation SomeDatabaseService service = new SomeDatabaseServiceImpl(); // Register the handler ProxyHelper.registerService(SomeDatabaseService.class, vertx, service, "database-service-address"); } public void unregister(Vertx vertx) { // Create an instance of your service implementation SomeDatabaseService service = new SomeDatabaseServiceImpl(); // Register the handler MessageConsumer<JsonObject> consumer = ProxyHelper.registerService(SomeDatabaseService.class, vertx, service, "database-service-address"); // .... // Unregister your service. ProxyHelper.unregisterService(consumer); } public void proxyCreation(Vertx vertx, DeliveryOptions options) { SomeDatabaseService service = ProxyHelper.createProxy(SomeDatabaseService.class, vertx, "database-service-address"); // or with delivery options: SomeDatabaseService service2 = ProxyHelper.createProxy(SomeDatabaseService.class, vertx, "database-service-address", options); } }