package ru.vyarus.dropwizard.guice.module.installer.feature.health; import io.dropwizard.setup.Environment; import ru.vyarus.dropwizard.guice.module.installer.FeatureInstaller; import ru.vyarus.dropwizard.guice.module.installer.install.InstanceInstaller; import ru.vyarus.dropwizard.guice.module.installer.order.Order; import ru.vyarus.dropwizard.guice.module.installer.util.FeatureUtils; import ru.vyarus.dropwizard.guice.module.installer.util.Reporter; /** * Health check installer. * Looks for classes extending * {@code ru.vyarus.dropwizard.guice.module.installer.installer.health.NamedHealthCheck} and register in * environment. * * @author Vyacheslav Rusakov * @since 01.09.2014 */ @Order(60) public class HealthCheckInstaller implements FeatureInstaller<NamedHealthCheck>, InstanceInstaller<NamedHealthCheck> { private final Reporter reporter = new Reporter(HealthCheckInstaller.class, "health checks ="); @Override public boolean matches(final Class<?> type) { return FeatureUtils.is(type, NamedHealthCheck.class); } @Override public void install(final Environment environment, final NamedHealthCheck instance) { environment.healthChecks().register(instance.getName(), instance); reporter.line("%-10s (%s)", instance.getName(), FeatureUtils.getInstanceClass(instance).getName()); } @Override public void report() { reporter.report(); } }