@Override
    public void search(IAsyncResultHandler<List<ILdapSearchEntry>> result) {
        vertx.<List<ILdapSearchEntry>>executeBlocking(blocking -> {
            if (LOGGER.isTraceEnabled()) {
                LOGGER.trace("Blocking search request starting");
            }
            // Send the result through into the result section.
            super.search(superResult -> {
                if (superResult.isSuccess()) {
                    blocking.complete(superResult.getResult());
                } else {
                    LOGGER.error(superResult.getError(), "There was an error while searching LDAP: {}", superResult);
                    blocking.fail(superResult.getError());
                }
            });
        }, blockingResult -> {
            if (LOGGER.isTraceEnabled()) {
                LOGGER.trace("Blocking search request completed: {}", blockingResult);
            }
            if (blockingResult.succeeded()) {
                result.handle(AsyncResultImpl.create(blockingResult.result()));
            } else {
                result.handle(AsyncResultImpl.create(blockingResult.cause()));
            }
        });
    }
@author Marc Savy {@literal <msavy@redhat.com>}
gateway/platforms/vertx3/vertx3/src/main/java/io/apiman/gateway/platforms/vertx3/components/ldap/LdapSearchImpl.java