graceland-platform/src/main/java/io/graceland/Platform.java
@Override
    public void run(PlatformConfiguration configuration, Environment environment) throws Exception {
        dropwizardModule.setup(configuration, environment);

        for (Configurator configurator : wrapper.getConfigurators()) {
            configurator.configure(configuration, environment);
            LOGGER.debug("Registered Configurator: {}", configurator.getClass().getCanonicalName());
        }

        for (Object jerseyComponent : wrapper.getJerseyComponents()) {
            environment.jersey().register(jerseyComponent);
            LOGGER.debug("Registered Jersey Component: {}", jerseyComponent.getClass().getCanonicalName());
        }

        for (Managed managed : wrapper.getManaged()) {
            environment.lifecycle().manage(managed);
            LOGGER.debug("Registered Managed Object: {}", managed.getClass().getCanonicalName());
        }

        for (HealthCheck healthCheck : wrapper.getHealthChecks()) {
            environment.healthChecks().register(healthCheck.toString(), healthCheck);
            LOGGER.debug("Registered Health Check: {}", healthCheck.getClass().getCanonicalName());
        }

        for (Task task : wrapper.getTasks()) {
            environment.admin().addTask(task);
            LOGGER.debug("Registered Task: {}", task.getClass().getCanonicalName());
        }

        for (FilterSpec filterSpec : wrapper.getFilterSpecs()) {
            registerFilterSpec(environment, filterSpec);

            LOGGER.debug("Registered Filter {}: {}",
                    filterSpec.getName(),
                    filterSpec.getFilter().getClass().getCanonicalName());
        }
    }
@Override
    public void run(PlatformConfiguration configuration, Environment environment) throws Exception {
        dropwizardModule.setup(configuration, environment);

        for (Configurator configurator : wrapper.getConfigurators()) {
            configurator.configure(configuration, environment);
            LOGGER.debug("Registered Configurator: {}", configurator.getClass().getCanonicalName());
        }

        for (Object jerseyComponent : wrapper.getJerseyComponents()) {
            environment.jersey().register(jerseyComponent);
            LOGGER.debug("Registered Jersey Component: {}", jerseyComponent.getClass().getCanonicalName());
        }

        for (Managed managed : wrapper.getManaged()) {
            environment.lifecycle().manage(managed);
            LOGGER.debug("Registered Managed Object: {}", managed.getClass().getCanonicalName());
        }

        for (HealthCheck healthCheck : wrapper.getHealthChecks()) {
            environment.healthChecks().register(healthCheck.toString(), healthCheck);
            LOGGER.debug("Registered Health Check: {}", healthCheck.getClass().getCanonicalName());
        }

        for (Task task : wrapper.getTasks()) {
            environment.admin().addTask(task);
            LOGGER.debug("Registered Task: {}", task.getClass().getCanonicalName());
        }

        for (FilterSpec filterSpec : wrapper.getFilterSpecs()) {
            registerFilterSpec(environment, filterSpec);

            LOGGER.debug("Registered Filter {}: {}",
                    filterSpec.getName(),
                    filterSpec.getFilter().getClass().getCanonicalName());
        }
    }
Ran when the Dropwizard service starts up. This method is responsible for setting up the
{@link io.dropwizard.setup.Environment} using the bindings from the loaded
{@link io.graceland.plugin.Plugin}s.

@param configuration Provided by Dropwizard.
@param environment   Provided by Dropwizard.
@throws Exception Thrown by Dropwizard.