Search in sources :

Example 1 with EventModule

use of io.airlift.event.client.EventModule in project airlift by airlift.

the class HttpEventModule method configure.

@Override
public void configure(Binder binder) {
    // for backwards compatibility
    binder.install(new EventModule());
    binder.bind(JsonEventWriter.class).in(Scopes.SINGLETON);
    binder.bind(HttpEventClient.class).in(Scopes.SINGLETON);
    newSetBinder(binder, EventClient.class).addBinding().to(Key.get(HttpEventClient.class)).in(Scopes.SINGLETON);
    newExporter(binder).export(EventClient.class).withGeneratedName();
    discoveryBinder(binder).bindHttpSelector("collector");
    // bind the http client
    httpClientBinder(binder).bindHttpClient("event", ForEventClient.class);
    // Kick off the binding of Set<EventTypeMetadata> in case no events are bound
    newSetBinder(binder, new TypeLiteral<EventTypeMetadata<?>>() {
    });
}
Also used : EventModule(io.airlift.event.client.EventModule) JsonEventWriter(io.airlift.event.client.JsonEventWriter) EventTypeMetadata(io.airlift.event.client.EventTypeMetadata) EventClient(io.airlift.event.client.EventClient) ForEventClient(io.airlift.event.client.ForEventClient)

Example 2 with EventModule

use of io.airlift.event.client.EventModule in project carbondata by apache.

the class CarbondataConnectorFactory method create.

