package io.robe.mail;
import io.dropwizard.Configuration;
import io.dropwizard.ConfiguredBundle;
import io.dropwizard.setup.Bootstrap;
import io.dropwizard.setup.Environment;
import org.slf4j.Logger;
/**
* Bundle class for mail implementation.
*/
public class MailBundle<T extends Configuration & HasMailConfiguration> implements ConfiguredBundle<T> {
private static final Logger LOGGER = org.slf4j.LoggerFactory.getLogger(MailBundle.class);
/**
* Initializes the environment.
*
* @param configuration the configuration object
* @param environment the io.robe.admin's {@link io.dropwizard.setup.Environment}
* @throws Exception if something goes wrong
*/
@Override
public void run(T configuration, Environment environment) throws Exception {
if (configuration.getMail() != null && configuration instanceof HasMailConfiguration && configuration instanceof Configuration) {
MailManager.setSender(new MailSender(configuration.getMail()));
} else {
LOGGER.warn("Bundle included but no configuration (mail) found at yml.");
}
}
/**
* Initializes the io.robe.admin bootstrap.
*
* @param bootstrap the io.robe.admin bootstrap
*/
@Override
public void initialize(Bootstrap<?> bootstrap) {
}
}