@Override public void run(Configuration configuration, Environment environment) { environment.getApplicationContext().addLifeCycleListener(new AbstractLifeCycle.AbstractLifeCycleListener() { @Override public void lifeCycleStarted(LifeCycle event) { final Set<SslReload> reloaders = new HashSet<>(); reloaders.addAll(getReloaders(environment.getApplicationContext())); reloaders.addAll(getReloaders(environment.getAdminContext())); LOGGER.info("{} ssl reloaders registered", reloaders.size()); reloadTask.setReloaders(reloaders); } }); environment.admin().addTask(reloadTask); }
/** * Creates a new {@link AdminEnvironment}. * * @param handler a servlet context handler * @param healthChecks a health check registry */ public AdminEnvironment(MutableServletContextHandler handler, HealthCheckRegistry healthChecks, MetricRegistry metricRegistry) { super(handler); this.healthChecks = healthChecks; this.healthChecks.register("deadlocks", new ThreadDeadlockHealthCheck()); this.tasks = new TaskServlet(metricRegistry); tasks.add(new GarbageCollectionTask()); tasks.add(new LogConfigurationTask()); addServlet("tasks", tasks).addMapping("/tasks/*"); handler.addLifeCycleListener(new AbstractLifeCycle.AbstractLifeCycleListener() { @Override public void lifeCycleStarting(LifeCycle event) { logTasks(); logHealthChecks(); } }); }
adminContext.setClassLoader(classLoader); this.adminEnvironment = new AdminEnvironment(adminContext, healthCheckRegistry, metricRegistry);
@Override protected void configureServlets() { final GuiceFilter guiceFilter = new GuiceFilter(); environment.servlets().addFilter(GUICE_FILTER, guiceFilter) .addMappingForUrlPatterns(dispatcherTypes, false, ROOT_PATH); environment.admin().addFilter(GUICE_FILTER, new AdminGuiceFilter(guiceFilter)) .addMappingForUrlPatterns(dispatcherTypes, false, ROOT_PATH); } }
@Override protected void configureServlets() { final GuiceFilter guiceFilter = new GuiceFilter(); environment.servlets().addFilter(GUICE_FILTER, guiceFilter) .addMappingForUrlPatterns(dispatcherTypes, false, ROOT_PATH); environment.admin().addFilter(GUICE_FILTER, new AdminGuiceFilter(guiceFilter)) .addMappingForUrlPatterns(dispatcherTypes, false, ROOT_PATH); } }
@Override public void run(Environment environment) { environment.getApplicationContext().addLifeCycleListener(new AbstractLifeCycle.AbstractLifeCycleListener() { @Override public void lifeCycleStarted(LifeCycle event) { final ImmutableSet<SslReload> reloaders = ImmutableSet.<SslReload>builder() .addAll(getReloaders(environment.getApplicationContext())) .addAll(getReloaders(environment.getAdminContext())) .build(); LOGGER.info("{} ssl reloaders registered", reloaders.size()); reloadTask.setReloaders(reloaders); } }); environment.admin().addTask(reloadTask); }
/** * Creates a new {@link AdminEnvironment}. * * @param handler a servlet context handler * @param healthChecks a health check registry */ public AdminEnvironment(MutableServletContextHandler handler, HealthCheckRegistry healthChecks, MetricRegistry metricRegistry) { super(handler); this.healthChecks = healthChecks; this.healthChecks.register("deadlocks", new ThreadDeadlockHealthCheck()); this.tasks = new TaskServlet(metricRegistry); tasks.add(new GarbageCollectionTask()); tasks.add(new LogConfigurationTask()); addServlet("tasks", tasks).addMapping("/tasks/*"); handler.addLifeCycleListener(new AbstractLifeCycle.AbstractLifeCycleListener() { @Override public void lifeCycleStarting(LifeCycle event) { logTasks(); logHealthChecks(); } }); }
adminContext.setClassLoader(classLoader); this.adminEnvironment = new AdminEnvironment(adminContext, healthCheckRegistry, metricRegistry);
@Override public void run(HelloWorldConfiguration configuration, Environment environment) { final PersonDAO dao = new PersonDAO(hibernateBundle.getSessionFactory()); final Template template = configuration.buildTemplate(); environment.healthChecks().register("template", new TemplateHealthCheck(template)); environment.admin().addTask(new EchoTask()); environment.jersey().register(DateRequiredFeature.class); environment.jersey().register(new AuthDynamicFeature(new BasicCredentialAuthFilter.Builder<User>() .setAuthenticator(new ExampleAuthenticator()) .setAuthorizer(new ExampleAuthorizer()) .setRealm("SUPER SECRET STUFF") .buildAuthFilter())); environment.jersey().register(new AuthValueFactoryProvider.Binder<>(User.class)); environment.jersey().register(RolesAllowedDynamicFeature.class); environment.jersey().register(new HelloWorldResource(template)); environment.jersey().register(new ViewResource()); environment.jersey().register(new ProtectedResource()); environment.jersey().register(new PeopleResource(dao)); environment.jersey().register(new PersonResource(dao)); environment.jersey().register(new FilteredResource()); } }
@Override public void run(Environment environment) { LOGGER.info("Registering AdminAssetBundle with name: {} for path {}", assetsName, uriPath + '*'); environment.admin() .addServlet(assetsName, createServlet()) .addMapping(uriPath + '*'); }
private void addTasks(Environment environment, Injector injector) { Set<Class<? extends Task>> taskClasses = reflections .getSubTypesOf(Task.class); for (Class<? extends Task> task : taskClasses) { environment.admin().addTask(injector.getInstance(task)); LOG.info("Added task: " + task); } }
@Override public void run(Environment environment) { environment.admin().addServlet("prometheus-metrics", new PrometheusServlet(environment.metrics())).addMapping("/prometheus-metrics"); }
@Override public void addTask(Task task) { _environment.admin().addTask(task); } }
private void registerServlet(final String path, final Environment environment) { environment.admin() .addServlet("adminRest", new AdminRestServlet(environment.getJerseyServletContainer())) .addMapping(path); environment.jersey().register(AdminResourceFilter.class); logger.info("Admin REST registered on path: {}", path); }
@Override public void addTask(Task task) { _environment.admin().addTask(task); } }
private void registerServlet(final String path, final Environment environment) { environment.admin() .addServlet("adminRest", new AdminRestServlet(environment.getJerseyServletContainer())) .addMapping(path); environment.jersey().register(AdminResourceFilter.class); logger.info("Admin REST registered on path: {}", path); }
@Override public void scanAndAdd(Environment environment, Injector injector, Reflections reflections) { Set<Class<? extends Task>> taskClasses = reflections.getSubTypesOf(Task.class); for (Class<? extends Task> task : taskClasses) { environment.admin().addTask(injector.getInstance(task)); LOGGER.info("Added task: " + task); } } }
public void configurePrometheusMetrics(final Environment environment) { final CollectorRegistry prometheusRegistry = CollectorRegistry.defaultRegistry; MetricRegistry _metrics = environment.metrics(); DropwizardExports _dropwizardExports = new DropwizardExports(_metrics); prometheusRegistry.register(_dropwizardExports); AdminEnvironment _admin = environment.admin(); MetricsServlet _metricsServlet = new MetricsServlet(prometheusRegistry); _admin.addServlet("prometheusMetrics", _metricsServlet).addMapping("/prometheusMetrics"); } }
@Override public void install(final Environment environment, final Task instance) { environment.admin().addTask(instance); }
@Override public void run(final Configuration configuration, final Environment environment) throws Exception { AdminResourceEnvironment adminResourceEnvironment = AdminResourceEnvironment.getOrCreate(environment); environment.admin() .addServlet(AdminBundle.class.getCanonicalName(), adminResourceEnvironment.jerseyContainerHolder().getContainer()) .addMapping(adminRootPath + "/*"); environmentConfigurators.forEach(configure -> configure.configure(configuration, adminResourceEnvironment)); logger.with("adminRootPath", adminRootPath).info("Setup an admin environment"); adminResourceEnvironment.adminResourceConfig() .logComponents(); }