@Override
public Connector create(String catalogName, Map<String, String> config, ConnectorContext context) {
    requireNonNull(config, "config is null");
    try (ThreadContextClassLoader ignored = new ThreadContextClassLoader(classLoader)) {
        Bootstrap app = new Bootstrap(new EventModule(), new MBeanModule(), new JsonModule(), new CarbondataModule(catalogName), new HiveS3Module(catalogName), new HiveMetastoreModule(catalogName, Optional.ofNullable(null)), new HiveSecurityModule(), new HiveAuthenticationModule(), new HiveProcedureModule(), binder -> {
            javax.management.MBeanServer platformMBeanServer = ManagementFactory.getPlatformMBeanServer();
            binder.bind(javax.management.MBeanServer.class).toInstance(new RebindSafeMBeanServer(platformMBeanServer));
            binder.bind(NodeVersion.class).toInstance(new NodeVersion(context.getNodeManager().getCurrentNode().getVersion()));
            binder.bind(NodeManager.class).toInstance(context.getNodeManager());
            binder.bind(TypeManager.class).toInstance(context.getTypeManager());
            binder.bind(PageIndexerFactory.class).toInstance(context.getPageIndexerFactory());
            binder.bind(PageSorter.class).toInstance(context.getPageSorter());
            configBinder(binder).bindConfig(CarbonTableConfig.class);
        });
        Injector injector = app.strictConfig().doNotInitializeLogging().setRequiredConfigurationProperties(config).initialize();
        setCarbonEnum();
        LifeCycleManager lifeCycleManager = injector.getInstance(LifeCycleManager.class);
        HiveMetadataFactory metadataFactory = injector.getInstance(HiveMetadataFactory.class);
        HiveTransactionManager transactionManager = injector.getInstance(HiveTransactionManager.class);
        ConnectorSplitManager splitManager = injector.getInstance(ConnectorSplitManager.class);
        ConnectorPageSourceProvider connectorPageSource = injector.getInstance(ConnectorPageSourceProvider.class);
        ConnectorPageSinkProvider pageSinkProvider = injector.getInstance(ConnectorPageSinkProvider.class);
        ConnectorNodePartitioningProvider connectorDistributionProvider = injector.getInstance(ConnectorNodePartitioningProvider.class);
        HiveSessionProperties hiveSessionProperties = injector.getInstance(HiveSessionProperties.class);
        HiveTableProperties hiveTableProperties = injector.getInstance(HiveTableProperties.class);
        HiveAnalyzeProperties hiveAnalyzeProperties = injector.getInstance(HiveAnalyzeProperties.class);
        ConnectorAccessControl accessControl = new PartitionsAwareAccessControl(injector.getInstance(ConnectorAccessControl.class));
        Set<Procedure> procedures = injector.getInstance(Key.get(new TypeLiteral<Set<Procedure>>() {
        }));
        return new HiveConnector(lifeCycleManager, metadataFactory, transactionManager, new ClassLoaderSafeConnectorSplitManager(splitManager, classLoader), new ClassLoaderSafeConnectorPageSourceProvider(connectorPageSource, classLoader), new ClassLoaderSafeConnectorPageSinkProvider(pageSinkProvider, classLoader), new ClassLoaderSafeNodePartitioningProvider(connectorDistributionProvider, classLoader), ImmutableSet.of(), procedures, hiveSessionProperties.getSessionProperties(), HiveSchemaProperties.SCHEMA_PROPERTIES, hiveTableProperties.getTableProperties(), hiveAnalyzeProperties.getAnalyzeProperties(), accessControl, classLoader);
    } catch (Exception e) {
        throwIfUnchecked(e);
        throw new RuntimeException(e);
    }
}
Also used : HiveProcedureModule(com.facebook.presto.hive.HiveProcedureModule) MBeanModule(org.weakref.jmx.guice.MBeanModule) HiveMetadataFactory(com.facebook.presto.hive.HiveMetadataFactory) EventModule(io.airlift.event.client.EventModule) HiveSessionProperties(com.facebook.presto.hive.HiveSessionProperties) NodeVersion(com.facebook.presto.hive.NodeVersion) ClassLoaderSafeConnectorPageSourceProvider(com.facebook.presto.spi.connector.classloader.ClassLoaderSafeConnectorPageSourceProvider) TypeLiteral(com.google.inject.TypeLiteral) RebindSafeMBeanServer(com.facebook.presto.hive.RebindSafeMBeanServer) Injector(com.google.inject.Injector) HiveSecurityModule(com.facebook.presto.hive.security.HiveSecurityModule) Bootstrap(io.airlift.bootstrap.Bootstrap) PageSorter(com.facebook.presto.spi.PageSorter) Procedure(com.facebook.presto.spi.procedure.Procedure) HiveMetastoreModule(com.facebook.presto.hive.metastore.HiveMetastoreModule) HiveConnector(com.facebook.presto.hive.HiveConnector) ThreadContextClassLoader(com.facebook.presto.spi.classloader.ThreadContextClassLoader) HiveAnalyzeProperties(com.facebook.presto.hive.HiveAnalyzeProperties) ClassLoaderSafeNodePartitioningProvider(com.facebook.presto.spi.connector.classloader.ClassLoaderSafeNodePartitioningProvider) RebindSafeMBeanServer(com.facebook.presto.hive.RebindSafeMBeanServer) ConnectorAccessControl(com.facebook.presto.spi.connector.ConnectorAccessControl) HiveTableProperties(com.facebook.presto.hive.HiveTableProperties) PartitionsAwareAccessControl(com.facebook.presto.hive.security.PartitionsAwareAccessControl) HiveAuthenticationModule(com.facebook.presto.hive.authentication.HiveAuthenticationModule) ClassLoaderSafeConnectorPageSinkProvider(com.facebook.presto.spi.connector.classloader.ClassLoaderSafeConnectorPageSinkProvider) JsonModule(io.airlift.json.JsonModule) PageIndexerFactory(com.facebook.presto.spi.PageIndexerFactory) HiveS3Module(com.facebook.presto.hive.s3.HiveS3Module) NodeManager(com.facebook.presto.spi.NodeManager) LifeCycleManager(io.airlift.bootstrap.LifeCycleManager) ClassLoaderSafeConnectorPageSinkProvider(com.facebook.presto.spi.connector.classloader.ClassLoaderSafeConnectorPageSinkProvider) ConnectorPageSinkProvider(com.facebook.presto.spi.connector.ConnectorPageSinkProvider) ConnectorSplitManager(com.facebook.presto.spi.connector.ConnectorSplitManager) ClassLoaderSafeConnectorSplitManager(com.facebook.presto.spi.connector.classloader.ClassLoaderSafeConnectorSplitManager) ConnectorPageSourceProvider(com.facebook.presto.spi.connector.ConnectorPageSourceProvider) ClassLoaderSafeConnectorPageSourceProvider(com.facebook.presto.spi.connector.classloader.ClassLoaderSafeConnectorPageSourceProvider) ConnectorNodePartitioningProvider(com.facebook.presto.spi.connector.ConnectorNodePartitioningProvider) ClassLoaderSafeConnectorSplitManager(com.facebook.presto.spi.connector.classloader.ClassLoaderSafeConnectorSplitManager) TypeManager(com.facebook.presto.spi.type.TypeManager) HiveTransactionManager(com.facebook.presto.hive.HiveTransactionManager)

