@Override
        public IAsyncResult<Plugin> get(long timeout, TimeUnit unit) throws InterruptedException, ExecutionException,
                TimeoutException {
            if (latch.await(timeout, unit)) {
                return result;
            } else {
                throw new TimeoutException();
            }
        }
@see java.util.concurrent.Future#get(long, java.util.concurrent.TimeUnit)
gateway/engine/core/src/main/java/io/apiman/gateway/engine/impl/DefaultPluginRegistry.java