io.airlift.bootstrap.Bootstrap类的使用及代码示例

x33g5p2x  于2022-01-16 转载在 其他  
字(12.0k)|赞(0)|评价(0)|浏览(244)

本文整理了Java中io.airlift.bootstrap.Bootstrap类的一些代码示例,展示了Bootstrap类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Bootstrap类的具体详情如下:
包路径:io.airlift.bootstrap.Bootstrap
类名称:Bootstrap

Bootstrap介绍

[英]Entry point for an application built using the platform codebase.

This class will:

  • load, validate and bind configurations
  • initialize logging
  • set up bootstrap management
  • create an Guice injector
    [中]使用平台代码库构建的应用程序的入口点。
    本课程将:
    *加载、验证和绑定配置
    *初始化日志记录
    *设置引导管理
    *创建Guice注入器

代码示例

代码示例来源:origin: prestodb/presto

@Test
public void testExcludesCurrentNode()
    throws Exception
  Bootstrap app = new Bootstrap(
      new TestingNodeModule(),
      new TestingJmxModule(),
      new TestingDiscoveryModule(),
      new TestingHttpServerModule(),
      new TraceTokenModule(),
      new JsonModule(),
      new JaxrsModule(true),
      new FailureDetectorModule(),
      .strictConfig()
      .doNotInitializeLogging()
      .quiet()
      .initialize();
  ServiceSelector selector = injector.getInstance(Key.get(ServiceSelector.class, serviceType("presto")));
  assertEquals(selector.selectAllServices().size(), 1);
  HeartbeatFailureDetector detector = injector.getInstance(HeartbeatFailureDetector.class);
  detector.updateMonitoredServices();

代码示例来源:origin: prestodb/presto

@Override
  public SessionPropertyConfigurationManager create(Map<String, String> config, SessionPropertyConfigurationManagerContext context)
  {
    try {
      Bootstrap app = new Bootstrap(
          new JsonModule(),
          new FileSessionPropertyManagerModule());

      Injector injector = app
          .strictConfig()
          .doNotInitializeLogging()
          .setRequiredConfigurationProperties(config)
          .initialize();
      return injector.getInstance(FileSessionPropertyManager.class);
    }
    catch (Exception e) {
      throwIfUnchecked(e);
      throw new RuntimeException(e);
    }
  }
}

代码示例来源:origin: prestodb/presto

public static void start(List<Module> extraModules)
    throws Exception
{
  Bootstrap app = new Bootstrap(
      ImmutableList.<Module>builder()
          .add(new DriftNettyServerModule())
          .add(new ThriftTpchServerModule())
          .addAll(requireNonNull(extraModules, "extraModules is null"))
          .build());
  app.strictConfig().initialize();
}

代码示例来源:origin: prestodb/presto

public static void start(Module... extraModules)
{
  Bootstrap app = new Bootstrap(ImmutableList.<Module>builder()
      .add(new NodeModule())
      .add(new HttpServerModule())
      .add(new JsonModule())
      .add(new JaxrsModule(true))
      .add(new MBeanModule())
      .add(new JmxModule())
      .add(new LogJmxModule())
      .add(new TraceTokenModule())
      .add(new EventModule())
      .add(new ProxyModule())
      .add(extraModules)
      .build());
  Logger log = Logger.get(PrestoProxy.class);
  try {
    app.strictConfig().initialize();
    log.info("======== SERVER STARTED ========");
  }
  catch (Throwable t) {
    log.error(t);
    System.exit(1);
  }
}

代码示例来源:origin: io.airlift/http-client

@Test
public void testWithoutFilters()
    throws Exception
{
  Injector injector = new Bootstrap(
      binder -> httpClientBinder(binder).bindHttpClient("foo", FooClient.class))
      .quiet()
      .strictConfig()
      .initialize();
  assertNotNull(injector.getInstance(Key.get(HttpClient.class, FooClient.class)));
}

代码示例来源:origin: io.airlift/rack-experimental

@Test
public void testAnnouncement()
    throws Exception
  Bootstrap app = new Bootstrap(
      new TestingHttpServerModule(),
      new RackModule(),
      new TestingNodeModule(),
      new TestingDiscoveryModule());
      .strictConfig()
      .doNotInitializeLogging()
      .setRequiredConfigurationProperty("rackserver.rack-config-path", Resources.getResource("test/raw/config.ru").getFile())
      .setRequiredConfigurationProperty("rackserver.announcement", "racktest")
      .initialize();
  lifeCycleManager = injector.getInstance(LifeCycleManager.class);
  injector.getInstance(Announcer.class).start();
  List<ServiceDescriptor> descriptors = lookupClient.getServices("racktest").get().getServiceDescriptors();
  assertEquals(descriptors.size(), 1);
  ServiceDescriptor descriptor = Iterables.getOnlyElement(descriptors);
  assertEquals(descriptor.getProperties(), announcement.getProperties());

代码示例来源:origin: io.airlift/bootstrap