Example 3 with EventModule

use of io.airlift.event.client.EventModule in project carbondata by apache.

the class InternalCarbonDataConnectorFactory method createConnector.

public static Connector createConnector(String catalogName, Map<String, String> config, ConnectorContext context, Module module, Optional<HiveMetastore> metastore) {
    requireNonNull(config, "config is null");
    ClassLoader classLoader = InternalCarbonDataConnectorFactory.class.getClassLoader();
    try (ThreadContextClassLoader ignored = new ThreadContextClassLoader(classLoader)) {
        Bootstrap app = new Bootstrap(new EventModule(), new MBeanModule(), new ConnectorObjectNameGeneratorModule(catalogName, "io.prestosql.plugin.carbondata", "presto.plugin.carbondata"), new JsonModule(), new CarbondataModule(), new HiveS3Module(), new HiveGcsModule(), new HiveAzureModule(), installModuleIf(RubixEnabledConfig.class, RubixEnabledConfig::isCacheEnabled, new RubixModule()), new HiveMetastoreModule(metastore), new HiveSecurityModule(catalogName), new HiveAuthenticationModule(), new HiveProcedureModule(), new MBeanServerModule(), binder -> {
            binder.bind(NodeVersion.class).toInstance(new NodeVersion(context.getNodeManager().getCurrentNode().getVersion()));
            binder.bind(NodeManager.class).toInstance(context.getNodeManager());
            binder.bind(VersionEmbedder.class).toInstance(context.getVersionEmbedder());
            binder.bind(TypeManager.class).toInstance(context.getTypeManager());
            binder.bind(PageIndexerFactory.class).toInstance(context.getPageIndexerFactory());
            binder.bind(PageSorter.class).toInstance(context.getPageSorter());
            binder.bind(CatalogName.class).toInstance(new CatalogName(catalogName));
            configBinder(binder).bindConfig(CarbonTableConfig.class);
        }, binder -> newSetBinder(binder, EventListener.class), module);
        Injector injector = app.strictConfig().doNotInitializeLogging().setRequiredConfigurationProperties(config).initialize();
        if (injector.getInstance(RubixEnabledConfig.class).isCacheEnabled()) {
            // RubixInitializer needs ConfigurationInitializers, hence kept outside RubixModule
            RubixInitializer rubixInitializer = injector.getInstance(RubixInitializer.class);
            rubixInitializer.initializeRubix(context.getNodeManager());
        }
        LifeCycleManager lifeCycleManager = injector.getInstance(LifeCycleManager.class);
        HiveMetadataFactory metadataFactory = injector.getInstance(HiveMetadataFactory.class);
        HiveTransactionManager transactionManager = injector.getInstance(HiveTransactionManager.class);
        ConnectorSplitManager splitManager = injector.getInstance(ConnectorSplitManager.class);
        ConnectorPageSourceProvider connectorPageSource = injector.getInstance(ConnectorPageSourceProvider.class);
        ConnectorPageSinkProvider pageSinkProvider = injector.getInstance(ConnectorPageSinkProvider.class);
        ConnectorNodePartitioningProvider connectorDistributionProvider = injector.getInstance(ConnectorNodePartitioningProvider.class);
        HiveSessionProperties hiveSessionProperties = injector.getInstance(HiveSessionProperties.class);
        HiveTableProperties hiveTableProperties = injector.getInstance(HiveTableProperties.class);
        HiveAnalyzeProperties hiveAnalyzeProperties = injector.getInstance(HiveAnalyzeProperties.class);
        ConnectorAccessControl accessControl = new ClassLoaderSafeConnectorAccessControl(new SystemTableAwareAccessControl(injector.getInstance(ConnectorAccessControl.class)), classLoader);
        Set<Procedure> procedures = injector.getInstance(Key.get(new TypeLiteral<Set<Procedure>>() {
        }));
        Set<SystemTable> systemTables = injector.getInstance(Key.get(new TypeLiteral<Set<SystemTable>>() {
        }));
        Set<EventListener> eventListeners = injector.getInstance(Key.get(new TypeLiteral<Set<EventListener>>() {
        })).stream().map(listener -> new ClassLoaderSafeEventListener(listener, classLoader)).collect(toImmutableSet());
        return new CarbonDataConnector(lifeCycleManager, metadataFactory, transactionManager, new ClassLoaderSafeConnectorSplitManager(splitManager, classLoader), new ClassLoaderSafeConnectorPageSourceProvider(connectorPageSource, classLoader), new ClassLoaderSafeConnectorPageSinkProvider(pageSinkProvider, classLoader), new ClassLoaderSafeNodePartitioningProvider(connectorDistributionProvider, classLoader), systemTables, procedures, eventListeners, hiveSessionProperties.getSessionProperties(), HiveSchemaProperties.SCHEMA_PROPERTIES, hiveTableProperties.getTableProperties(), hiveAnalyzeProperties.getAnalyzeProperties(), accessControl, classLoader);
    }
}
Also used : HiveProcedureModule(io.prestosql.plugin.hive.procedure.HiveProcedureModule) Module(com.google.inject.Module) VersionEmbedder(io.prestosql.spi.VersionEmbedder) ConnectorAccessControl(io.prestosql.spi.connector.ConnectorAccessControl) MBeanModule(org.weakref.jmx.guice.MBeanModule) HiveProcedureModule(io.prestosql.plugin.hive.procedure.HiveProcedureModule) HiveAnalyzeProperties(io.prestosql.plugin.hive.HiveAnalyzeProperties) ConnectorSplitManager(io.prestosql.spi.connector.ConnectorSplitManager) Key(com.google.inject.Key) RubixModule(io.prestosql.plugin.hive.rubix.RubixModule) HiveSecurityModule(io.prestosql.plugin.hive.security.HiveSecurityModule) HiveS3Module(io.prestosql.plugin.hive.s3.HiveS3Module) HiveMetadataFactory(io.prestosql.plugin.hive.HiveMetadataFactory) HiveAuthenticationModule(io.prestosql.plugin.hive.authentication.HiveAuthenticationModule) Procedure(io.prestosql.spi.procedure.Procedure) CarbonTableConfig(org.apache.carbondata.presto.impl.CarbonTableConfig) NodeVersion(io.prestosql.plugin.hive.NodeVersion) SystemTableAwareAccessControl(io.prestosql.plugin.hive.security.SystemTableAwareAccessControl) ConnectorNodePartitioningProvider(io.prestosql.spi.connector.ConnectorNodePartitioningProvider) Map(java.util.Map) Multibinder.newSetBinder(com.google.inject.multibindings.Multibinder.newSetBinder) ConnectorPageSinkProvider(io.prestosql.spi.connector.ConnectorPageSinkProvider) HiveGcsModule(io.prestosql.plugin.hive.gcs.HiveGcsModule) PageIndexerFactory(io.prestosql.spi.PageIndexerFactory) ConditionalModule.installModuleIf(io.airlift.configuration.ConditionalModule.installModuleIf) SystemTable(io.prestosql.spi.connector.SystemTable) HiveMetastoreModule(io.prestosql.plugin.hive.metastore.HiveMetastoreModule) LifeCycleManager(io.airlift.bootstrap.LifeCycleManager) Set(java.util.Set) ClassLoaderSafeConnectorPageSourceProvider(io.prestosql.plugin.base.classloader.ClassLoaderSafeConnectorPageSourceProvider) ClassLoaderSafeConnectorAccessControl(io.prestosql.plugin.base.classloader.ClassLoaderSafeConnectorAccessControl) Bootstrap(io.airlift.bootstrap.Bootstrap) Optional(java.util.Optional) ConfigBinder.configBinder(io.airlift.configuration.ConfigBinder.configBinder) TypeLiteral(com.google.inject.TypeLiteral) ClassLoaderSafeConnectorSplitManager(io.prestosql.plugin.base.classloader.ClassLoaderSafeConnectorSplitManager) Connector(io.prestosql.spi.connector.Connector) HiveSessionProperties(io.prestosql.plugin.hive.HiveSessionProperties) ConnectorContext(io.prestosql.spi.connector.ConnectorContext) ClassLoaderSafeNodePartitioningProvider(io.prestosql.plugin.base.classloader.ClassLoaderSafeNodePartitioningProvider) EventModule(io.airlift.event.client.EventModule) HiveTransactionManager(io.prestosql.plugin.hive.HiveTransactionManager) ConnectorObjectNameGeneratorModule(io.prestosql.plugin.base.jmx.ConnectorObjectNameGeneratorModule) RubixEnabledConfig(io.prestosql.plugin.hive.rubix.RubixEnabledConfig) Objects.requireNonNull(java.util.Objects.requireNonNull) ImmutableSet.toImmutableSet(com.google.common.collect.ImmutableSet.toImmutableSet) RubixInitializer(io.prestosql.plugin.hive.rubix.RubixInitializer) HiveMetastore(io.prestosql.plugin.hive.metastore.HiveMetastore) CatalogName(io.prestosql.plugin.base.CatalogName) HiveSchemaProperties(io.prestosql.plugin.hive.HiveSchemaProperties) MBeanServerModule(io.prestosql.plugin.base.jmx.MBeanServerModule) HiveTableProperties(io.prestosql.plugin.hive.HiveTableProperties) HiveAzureModule(io.prestosql.plugin.hive.azure.HiveAzureModule) TypeManager(io.prestosql.spi.type.TypeManager) ThreadContextClassLoader(io.prestosql.spi.classloader.ThreadContextClassLoader) PageSorter(io.prestosql.spi.PageSorter) Injector(com.google.inject.Injector) ClassLoaderSafeConnectorPageSinkProvider(io.prestosql.plugin.base.classloader.ClassLoaderSafeConnectorPageSinkProvider) EventListener(io.prestosql.spi.eventlistener.EventListener) NodeManager(io.prestosql.spi.NodeManager) ClassLoaderSafeEventListener(io.prestosql.plugin.base.classloader.ClassLoaderSafeEventListener) ConnectorPageSourceProvider(io.prestosql.spi.connector.ConnectorPageSourceProvider) JsonModule(io.airlift.json.JsonModule) ClassLoaderSafeEventListener(io.prestosql.plugin.base.classloader.ClassLoaderSafeEventListener) NodeVersion(io.prestosql.plugin.hive.NodeVersion) ClassLoaderSafeConnectorPageSourceProvider(io.prestosql.plugin.base.classloader.ClassLoaderSafeConnectorPageSourceProvider) Injector(com.google.inject.Injector) PageSorter(io.prestosql.spi.PageSorter) Procedure(io.prestosql.spi.procedure.Procedure) HiveMetastoreModule(io.prestosql.plugin.hive.metastore.HiveMetastoreModule) HiveAnalyzeProperties(io.prestosql.plugin.hive.HiveAnalyzeProperties) ClassLoaderSafeNodePartitioningProvider(io.prestosql.plugin.base.classloader.ClassLoaderSafeNodePartitioningProvider) ConnectorAccessControl(io.prestosql.spi.connector.ConnectorAccessControl) ClassLoaderSafeConnectorAccessControl(io.prestosql.plugin.base.classloader.ClassLoaderSafeConnectorAccessControl) RubixModule(io.prestosql.plugin.hive.rubix.RubixModule) ClassLoaderSafeConnectorPageSinkProvider(io.prestosql.plugin.base.classloader.ClassLoaderSafeConnectorPageSinkProvider) JsonModule(io.airlift.json.JsonModule) PageIndexerFactory(io.prestosql.spi.PageIndexerFactory) NodeManager(io.prestosql.spi.NodeManager) LifeCycleManager(io.airlift.bootstrap.LifeCycleManager) ConnectorSplitManager(io.prestosql.spi.connector.ConnectorSplitManager) ClassLoaderSafeConnectorSplitManager(io.prestosql.plugin.base.classloader.ClassLoaderSafeConnectorSplitManager) SystemTableAwareAccessControl(io.prestosql.plugin.hive.security.SystemTableAwareAccessControl) ClassLoaderSafeConnectorAccessControl(io.prestosql.plugin.base.classloader.ClassLoaderSafeConnectorAccessControl) MBeanModule(org.weakref.jmx.guice.MBeanModule) HiveMetadataFactory(io.prestosql.plugin.hive.HiveMetadataFactory) Set(java.util.Set) ImmutableSet.toImmutableSet(com.google.common.collect.ImmutableSet.toImmutableSet) EventModule(io.airlift.event.client.EventModule) ConnectorObjectNameGeneratorModule(io.prestosql.plugin.base.jmx.ConnectorObjectNameGeneratorModule) HiveSessionProperties(io.prestosql.plugin.hive.HiveSessionProperties) TypeLiteral(com.google.inject.TypeLiteral) RubixInitializer(io.prestosql.plugin.hive.rubix.RubixInitializer) HiveSecurityModule(io.prestosql.plugin.hive.security.HiveSecurityModule) ThreadContextClassLoader(io.prestosql.spi.classloader.ThreadContextClassLoader) Bootstrap(io.airlift.bootstrap.Bootstrap) EventListener(io.prestosql.spi.eventlistener.EventListener) ClassLoaderSafeEventListener(io.prestosql.plugin.base.classloader.ClassLoaderSafeEventListener) ThreadContextClassLoader(io.prestosql.spi.classloader.ThreadContextClassLoader) HiveAzureModule(io.prestosql.plugin.hive.azure.HiveAzureModule) HiveTableProperties(io.prestosql.plugin.hive.HiveTableProperties) HiveAuthenticationModule(io.prestosql.plugin.hive.authentication.HiveAuthenticationModule) RubixEnabledConfig(io.prestosql.plugin.hive.rubix.RubixEnabledConfig) VersionEmbedder(io.prestosql.spi.VersionEmbedder) HiveS3Module(io.prestosql.plugin.hive.s3.HiveS3Module) ConnectorPageSinkProvider(io.prestosql.spi.connector.ConnectorPageSinkProvider) ClassLoaderSafeConnectorPageSinkProvider(io.prestosql.plugin.base.classloader.ClassLoaderSafeConnectorPageSinkProvider) HiveGcsModule(io.prestosql.plugin.hive.gcs.HiveGcsModule) ClassLoaderSafeConnectorPageSourceProvider(io.prestosql.plugin.base.classloader.ClassLoaderSafeConnectorPageSourceProvider) ConnectorPageSourceProvider(io.prestosql.spi.connector.ConnectorPageSourceProvider) MBeanServerModule(io.prestosql.plugin.base.jmx.MBeanServerModule) ConnectorNodePartitioningProvider(io.prestosql.spi.connector.ConnectorNodePartitioningProvider) ClassLoaderSafeConnectorSplitManager(io.prestosql.plugin.base.classloader.ClassLoaderSafeConnectorSplitManager) TypeManager(io.prestosql.spi.type.TypeManager) CatalogName(io.prestosql.plugin.base.CatalogName) SystemTable(io.prestosql.spi.connector.SystemTable) HiveTransactionManager(io.prestosql.plugin.hive.HiveTransactionManager)

