package uk.co.optimisticpanda.dropwizard; import uk.co.optimisticpanda.dropwizard.commands.MainDbDeployCommand; import com.yammer.dropwizard.Bundle; import com.yammer.dropwizard.config.Bootstrap; import com.yammer.dropwizard.config.Configuration; import com.yammer.dropwizard.config.Environment; import com.yammer.dropwizard.util.Generics; public abstract class DbDeployBundle<T extends Configuration> implements Bundle, DbDeployConfigurationStrategy<T> { public String commandName; /** * Provides the name of the dbdeploy main command. Defaults to "db" */ public DbDeployBundle(String commandName) { this.commandName = commandName; } public DbDeployBundle() { this.commandName = "db"; } public void initialize(Bootstrap<?> bootstrap) { final Class<T> klass = Generics.getTypeParameter(getClass(), Configuration.class); bootstrap.addCommand(new MainDbDeployCommand<T>(this, klass, commandName)); } @Override public void run(Environment environment) { // Do nothing } }