package io.dropwizard; import io.dropwizard.setup.Bootstrap; import io.dropwizard.setup.Environment; /** * A reusable bundle of functionality, used to define blocks of application behavior that are * conditional on configuration parameters. * * @param <T> the required configuration interface */ public interface ConfiguredBundle<T> { /** * Initializes the environment. * * @param configuration the configuration object * @param environment the application's {@link Environment} * @throws Exception if something goes wrong */ void run(T configuration, Environment environment) throws Exception; /** * Initializes the application bootstrap. * * @param bootstrap the application bootstrap */ void initialize(Bootstrap<?> bootstrap); }