Example 4 with EventModule

use of io.airlift.event.client.EventModule in project airlift by airlift.

the class TestHttpServerModule method testServer.

@Test
public void testServer() throws Exception {
    Map<String, String> properties = new ImmutableMap.Builder<String, String>().put("http-server.http.port", "0").put("http-server.log.path", new File(tempDir, "http-request.log").getAbsolutePath()).build();
    Bootstrap app = new Bootstrap(new HttpServerModule(), new TestingNodeModule(), new EventModule(), binder -> {
        binder.bind(Servlet.class).annotatedWith(TheServlet.class).to(DummyServlet.class);
        newSetBinder(binder, Filter.class, TheServlet.class).addBinding().to(DummyFilter.class).in(Scopes.SINGLETON);
        httpServerBinder(binder).bindResource("/", "webapp/user").withWelcomeFile("user-welcome.txt");
        httpServerBinder(binder).bindResource("/", "webapp/user2");
        httpServerBinder(binder).bindResource("path", "webapp/user").withWelcomeFile("user-welcome.txt");
        httpServerBinder(binder).bindResource("path", "webapp/user2");
    });
    Injector injector = app.setRequiredConfigurationProperties(properties).doNotInitializeLogging().initialize();
    HttpServerInfo httpServerInfo = injector.getInstance(HttpServerInfo.class);
    HttpServer server = injector.getInstance(HttpServer.class);
    server.start();
    try (HttpClient client = new JettyHttpClient()) {
        // test servlet bound correctly
        URI httpUri = httpServerInfo.getHttpUri();
        StatusResponse response = client.execute(prepareGet().setUri(httpUri).build(), createStatusResponseHandler());
        assertEquals(response.getStatusCode(), HttpServletResponse.SC_OK);
        // test filter bound correctly
        response = client.execute(prepareGet().setUri(httpUri.resolve("/filter")).build(), createStatusResponseHandler());
        assertEquals(response.getStatusCode(), HttpServletResponse.SC_PAYMENT_REQUIRED);
        // test http resources
        assertResource(httpUri, client, "", "welcome user!");
        assertResource(httpUri, client, "user-welcome.txt", "welcome user!");
        assertResource(httpUri, client, "user.txt", "user");
        assertResource(httpUri, client, "user2.txt", "user2");
        assertRedirect(httpUri, client, "path", "/path/");
        assertResource(httpUri, client, "path/", "welcome user!");
        assertResource(httpUri, client, "path/user-welcome.txt", "welcome user!");
        assertResource(httpUri, client, "path/user.txt", "user");
        assertResource(httpUri, client, "path/user2.txt", "user2");
    } finally {
        server.stop();
    }
}
Also used : EventModule(io.airlift.event.client.EventModule) InMemoryEventModule(io.airlift.event.client.InMemoryEventModule) TestingNodeModule(io.airlift.node.testing.TestingNodeModule) StatusResponse(io.airlift.http.client.StatusResponseHandler.StatusResponse) URI(java.net.URI) ImmutableMap(com.google.common.collect.ImmutableMap) Filter(javax.servlet.Filter) Injector(com.google.inject.Injector) JettyHttpClient(io.airlift.http.client.jetty.JettyHttpClient) JettyHttpClient(io.airlift.http.client.jetty.JettyHttpClient) HttpClient(io.airlift.http.client.HttpClient) Bootstrap(io.airlift.bootstrap.Bootstrap) File(java.io.File) Test(org.testng.annotations.Test)

