001package org.xbib.elasticsearch.http; 002 003import org.elasticsearch.common.collect.ImmutableList; 004import org.elasticsearch.common.inject.AbstractModule; 005import org.elasticsearch.common.inject.Module; 006import org.elasticsearch.common.inject.Modules; 007import org.elasticsearch.common.inject.SpawnModules; 008import org.elasticsearch.common.settings.Settings; 009import org.xbib.elasticsearch.http.netty.NettyWebSocketServerTransportModule; 010 011public class HttpServerModule extends AbstractModule implements SpawnModules { 012 013 private final Settings settings; 014 015 public HttpServerModule(Settings settings) { 016 this.settings = settings; 017 } 018 019 @Override 020 public Iterable<? extends Module> spawnModules() { 021 return ImmutableList.of(Modules.createModule(settings.getAsClass("websocket.type", NettyWebSocketServerTransportModule.class, "org.xbib.elasticsearch.websocket.http.", "HttpServerTransportModule"), settings)); 022 } 023 024 @SuppressWarnings({"unchecked"}) 025 @Override 026 protected void configure() { 027 bind(HttpServer.class).asEagerSingleton(); 028 } 029}