@Test
public void testRequiresExplicitBindings()
    throws Exception
{
  Bootstrap bootstrap = new Bootstrap();
  try {
    bootstrap.initialize().getInstance(Instance.class);
    fail("should require explicit bindings");
  }
  catch (ConfigurationException e) {
    assertContains(e.getErrorMessages().iterator().next().getMessage(), "Explicit bindings are required");
  }
}

代码示例来源:origin: airlift/airlift

@Test
public void testClientShutdown()
    throws Exception
{
  Injector injector = new Bootstrap(
      binder -> {
        httpClientBinder(binder).bindHttpClient("foo", FooClient.class);
        httpClientBinder(binder).bindHttpClient("bar", BarClient.class);
      })
      .quiet()
      .strictConfig()
      .initialize();
  HttpClient fooClient = injector.getInstance(Key.get(HttpClient.class, FooClient.class));
  HttpClient barClient = injector.getInstance(Key.get(HttpClient.class, BarClient.class));
  assertFalse(fooClient.isClosed());
  assertFalse(barClient.isClosed());
  injector.getInstance(LifeCycleManager.class).stop();
  assertTrue(fooClient.isClosed());
  assertTrue(barClient.isClosed());
}

代码示例来源:origin: io.airlift.drift/drift-transport-netty

@Test
  public void test()
      throws Exception
  {
    Annotation clientAnnotation = named("test");
    Bootstrap bootstrap = new Bootstrap(
        new DriftNettyClientModule(),
        binder -> configBinder(binder).bindConfig(DriftClientConfig.class, clientAnnotation, "prefix"));

    Injector injector = bootstrap
        .doNotInitializeLogging()
        .strictConfig()
        .initialize();

    assertNotNull(injector.getInstance(Key.get(new TypeLiteral<MethodInvokerFactory<Annotation>>() {})));
    assertNotNull(injector.getInstance(Key.get(DriftClientConfig.class, clientAnnotation)));
    assertNotNull(injector.getInstance(Key.get(DriftNettyClientConfig.class, clientAnnotation)));
  }
}

代码示例来源:origin: io.airlift.discovery/discovery-server

@Test
public void testDynamicAnnouncement()
    throws Exception
      .build();
  Bootstrap bootstrap = new Bootstrap(
      new TestingNodeModule("testing", "red"),
      new JsonModule(),
      new DiscoveryModule());
      .strictConfig()
      .doNotInitializeLogging()
      .setRequiredConfigurationProperties(announcerProperties)
      .initialize();
      .build();
  DiscoveryAnnouncementClient client = announcerInjector.getInstance(DiscoveryAnnouncementClient.class);
  client.announce(ImmutableSet.of(announcement)).get();
  NodeInfo announcerNodeInfo = announcerInjector.getInstance(NodeInfo.class);
  assertEquals(services.size(), 1);

代码示例来源:origin: com.facebook.swift/swift-service

@Test
  public void testGuiceInjection()
    throws Exception
  {
    Bootstrap bootstrap = new Bootstrap(new Module() {

      @Override
      public void configure(Binder binder)
      {
        configBinder(binder).bindConfig(ThriftClientConfig.class);
      }
    });

    Map<String, String> properties = ImmutableMap.of();

    Injector injector = bootstrap.doNotInitializeLogging()
            .strictConfig()
            .setRequiredConfigurationProperties(properties)
            .initialize();

    ThriftClientConfig clientConfig = injector.getInstance(ThriftClientConfig.class);
    Assert.assertNotNull(clientConfig);

  }
}

代码示例来源:origin: prestodb/presto

