diff --git a/src/main/java/com/kumuluz/ee/health/utils/HealthCheckInitializationExtension.java b/src/main/java/com/kumuluz/ee/health/utils/HealthCheckInitializationExtension.java index 1ca2407..374c87f 100644 --- a/src/main/java/com/kumuluz/ee/health/utils/HealthCheckInitializationExtension.java +++ b/src/main/java/com/kumuluz/ee/health/utils/HealthCheckInitializationExtension.java @@ -37,6 +37,8 @@ import javax.enterprise.inject.spi.BeanManager; import javax.enterprise.inject.spi.Extension; import javax.enterprise.util.AnnotationLiteral; +import java.util.List; +import java.util.Optional; import java.util.Set; import java.util.logging.Logger; @@ -91,18 +93,24 @@ private void registerHealthCheckBeans(BeanManager beanManager, AnnotationLiteral } private KumuluzHealthCheck getBuildInHealthCheckBeanInstance(Bean bean) { + if (KumuluzHealthCheck.class.isAssignableFrom(bean.getBeanClass())) { try { - KumuluzHealthCheck instance = (KumuluzHealthCheck) bean.getBeanClass().newInstance(); + KumuluzHealthCheck instance = (KumuluzHealthCheck) bean.getBeanClass().getDeclaredConstructor().newInstance(); String kumuluzHealthCheckName = instance.name(); - if (ConfigurationUtil.getInstance().get(kumuluzHealthCheckName).isPresent()) { + Optional> healthCheckConfigRoot = ConfigurationUtil.getInstance().getMapKeys(kumuluzHealthCheckName); + // DataSourceHealthCheck list is also valid + Optional healthCheckConfigRootList = ConfigurationUtil.getInstance().getListSize(kumuluzHealthCheckName); + + if ((healthCheckConfigRoot.isPresent() && !healthCheckConfigRoot.get().isEmpty()) || + (healthCheckConfigRootList.isPresent() && healthCheckConfigRootList.get() > 0)) { + if (instance.initSuccess()) { return instance; } } - } catch (Exception e) { - + } catch (Exception ignored) { } } return null;