Example 5 with EventModule

use of io.airlift.event.client.EventModule in project airlift by airlift.

the class TestHttpServerModule method testHttpServerUri.

@Test
public void testHttpServerUri() throws Exception {
    Map<String, String> properties = new ImmutableMap.Builder<String, String>().put("http-server.http.port", "0").put("http-server.log.path", new File(tempDir, "http-request.log").getAbsolutePath()).build();
    Bootstrap app = new Bootstrap(new HttpServerModule(), new TestingNodeModule(), new EventModule(), binder -> binder.bind(Servlet.class).annotatedWith(TheServlet.class).to(DummyServlet.class));
    Injector injector = app.setRequiredConfigurationProperties(properties).doNotInitializeLogging().initialize();
    NodeInfo nodeInfo = injector.getInstance(NodeInfo.class);
    HttpServer server = injector.getInstance(HttpServer.class);
    assertNotNull(server);
    server.start();
    try {
        HttpServerInfo httpServerInfo = injector.getInstance(HttpServerInfo.class);
        assertNotNull(httpServerInfo);
        assertNotNull(httpServerInfo.getHttpUri());
        assertEquals(httpServerInfo.getHttpUri().getScheme(), "http");
        assertEquals(httpServerInfo.getHttpUri().getHost(), nodeInfo.getInternalAddress());
        assertNull(httpServerInfo.getHttpsUri());
    } catch (Exception e) {
        server.stop();
    }
}
Also used : EventModule(io.airlift.event.client.EventModule) InMemoryEventModule(io.airlift.event.client.InMemoryEventModule) TestingNodeModule(io.airlift.node.testing.TestingNodeModule) ImmutableMap(com.google.common.collect.ImmutableMap) ServletException(javax.servlet.ServletException) IOException(java.io.IOException) Injector(com.google.inject.Injector) NodeInfo(io.airlift.node.NodeInfo) Bootstrap(io.airlift.bootstrap.Bootstrap) HttpServlet(javax.servlet.http.HttpServlet) Servlet(javax.servlet.Servlet) File(java.io.File) Test(org.testng.annotations.Test)

