@Override
    public void start() {
        try {
            if (clustered) {
                CountDownLatch clusteredStart = new CountDownLatch(1);
                Vertx.clusteredVertx(new VertxOptions().setClustered(clustered).setClusterHost("localhost").setBlockedThreadCheckInterval(9999999), result -> {
                    if (result.succeeded()) {
                        System.out.println("**** Clustered Vert.x started up successfully! ****");
                        this.vertx = result.result();
                        clusteredStart.countDown();
                    } else {
                        throw new RuntimeException(result.cause());
                    }
                });
                clusteredStart.await();
            } else {
                vertx = Vertx.vertx(new VertxOptions().setBlockedThreadCheckInterval(9999999));
            }
            echoServer.start();

            startLatch = new CountDownLatch(1);

            DeploymentOptions options = new DeploymentOptions();
            options.setConfig(vertxConf);

            vertx.deployVerticle(InitVerticle.class.getCanonicalName(),
                    options, result -> {
                        if (result.succeeded()) {
                            System.out.println("*** Started Non-clustered Vert.x successfully ***");
                        } else {
                            throw new RuntimeException("InitVerticle deployment failed", result.cause());
                        }
                        startLatch.countDown();
                    });

            startLatch.await();
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }
A Vert.x 3 version of the gateway test server

@author Marc Savy {@literal <msavy@redhat.com>}
gateway/test/src/test/java/io/apiman/gateway/test/junit/vertx3/Vertx3GatewayTestServer.java