package ru.vyarus.dropwizard.guice.module.installer.feature;
import io.dropwizard.servlets.tasks.Task;
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;
/**
* Dropwizard tasks installer.
* Looks for classes extending {@code io.dropwizard.servlets.tasks.Task} and register in environment.
*
* @author Vyacheslav Rusakov
* @since 01.09.2014
*/
@Order(70)
public class TaskInstaller implements FeatureInstaller<Task>, InstanceInstaller<Task> {
@Override
public boolean matches(final Class<?> type) {
return FeatureUtils.is(type, Task.class);
}
@Override
public void install(final Environment environment, final Task instance) {
environment.admin().addTask(instance);
}
@Override
public void report() {
// dropwizard logs installed tasks
}
}