Aggregations

EventModule (io.airlift.event.client.EventModule)6 Injector (com.google.inject.Injector)5 Bootstrap (io.airlift.bootstrap.Bootstrap)5 ImmutableMap (com.google.common.collect.ImmutableMap)3 InMemoryEventModule (io.airlift.event.client.InMemoryEventModule)3 TestingNodeModule (io.airlift.node.testing.TestingNodeModule)3 File (java.io.File)3 Test (org.testng.annotations.Test)3 TypeLiteral (com.google.inject.TypeLiteral)2 LifeCycleManager (io.airlift.bootstrap.LifeCycleManager)2 JsonModule (io.airlift.json.JsonModule)2 Servlet (javax.servlet.Servlet)2 HttpServlet (javax.servlet.http.HttpServlet)2 MBeanModule (org.weakref.jmx.guice.MBeanModule)2 HiveAnalyzeProperties (com.facebook.presto.hive.HiveAnalyzeProperties)1 HiveConnector (com.facebook.presto.hive.HiveConnector)1 HiveMetadataFactory (com.facebook.presto.hive.HiveMetadataFactory)1 HiveProcedureModule (com.facebook.presto.hive.HiveProcedureModule)1 HiveSessionProperties (com.facebook.presto.hive.HiveSessionProperties)1 HiveTableProperties (com.facebook.presto.hive.HiveTableProperties)1