.addAll(getAdditionalModules());
Bootstrap app = new Bootstrap(builder.build());
Injector injector;
try {
  injector = app.strictConfig().initialize();
  VerifierConfig config = injector.getInstance(VerifierConfig.class);
  injector.injectMembers(this);
  Set<String> supportedEventClients = injector.getInstance(Key.get(new TypeLiteral<Set<String>>() {}, SupportedEventClients.class));
  for (String clientType : config.getEventClients()) {
    checkArgument(supportedEventClients.contains(clientType), "Unsupported event client: %s", clientType);
  Set<EventClient> eventClients = injector.getInstance(Key.get(new TypeLiteral<Set<EventClient>>() {}));

代码示例来源:origin: rakam-io/rakam

public static void main(String[] args)
    throws Throwable {
  if (args.length > 0) {
    System.setProperty("config", args[0]);
  }
  ProxyBootstrap app = new ProxyBootstrap(getModules());
  app.requireExplicitBindings(true);
  Injector injector = app.strictConfig().initialize();
  Set<InjectionHook> hooks = injector.getInstance(
      Key.get(new TypeLiteral<Set<InjectionHook>>() {
      }));
  hooks.forEach(InjectionHook::call);
  HttpServerConfig httpConfig = injector.getInstance(HttpServerConfig.class);
  if (!httpConfig.getDisabled()) {
    WebServiceModule webServiceModule = injector.getInstance(WebServiceModule.class);
    injector.createChildInjector(webServiceModule);
  }
  LOGGER.info("======== SERVER STARTED ========");
}

代码示例来源:origin: airlift/airlift

@Test
public void testWithoutFilters()
    throws Exception
{
  Injector injector = new Bootstrap(
      binder -> httpClientBinder(binder).bindHttpClient("foo", FooClient.class))
      .quiet()
      .strictConfig()
      .initialize();
  assertNotNull(injector.getInstance(Key.get(HttpClient.class, FooClient.class)));
}

代码示例来源:origin: io.airlift/http-server

@Test
public void testGuiceInjectionWithoutFilters()
    throws Exception
{
  DummyServlet servlet = new DummyServlet();
  Bootstrap app = new Bootstrap(
      new TestingNodeModule(),
      new TestingHttpServerModule(),
      binder -> {
        binder.bind(Servlet.class).annotatedWith(TheServlet.class).toInstance(servlet);
        binder.bind(new TypeLiteral<Map<String, String>>() {}).annotatedWith(TheServlet.class).toInstance(ImmutableMap.of());
      });
  Injector injector = app
      .strictConfig()
      .doNotInitializeLogging()
      .initialize();
  LifeCycleManager lifeCycleManager = injector.getInstance(LifeCycleManager.class);
  TestingHttpServer server = injector.getInstance(TestingHttpServer.class);
  try (HttpClient client = new JettyHttpClient(new HttpClientConfig().setConnectTimeout(new Duration(1, SECONDS)))) {
    StatusResponse response = client.execute(prepareGet().setUri(server.getBaseUrl()).build(), createStatusResponseHandler());
    assertEquals(response.getStatusCode(), HttpServletResponse.SC_OK);
    assertEquals(servlet.getCallCount(), 1);
  }
  finally {
    lifeCycleManager.stop();
  }
}

代码示例来源:origin: airlift/airlift

@Test
public void testRequiresExplicitBindings()
    throws Exception
{
  Bootstrap bootstrap = new Bootstrap();
  try {
    bootstrap.initialize().getInstance(Instance.class);
    fail("should require explicit bindings");
  }
  catch (ConfigurationException e) {
    assertContains(e.getErrorMessages().iterator().next().getMessage(), "Explicit bindings are required");
  }
}

代码示例来源:origin: io.airlift/http-client

@Test
public void testClientShutdown()
    throws Exception
{
  Injector injector = new Bootstrap(
      binder -> {
        httpClientBinder(binder).bindHttpClient("foo", FooClient.class);
        httpClientBinder(binder).bindHttpClient("bar", BarClient.class);
      })
      .quiet()
      .strictConfig()
      .initialize();
  HttpClient fooClient = injector.getInstance(Key.get(HttpClient.class, FooClient.class));
  HttpClient barClient = injector.getInstance(Key.get(HttpClient.class, BarClient.class));
  assertFalse(fooClient.isClosed());
  assertFalse(barClient.isClosed());
  injector.getInstance(LifeCycleManager.class).stop();
  assertTrue(fooClient.isClosed());
  assertTrue(barClient.isClosed());
}

代码示例来源:origin: airlift/drift

@Test
  public void test()
      throws Exception
  {
    Annotation clientAnnotation = named("test");
    Bootstrap bootstrap = new Bootstrap(
        new DriftNettyClientModule(),
        binder -> configBinder(binder).bindConfig(DriftClientConfig.class, clientAnnotation, "prefix"));

    Injector injector = bootstrap
        .doNotInitializeLogging()
        .strictConfig()
        .initialize();

    assertNotNull(injector.getInstance(Key.get(new TypeLiteral<MethodInvokerFactory<Annotation>>() {})));
    assertNotNull(injector.getInstance(Key.get(DriftClientConfig.class, clientAnnotation)));
    assertNotNull(injector.getInstance(Key.get(DriftNettyClientConfig.class, clientAnnotation)));
  }
}

代码示例来源:origin: com.facebook.swift/swift-service

@Test
public void testGuiceInjection()
    throws Exception
{
  Bootstrap bootstrap = new Bootstrap(new AbstractModule() {
    @Override
    protected void configure()
    {
      configBinder(binder()).bindConfig(ThriftServerConfig.class);
    }
  });
  Map<String, String> properties = ImmutableMap.of();
  Injector injector =
      bootstrap.doNotInitializeLogging()
      .strictConfig()
      .setRequiredConfigurationProperties(properties)
      .initialize();
  ThriftServerConfig config = injector.getInstance(ThriftServerConfig.class);
  assertNotNull(config);
}

代码示例来源:origin: prestodb/presto

new DiscoveryModule(),
    new HttpServerModule(),
    new JsonModule(),
    new JaxrsModule(true),
    new MBeanModule(),
Bootstrap app = new Bootstrap(modules.build());
  Injector injector = app.strictConfig().initialize();
  injector.getInstance(PluginManager.class).loadPlugins();
  injector.getInstance(StaticCatalogStore.class).loadCatalogs();
      injector.getInstance(Announcer.class),
      injector.getInstance(CatalogManager.class),
      injector.getInstance(ServerConfig.class),

相关文章