@Override public void run(BithubServerConfiguration config, Environment environment) throws Exception { String githubUser = config.getGithubConfiguration().getUser(); String githubToken = config.getGithubConfiguration().getToken(); String githubWebhookUser = config.getGithubConfiguration().getWebhookConfiguration().getUsername(); String githubWebhookPwd = config.getGithubConfiguration().getWebhookConfiguration().getPassword(); List<RepositoryConfiguration> githubRepositories = config.getGithubConfiguration().getRepositories(); BigDecimal payoutRate = config.getBithubConfiguration().getPayoutRate(); String organizationName = config.getOrganizationConfiguration().getName(); String donationUrl = config.getOrganizationConfiguration().getDonationUrl().toExternalForm(); String coinbaseApiKey = config.getCoinbaseConfiguration().getApiKey(); String coinbaseApiSecret = config.getCoinbaseConfiguration().getApiSecret(); GithubClient githubClient = new GithubClient(githubUser, githubToken); CoinbaseClient coinbaseClient = new CoinbaseClient(coinbaseApiKey, coinbaseApiSecret); CacheManager cacheManager = new CacheManager(coinbaseClient, githubClient, githubRepositories, payoutRate); environment.servlets().addFilter("CORS", CrossOriginFilter.class) .addMappingForUrlPatterns(EnumSet.of(DispatcherType.REQUEST), true, "/*"); environment.lifecycle().manage(cacheManager); environment.jersey().register(new GithubController(githubRepositories, githubClient, coinbaseClient, payoutRate)); environment.jersey().register(new StatusController(cacheManager, githubRepositories)); environment.jersey().register(new DashboardController(organizationName, donationUrl, cacheManager)); environment.jersey().register(new IOExceptionMapper()); environment.jersey().register(new UnauthorizedHookExceptionMapper()); environment.jersey().register(new BasicAuthProvider<>(new GithubWebhookAuthenticator(githubWebhookUser, githubWebhookPwd), GithubWebhookAuthenticator.REALM)); }
@Override public void run(Configuration configuration, Environment environment) { final SimpleServerFactory serverConfig = new SimpleServerFactory(); configuration.setServerFactory(serverConfig); final HttpConnectorFactory connectorConfig = (HttpConnectorFactory) serverConfig.getConnector(); connectorConfig.setPort(0); environment.healthChecks().register("dummy", new DummyHealthCheck()); for (Object resource : resources) { if (resource instanceof Class<?>) { environment.jersey().register((Class<?>) resource); } else { environment.jersey().register(resource); } } } }
@Override public Server build(Environment environment) { printBanner(environment.getName()); final ThreadPool threadPool = createThreadPool(environment.metrics()); final Server server = buildServer(environment.lifecycle(), threadPool); final Handler applicationHandler = createAppServlet(server, environment.jersey(), environment.getObjectMapper(), environment.getValidator(), environment.getApplicationContext(), environment.getJerseyServletContainer(), environment.metrics()); final Handler adminHandler = createAdminServlet(server, environment.getAdminContext(), environment.metrics(), environment.healthChecks()); final RoutingHandler routingHandler = buildRoutingHandler(environment.metrics(), server, applicationHandler, adminHandler); final Handler gzipHandler = buildGzipHandler(routingHandler); server.setHandler(addStatsHandler(addRequestLog(server, gzipHandler, environment.getName()))); return server; }
@Override public void run(T configuration, Environment environment) throws Exception { final Map<String, Map<String, String>> options = getViewConfiguration(configuration); for (ViewRenderer viewRenderer : viewRenderers) { final Map<String, String> viewOptions = options.get(viewRenderer.getConfigurationKey()); viewRenderer.configure(viewOptions == null ? Collections.emptyMap() : viewOptions); } environment.jersey().register(new ViewMessageBodyWriter(environment.metrics(), viewRenderers)); } }
final MetricRegistry metricsRegistry = environment.metrics(); metricsRegistry.registerAll(new GarbageCollectorMetricSet()); metricsRegistry.registerAll(new MemoryUsageGaugeSet()); metrics.start(); if (!Strings.isNullOrEmpty(config.getStatsdHostPort())) { environment.lifecycle().manage(new ManagedStatsdReporter(config.getStatsdHostPort(), metricsRegistry)); environment.lifecycle().manage(FastForwardReporter.create( metricsRegistry, ffwdConfig.getAddress(), environment.healthChecks().register("zookeeper", zooKeeperHealthChecker); environment.healthChecks().getNames().forEach( name -> environment.metrics().register( "helios." + name + ".ok", new HealthCheckGauge(environment.healthChecks(), name))); environment.servlets() .addFilter("VersionResponseFilter", new VersionResponseFilter(metrics.getMasterMetrics())) .addMappingForUrlPatterns(EnumSet.of(DispatcherType.REQUEST), true, "/*"); environment.jersey().register( new ReportingResourceMethodDispatchAdapter(metrics.getMasterMetrics())); environment.jersey().register(new JobsResource( model, metrics.getMasterMetrics(), config.getWhitelistedCapabilities())); environment.jersey().register(new HistoryResource(model, metrics.getMasterMetrics())); environment.jersey().register(new HostsResource(model)); environment.jersey().register(new MastersResource(model));
FilterRegistration.Dynamic filter = environment.servlets().addFilter(FILTER_NAME, corsFilter); filter.setInitParameter(CrossOriginFilter.ALLOWED_ORIGINS_PARAM, corsConfiguration.getAllowedOrigins()); filter.setInitParameter(CrossOriginFilter.ALLOWED_HEADERS_PARAM, corsConfiguration.getAllowedHeaders()); filter.setInitParameter(CrossOriginFilter.ALLOWED_METHODS_PARAM, corsConfiguration.getAllowedMethods()); filter.setInitParameter(CrossOriginFilter.ALLOW_CREDENTIALS_PARAM, corsConfiguration.isAllowCredentials() ? "true" : "false"); filter.addMappingForUrlPatterns(EnumSet.of(DispatcherType.REQUEST), false, "/*");
private void addServletFilter(Environment environment, String name, Class<? extends Filter> filter, Map<String, String> params) { FilterRegistration.Dynamic dynamic = environment.servlets().addFilter(name, filter); dynamic.setInitParameters(params); dynamic.addMappingForUrlPatterns(EnumSet.allOf(DispatcherType.class), true, "/*"); LOG.info("Added servlet filter '{}' with configuration {}", filter, params); }
@Override public void run(GraphHopperServerConfiguration configuration, Environment environment) { environment.jersey().register(new RootResource()); environment.servlets().addFilter("cors", CORSFilter.class).addMappingForUrlPatterns(EnumSet.allOf(DispatcherType.class), false, "*"); environment.servlets().addFilter("ipfilter", new IPFilter(configuration.getGraphHopperConfiguration().get("jetty.whiteips", ""), configuration.getGraphHopperConfiguration().get("jetty.blackips", ""))).addMappingForUrlPatterns(EnumSet.allOf(DispatcherType.class), false, "*"); } }
SharedMetricRegistries.add(Constants.METRICS_NAME, environment.metrics()); environment.getObjectMapper().configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); environment.getObjectMapper().setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.NONE); environment.getObjectMapper().setVisibility(PropertyAccessor.FIELD, JsonAutoDetect.Visibility.ANY); environment.lifecycle().manage(apnFallbackManager); environment.lifecycle().manage(pubSubManager); environment.lifecycle().manage(pushSender); environment.lifecycle().manage(messagesCache); environment.lifecycle().manage(accountDatabaseCrawler); environment.jersey().register(new AuthDynamicFeature(new BasicCredentialAuthFilter.Builder<Account>() .setAuthenticator(deviceAuthenticator) .buildAuthFilter())); environment.jersey().register(new AuthValueFactoryProvider.Binder<>(Account.class)); environment.jersey().register(new AccountController(pendingAccountsManager, accountsManager, abusiveHostRules, rateLimiters, smsSender, directoryQueue, messagesManager, turnTokenGenerator, config.getTestDevices())); environment.jersey().register(new DeviceController(pendingDevicesManager, accountsManager, messagesManager, directoryQueue, rateLimiters, config.getMaxDevices())); environment.jersey().register(new DirectoryController(rateLimiters, directory, directoryCredentialsGenerator)); environment.jersey().register(new ProvisioningController(rateLimiters, pushSender)); environment.jersey().register(new CertificateController(new CertificateGenerator(config.getDeliveryCertificate().getCertificate(), config.getDeliveryCertificate().getPrivateKey(), config.getDeliveryCertificate().getExpiresDays()))); environment.jersey().register(new VoiceVerificationController(config.getVoiceVerificationConfiguration().getUrl(), config.getVoiceVerificationConfiguration().getLocales())); environment.jersey().register(new TransparentDataController(accountsManager, config.getTransparentDataIndex())); environment.jersey().register(attachmentController); environment.jersey().register(keysController); environment.jersey().register(messageController); environment.jersey().register(profileController); ServletRegistration.Dynamic websocket = environment.servlets().addServlet("WebSocket", webSocketServlet );
private void runRegularGraphHopper(CmdArgs configuration, Environment environment) { final GraphHopperManaged graphHopperManaged = new GraphHopperManaged(configuration, environment.getObjectMapper()); environment.lifecycle().manage(graphHopperManaged); environment.jersey().register(new AbstractBinder() { @Override protected void configure() { bind(configuration).to(CmdArgs.class); bind(graphHopperManaged).to(GraphHopperManaged.class); bind(graphHopperManaged.getGraphHopper()).to(GraphHopper.class); bind(graphHopperManaged.getGraphHopper()).to(GraphHopperAPI.class); bindFactory(HasElevation.class).to(Boolean.class).named("hasElevation"); bindFactory(LocationIndexFactory.class).to(LocationIndex.class); bindFactory(TranslationMapFactory.class).to(TranslationMap.class); bindFactory(EncodingManagerFactory.class).to(EncodingManager.class); bindFactory(GraphHopperStorageFactory.class).to(GraphHopperStorage.class); bindFactory(RasterHullBuilderFactory.class).to(DelaunayTriangulationIsolineBuilder.class); } }); if (configuration.getBool("web.change_graph.enabled", false)) { environment.jersey().register(ChangeGraphResource.class); } environment.jersey().register(NearestResource.class); environment.jersey().register(RouteResource.class); environment.jersey().register(IsochroneResource.class); environment.jersey().register(I18NResource.class); environment.jersey().register(InfoResource.class); environment.healthChecks().register("graphhopper", new GraphHopperHealthCheck(graphHopperManaged.getGraphHopper())); }
@Override public void run(T configuration, Environment environment) { ShiroConfiguration shiroConfig = narrow(configuration); ResourceConfig resourceConfig = environment.jersey().getResourceConfig(); resourceConfig.register(new AuthorizationFilterFeature()); resourceConfig.register(new SubjectFactory()); resourceConfig.register(new AuthInjectionBinder()); Filter shiroFilter = createFilter(configuration); environment.servlets() .addFilter("ShiroFilter", shiroFilter) .addMappingForUrlPatterns(EnumSet.allOf(DispatcherType.class), false, shiroConfig.filterUrlPattern()); }
import org.eclipse.jetty.servlets.CrossOriginFilter; import javax.servlet.DispatcherType; import java.util.EnumSet; public void run(Configuration conf, Environment environment) { // Enable CORS headers final FilterRegistration.Dynamic cors = environment.servlets().addFilter("CORS", CrossOriginFilter.class); // Configure CORS parameters cors.setInitParameter("allowedOrigins", "*"); cors.setInitParameter("allowedHeaders", "X-Requested-With,Content-Type,Accept,Origin"); cors.setInitParameter("allowedMethods", "OPTIONS,GET,PUT,POST,DELETE,HEAD"); // Add URL mapping cors.addMappingForUrlPatterns(EnumSet.allOf(DispatcherType.class), true, "/*"); }
@Override public void run(T configuration, Environment environment) throws Exception { // disable annotation scanning environment.servlets().setInitParameter(CONFIG_BASE_PACKAGES, "none"); // set the config attribute environment.getApplicationContext().setAttribute(REWRITE_CONFIG_KEY, narrow(configuration)); environment.servlets().addServletListeners(new RewriteServletRequestListener(), new RewriteServletContextListener()); // load the filter environment.servlets().addFilter("rewrite", RewriteFilter.class) .addMappingForUrlPatterns(EnumSet.allOf(DispatcherType.class), false, "/*"); } }
final MetricRegistry metricsRegistry = environment.metrics(); metricsRegistry.registerAll(new GarbageCollectorMetricSet()); metricsRegistry.registerAll(new MemoryUsageGaugeSet()); environment.lifecycle().manage(new ManagedStatsdReporter(config.getStatsdHostPort(), metricsRegistry)); environment.lifecycle().manage(reporter); final DockerHealthChecker dockerHealthChecker = new DockerHealthChecker( metrics.getSupervisorMetrics(), TimeUnit.SECONDS, 30); environment.lifecycle().manage(dockerHealthChecker); environment.healthChecks().register("docker", dockerHealthChecker); environment.healthChecks().register("zookeeper", zkHealthChecker); environment.healthChecks().register("dockerd", dockerDaemonHealthChecker); environment.healthChecks().getNames().forEach( name -> environment.metrics().register( "helios." + name + ".ok", new HealthCheckGauge(environment.healthChecks(), name))); environment.metrics().register("helios.healthy", new TotalHealthCheckGauge(environment.healthChecks())); environment.jersey().register(new AgentModelTaskResource(model)); environment.jersey().register(new AgentModelTaskStatusResource(model)); environment.lifecycle().manage(this); environment.lifecycle().manage(this);
environment.lifecycle().manage(dataSource); environment.healthChecks().register(name, new JdbiHealthCheck( environment.getHealthCheckExecutorService(), configuration.getValidationQueryTimeout().orElseGet(() -> Duration.seconds(5)), jdbi, jdbi.setTimingCollector(new InstrumentedTimingCollector(environment.metrics(), nameStrategy));
@Override public void run(final T configuration, final Environment environment) throws Exception { assert configuration instanceof AlchemyServiceConfiguration; final AlchemyModule module = new AlchemyModule(configuration, environment); environment.lifecycle().manage(module); final Injector injector = Guice.createInjector(module); runInjected(injector, configuration, environment); environment.jersey().getResourceConfig().getContainerResponseFilters().add(new SparseFieldSetFilter(environment.getObjectMapper())); environment.jersey().register(new RuntimeExceptionMapper()); environment.lifecycle().manage(new JmxMetricsManaged(environment)); registerIdentitySubTypes(configuration, environment); }
@Override protected void configure() { bind(Environment.class).toInstance(environment); bind(MetricRegistry.class).toInstance(environment.metrics()); bind(HealthCheckRegistry.class).toInstance(environment.healthChecks()); bind(ObjectMapper.class).toInstance(environment.getObjectMapper()); bind(Validator.class).toInstance(environment.getValidator()); bind(JerseyEnvironment.class).toInstance(environment.jersey()); bind(ServletEnvironment.class).toInstance(environment.servlets()); bind(LifecycleEnvironment.class).toInstance(environment.lifecycle()); bind(AdminEnvironment.class).toInstance(environment.admin()); } }
@Override public void run( C config, Environment env ) throws Exception { service = RxOplogService.builder() .with(builderOps.apply(config)) .build(); healthCheck = new RxOplogHealthCheck(service); env.lifecycle().manage(healthCheck); env.healthChecks().register("mongo-oplog", healthCheck); }