Merge pull request #981 from druid-io/strictModuleTyping

Use Module instead of generic Object in Guice related items
This commit is contained in:
Fangjin Yang 2015-01-05 12:43:20 -08:00
commit 852e863425
18 changed files with 41 additions and 49 deletions

View File

@ -92,7 +92,7 @@ public class HadoopDruidIndexerConfig
static { static {
injector = Initialization.makeInjectorWithModules( injector = Initialization.makeInjectorWithModules(
GuiceInjectors.makeStartupInjector(), GuiceInjectors.makeStartupInjector(),
ImmutableList.<Object>of( ImmutableList.<Module>of(
new Module() new Module()
{ {
@Override @Override

View File

@ -19,6 +19,7 @@
package io.druid.guice; package io.druid.guice;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.google.inject.Binder; import com.google.inject.Binder;
import com.google.inject.Guice; import com.google.inject.Guice;
@ -27,15 +28,16 @@ import com.google.inject.Module;
import io.druid.jackson.JacksonModule; import io.druid.jackson.JacksonModule;
import java.util.Arrays; import java.util.Arrays;
import java.util.Collection;
import java.util.List; import java.util.List;
/** /**
*/ */
public class GuiceInjectors public class GuiceInjectors
{ {
public static Injector makeStartupInjector() public static Collection<Module> makeDefaultStartupModules()
{ {
return Guice.createInjector( return ImmutableList.<Module>of(
new DruidGuiceExtensions(), new DruidGuiceExtensions(),
new JacksonModule(), new JacksonModule(),
new PropertiesModule(Arrays.asList("common.runtime.properties", "runtime.properties")), new PropertiesModule(Arrays.asList("common.runtime.properties", "runtime.properties")),
@ -52,29 +54,18 @@ public class GuiceInjectors
); );
} }
public static Injector makeStartupInjectorWithModules(Iterable<Module> modules) public static Injector makeStartupInjector()
{
return Guice.createInjector(makeDefaultStartupModules());
}
public static Injector makeStartupInjectorWithModules(Iterable<? extends Module> modules)
{ {
List<Module> theModules = Lists.newArrayList(); List<Module> theModules = Lists.newArrayList();
theModules.add(new DruidGuiceExtensions()); theModules.addAll(makeDefaultStartupModules());
theModules.add(new JacksonModule());
theModules.add(new PropertiesModule(Arrays.asList("common.runtime.properties", "runtime.properties")));
theModules.add(new ConfigModule());
theModules.add(
new Module()
{
@Override
public void configure(Binder binder)
{
binder.bind(DruidSecondaryModule.class);
JsonConfigProvider.bind(binder, "druid.extensions", ExtensionsConfig.class);
}
}
);
for (Module theModule : modules) { for (Module theModule : modules) {
theModules.add(theModule); theModules.add(theModule);
} }
return Guice.createInjector(theModules); return Guice.createInjector(theModules);
} }
} }

View File

@ -328,7 +328,7 @@ public class Initialization
} }
} }
public static Injector makeInjectorWithModules(final Injector baseInjector, Iterable<Object> modules) public static Injector makeInjectorWithModules(final Injector baseInjector, Iterable<? extends Module> modules)
{ {
final ModuleList defaultModules = new ModuleList(baseInjector); final ModuleList defaultModules = new ModuleList(baseInjector);
defaultModules.addModules( defaultModules.addModules(

View File

@ -102,7 +102,7 @@ public class InitializationTest
{ {
Injector startupInjector = GuiceInjectors.makeStartupInjector(); Injector startupInjector = GuiceInjectors.makeStartupInjector();
Injector injector = Initialization.makeInjectorWithModules( Injector injector = Initialization.makeInjectorWithModules(
startupInjector, ImmutableList.<Object>of( startupInjector, ImmutableList.<com.google.inject.Module>of(
new com.google.inject.Module() new com.google.inject.Module()
{ {
@Override @Override

View File

@ -97,7 +97,7 @@ public class JettyTest
{ {
setProperties(); setProperties();
Injector injector = Initialization.makeInjectorWithModules( Injector injector = Initialization.makeInjectorWithModules(
GuiceInjectors.makeStartupInjector(), ImmutableList.<Object>of( GuiceInjectors.makeStartupInjector(), ImmutableList.<Module>of(
new Module() new Module()
{ {
@Override @Override

View File

@ -62,9 +62,9 @@ public class CliBridge extends ServerRunnable
} }
@Override @Override
protected List<Object> getModules() protected List<? extends Module> getModules()
{ {
return ImmutableList.<Object>of( return ImmutableList.<Module>of(
new Module() new Module()
{ {
@Override @Override

View File

@ -72,9 +72,9 @@ public class CliBroker extends ServerRunnable
} }
@Override @Override
protected List<Object> getModules() protected List<? extends Module> getModules()
{ {
return ImmutableList.<Object>of( return ImmutableList.<Module>of(
new Module() new Module()
{ {
@Override @Override

View File

@ -80,9 +80,9 @@ public class CliCoordinator extends ServerRunnable
} }
@Override @Override
protected List<Object> getModules() protected List<? extends Module> getModules()
{ {
return ImmutableList.<Object>of( return ImmutableList.<Module>of(
new Module() new Module()
{ {
@Override @Override

View File

@ -62,9 +62,9 @@ public class CliHistorical extends ServerRunnable
} }
@Override @Override
protected List<Object> getModules() protected List<? extends Module> getModules()
{ {
return ImmutableList.<Object>of( return ImmutableList.<Module>of(
new Module() new Module()
{ {
@Override @Override

View File

@ -66,9 +66,9 @@ public class CliInternalHadoopIndexer extends GuiceRunnable
} }
@Override @Override
protected List<Object> getModules() protected List<? extends Module> getModules()
{ {
return ImmutableList.<Object>of( return ImmutableList.<Module>of(
new Module() new Module()
{ {
@Override @Override

View File

@ -67,9 +67,9 @@ public class CliMiddleManager extends ServerRunnable
} }
@Override @Override
protected List<Object> getModules() protected List<? extends Module> getModules()
{ {
return ImmutableList.<Object>of( return ImmutableList.<Module>of(
new Module() new Module()
{ {
@Override @Override

View File

@ -105,9 +105,9 @@ public class CliOverlord extends ServerRunnable
} }
@Override @Override
protected List<Object> getModules() protected List<? extends Module> getModules()
{ {
return ImmutableList.<Object>of( return ImmutableList.<Module>of(
new Module() new Module()
{ {
@Override @Override

View File

@ -101,9 +101,9 @@ public class CliPeon extends GuiceRunnable
} }
@Override @Override
protected List<Object> getModules() protected List<? extends Module> getModules()
{ {
return ImmutableList.<Object>of( return ImmutableList.<Module>of(
new Module() new Module()
{ {
@Override @Override

View File

@ -45,9 +45,9 @@ public class CliRealtime extends ServerRunnable
} }
@Override @Override
protected List<Object> getModules() protected List<? extends Module> getModules()
{ {
return ImmutableList.<Object>of( return ImmutableList.<Module>of(
new RealtimeModule(), new RealtimeModule(),
new Module() { new Module() {
@Override @Override

View File

@ -55,9 +55,9 @@ public class CliRealtimeExample extends ServerRunnable
} }
@Override @Override
protected List<Object> getModules() protected List<? extends Module> getModules()
{ {
return ImmutableList.<Object>of( return ImmutableList.<Module>of(
new RealtimeModule(), new RealtimeModule(),
new Module() new Module()
{ {

View File

@ -64,9 +64,9 @@ public class CliRouter extends ServerRunnable
} }
@Override @Override
protected List<Object> getModules() protected List<? extends Module> getModules()
{ {
return ImmutableList.<Object>of( return ImmutableList.<Module>of(
new JettyHttpClientModule("druid.router.http", Router.class), new JettyHttpClientModule("druid.router.http", Router.class),
new Module() new Module()
{ {

View File

@ -62,9 +62,9 @@ public class CreateTables extends GuiceRunnable
} }
@Override @Override
protected List<Object> getModules() protected List<? extends Module> getModules()
{ {
return ImmutableList.<Object>of( return ImmutableList.<Module>of(
new Module() new Module()
{ {
@Override @Override

View File

@ -22,6 +22,7 @@ package io.druid.cli;
import com.google.common.base.Throwables; import com.google.common.base.Throwables;
import com.google.inject.Inject; import com.google.inject.Inject;
import com.google.inject.Injector; import com.google.inject.Injector;
import com.google.inject.Module;
import com.metamx.common.lifecycle.Lifecycle; import com.metamx.common.lifecycle.Lifecycle;
import com.metamx.common.logger.Logger; import com.metamx.common.logger.Logger;
import io.druid.initialization.Initialization; import io.druid.initialization.Initialization;
@ -48,7 +49,7 @@ public abstract class GuiceRunnable implements Runnable
this.baseInjector = injector; this.baseInjector = injector;
} }
protected abstract List<Object> getModules(); protected abstract List<? extends Module> getModules();
public Injector makeInjector() public Injector makeInjector()
{ {