All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.yammer.metrics.spring.HealthCheckBeanPostProcessor Maven / Gradle / Ivy

The newest version!
package com.yammer.metrics.spring;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.BeanPostProcessor;
import org.springframework.core.Ordered;

import com.yammer.metrics.core.HealthCheck;
import com.yammer.metrics.core.HealthCheckRegistry;

public class HealthCheckBeanPostProcessor implements BeanPostProcessor, Ordered {

    private static final Log log = LogFactory.getLog(HealthCheckBeanPostProcessor.class);

    private final HealthCheckRegistry healthChecks;

    public HealthCheckBeanPostProcessor(final HealthCheckRegistry healthChecks) {
        this.healthChecks = healthChecks;
    }

    @Override
    public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
        return bean;
    }

    @Override
    public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
        if (bean instanceof HealthCheck) {
            healthChecks.register((HealthCheck) bean);

            if (log.isDebugEnabled()) {
                log.debug("Registering HealthCheck bean " + beanName);
            }
        }

        return bean;
    }

    @Override
    public int getOrder() {
        return LOWEST_PRECEDENCE;
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy