Search in sources :

Example 1 with HandlerHook

use of co.cask.http.HandlerHook in project cdap by caskdata.

the class AppFabricServer method startUp.

/**
 * Configures the AppFabricService pre-start.
 */
@Override
protected void startUp() throws Exception {
    LoggingContextAccessor.setLoggingContext(new ServiceLoggingContext(NamespaceId.SYSTEM.getNamespace(), Constants.Logging.COMPONENT_NAME, Constants.Service.APP_FABRIC_HTTP));
    Futures.allAsList(ImmutableList.of(notificationService.start(), applicationLifecycleService.start(), systemArtifactLoader.start(), programRuntimeService.start(), streamCoordinatorClient.start(), programNotificationSubscriberService.start(), programLifecycleService.start(), runRecordCorrectorService.start(), pluginService.start(), coreSchedulerService.start())).get();
    // Create handler hooks
    ImmutableList.Builder<HandlerHook> builder = ImmutableList.builder();
    for (String hook : handlerHookNames) {
        builder.add(new MetricsReporterHook(metricsCollectionService, hook));
    }
    // Run http service on random port
    NettyHttpService.Builder httpServiceBuilder = new CommonNettyHttpServiceBuilder(cConf, Constants.Service.APP_FABRIC_HTTP).setHost(hostname.getCanonicalHostName()).setHandlerHooks(builder.build()).setHttpHandlers(handlers).setConnectionBacklog(cConf.getInt(Constants.AppFabric.BACKLOG_CONNECTIONS, Constants.AppFabric.DEFAULT_BACKLOG)).setExecThreadPoolSize(cConf.getInt(Constants.AppFabric.EXEC_THREADS, Constants.AppFabric.DEFAULT_EXEC_THREADS)).setBossThreadPoolSize(cConf.getInt(Constants.AppFabric.BOSS_THREADS, Constants.AppFabric.DEFAULT_BOSS_THREADS)).setWorkerThreadPoolSize(cConf.getInt(Constants.AppFabric.WORKER_THREADS, Constants.AppFabric.DEFAULT_WORKER_THREADS));
    if (sslEnabled) {
        httpServiceBuilder.setPort(cConf.getInt(Constants.AppFabric.SERVER_SSL_PORT));
        String password = generateRandomPassword();
        KeyStore ks = KeyStores.generatedCertKeyStore(sConf, password);
        SSLHandlerFactory sslHandlerFactory = new SSLHandlerFactory(ks, password);
        httpServiceBuilder.enableSSL(sslHandlerFactory);
    } else {
        httpServiceBuilder.setPort(cConf.getInt(Constants.AppFabric.SERVER_PORT));
    }
    cancelHttpService = startHttpService(httpServiceBuilder.build());
    defaultNamespaceEnsurer.startAndWait();
    if (appVersionUpgradeService != null) {
        appVersionUpgradeService.startAndWait();
    }
}
Also used : MetricsReporterHook(co.cask.cdap.common.metrics.MetricsReporterHook) CommonNettyHttpServiceBuilder(co.cask.cdap.common.http.CommonNettyHttpServiceBuilder) ImmutableList(com.google.common.collect.ImmutableList) NettyHttpService(co.cask.http.NettyHttpService) HandlerHook(co.cask.http.HandlerHook) SSLHandlerFactory(co.cask.cdap.security.tools.SSLHandlerFactory) ServiceLoggingContext(co.cask.cdap.common.logging.ServiceLoggingContext) KeyStore(java.security.KeyStore)

Aggregations

CommonNettyHttpServiceBuilder (co.cask.cdap.common.http.CommonNettyHttpServiceBuilder)1 ServiceLoggingContext (co.cask.cdap.common.logging.ServiceLoggingContext)1 MetricsReporterHook (co.cask.cdap.common.metrics.MetricsReporterHook)1 SSLHandlerFactory (co.cask.cdap.security.tools.SSLHandlerFactory)1 HandlerHook (co.cask.http.HandlerHook)1 NettyHttpService (co.cask.http.NettyHttpService)1 ImmutableList (com.google.common.collect.ImmutableList)1 KeyStore (java.security.KeyStore)1