package com.mycompany.cevent.config.metrics;
import com.codahale.metrics.health.HealthCheck;
import com.mycompany.cevent.config.MetricsConfiguration;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
import org.springframework.context.annotation.Configuration;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import javax.inject.Inject;
/**
* Metrics HealthCheck for JavaMail.
*/
@Configuration("email")
@AutoConfigureAfter(MetricsConfiguration.class)
public class JavaMailHealthCheck extends HealthCheck {
private final Logger log = LoggerFactory.getLogger(JavaMailHealthCheck.class);
@Inject
private JavaMailSenderImpl javaMailSender;
public JavaMailHealthCheck() {
}
@Override
public Result check() {
try {
javaMailSender.getSession().getTransport().connect();
return Result.healthy();
} catch (Exception e) {
log.debug("Cannot connect to e-mail server: {}", e);
return Result.unhealthy("Cannot connect to e-mail server");
}
}
}