private static final KeyGeneratorSettings createDefaultSettings(Class<? extends IKeyGenerator> cls) throws Exception { KeyGeneratorSettings settings = new KeyGeneratorSettings(); settings.keyGeneratorClass = cls; IKeyGenerator gen = cls.newInstance(); settings.generatorProperties = gen.createDefaultProperties(); return settings; }
@Override public void stop(Future<Void> stopFuture) throws Exception { LOGGER.info("Stop called"); keyGenerator.shutdown(result -> { if (result.failed()) { stopFuture.fail(new RuntimeException(result.cause())); } else { stopFuture.complete(); } }); }
private void init(Future<Void> startFuture) { Objects.requireNonNull(settings.getKeyGeneratorClass(), "The keygenerator class must be set in the settings"); try { keyGenerator = settings.getKeyGeneratorClass().newInstance(); keyGenerator.init(settings, vertx, result -> { if (result.failed()) { startFuture.fail(result.cause()); } else { vertx.eventBus().consumer(SERVICE_NAME, message -> keyGenerator.generateKey(message)); startFuture.complete(); } }); } catch (Exception e) { startFuture.fail(e); } }