mirror of https://github.com/apache/druid.git
simplify connectors even further
This commit is contained in:
parent
df0af894f4
commit
9fea34be4b
|
@ -23,38 +23,29 @@ import com.google.common.collect.ImmutableList;
|
||||||
import com.google.inject.Binder;
|
import com.google.inject.Binder;
|
||||||
import com.google.inject.Key;
|
import com.google.inject.Key;
|
||||||
import com.google.inject.Provides;
|
import com.google.inject.Provides;
|
||||||
import io.druid.db.IndexerSQLMetadataStorageCoordinator;
|
|
||||||
import io.druid.db.MetadataRuleManager;
|
|
||||||
import io.druid.db.MetadataRuleManagerProvider;
|
|
||||||
import io.druid.db.MetadataSegmentManager;
|
|
||||||
import io.druid.db.MetadataSegmentManagerProvider;
|
|
||||||
import io.druid.db.MetadataSegmentPublisherProvider;
|
|
||||||
import io.druid.db.MetadataStorageConnector;
|
import io.druid.db.MetadataStorageConnector;
|
||||||
import io.druid.db.MetadataStorageConnectorConfig;
|
import io.druid.db.MetadataStorageConnectorConfig;
|
||||||
import io.druid.db.MetadataStorageTablesConfig;
|
import io.druid.db.MetadataStorageTablesConfig;
|
||||||
import io.druid.db.SQLMetadataConnector;
|
import io.druid.db.SQLMetadataConnector;
|
||||||
import io.druid.db.SQLMetadataRuleManager;
|
|
||||||
import io.druid.db.SQLMetadataRuleManagerProvider;
|
|
||||||
import io.druid.db.SQLMetadataSegmentManager;
|
|
||||||
import io.druid.db.SQLMetadataSegmentManagerProvider;
|
|
||||||
import io.druid.db.SQLMetadataSegmentPublisher;
|
|
||||||
import io.druid.db.SQLMetadataSegmentPublisherProvider;
|
|
||||||
import io.druid.db.SQLMetadataStorageActionHandlerFactory;
|
|
||||||
import io.druid.guice.JsonConfigProvider;
|
import io.druid.guice.JsonConfigProvider;
|
||||||
import io.druid.guice.LazySingleton;
|
import io.druid.guice.LazySingleton;
|
||||||
import io.druid.guice.PolyBind;
|
import io.druid.guice.PolyBind;
|
||||||
import io.druid.indexer.MetadataStorageUpdaterJobHandler;
|
import io.druid.guice.SQLMetadataStorageDruidModule;
|
||||||
import io.druid.indexer.SQLMetadataStorageUpdaterJobHandler;
|
|
||||||
import io.druid.indexing.overlord.IndexerMetadataStorageCoordinator;
|
|
||||||
import io.druid.indexing.overlord.MetadataStorageActionHandlerFactory;
|
|
||||||
import io.druid.initialization.DruidModule;
|
import io.druid.initialization.DruidModule;
|
||||||
import io.druid.segment.realtime.SegmentPublisher;
|
|
||||||
import org.skife.jdbi.v2.IDBI;
|
import org.skife.jdbi.v2.IDBI;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class MySQLMetadataStorageModule implements DruidModule
|
public class MySQLMetadataStorageModule extends SQLMetadataStorageDruidModule implements DruidModule
|
||||||
{
|
{
|
||||||
|
|
||||||
|
public static final String TYPE = "mysql";
|
||||||
|
|
||||||
|
public MySQLMetadataStorageModule()
|
||||||
|
{
|
||||||
|
super(TYPE);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<? extends com.fasterxml.jackson.databind.Module> getJacksonModules()
|
public List<? extends com.fasterxml.jackson.databind.Module> getJacksonModules()
|
||||||
{
|
{
|
||||||
|
@ -64,6 +55,7 @@ public class MySQLMetadataStorageModule implements DruidModule
|
||||||
@Override
|
@Override
|
||||||
public void configure(Binder binder)
|
public void configure(Binder binder)
|
||||||
{
|
{
|
||||||
|
super.configure(binder);
|
||||||
bindMySQL(binder);
|
bindMySQL(binder);
|
||||||
JsonConfigProvider.bind(binder, "druid.db.tables", MetadataStorageTablesConfig.class);
|
JsonConfigProvider.bind(binder, "druid.db.tables", MetadataStorageTablesConfig.class);
|
||||||
JsonConfigProvider.bind(binder, "druid.db.connector", MetadataStorageConnectorConfig.class);
|
JsonConfigProvider.bind(binder, "druid.db.connector", MetadataStorageConnectorConfig.class);
|
||||||
|
@ -71,59 +63,14 @@ public class MySQLMetadataStorageModule implements DruidModule
|
||||||
|
|
||||||
private void bindMySQL(Binder binder) {
|
private void bindMySQL(Binder binder) {
|
||||||
PolyBind.optionBinder(binder, Key.get(MetadataStorageConnector.class))
|
PolyBind.optionBinder(binder, Key.get(MetadataStorageConnector.class))
|
||||||
.addBinding("mysql")
|
.addBinding(TYPE)
|
||||||
.to(MySQLConnector.class)
|
.to(MySQLConnector.class)
|
||||||
.in(LazySingleton.class);
|
.in(LazySingleton.class);
|
||||||
|
|
||||||
PolyBind.optionBinder(binder, Key.get(SQLMetadataConnector.class))
|
PolyBind.optionBinder(binder, Key.get(SQLMetadataConnector.class))
|
||||||
.addBinding("mysql")
|
.addBinding(TYPE)
|
||||||
.to(MySQLConnector.class)
|
.to(MySQLConnector.class)
|
||||||
.in(LazySingleton.class);
|
.in(LazySingleton.class);
|
||||||
|
|
||||||
PolyBind.optionBinder(binder, Key.get(MetadataSegmentManager.class))
|
|
||||||
.addBinding("mysql")
|
|
||||||
.to(SQLMetadataSegmentManager.class)
|
|
||||||
.in(LazySingleton.class);
|
|
||||||
|
|
||||||
PolyBind.optionBinder(binder, Key.get(MetadataSegmentManagerProvider.class))
|
|
||||||
.addBinding("mysql")
|
|
||||||
.to(SQLMetadataSegmentManagerProvider.class)
|
|
||||||
.in(LazySingleton.class);
|
|
||||||
|
|
||||||
PolyBind.optionBinder(binder, Key.get(MetadataRuleManager.class))
|
|
||||||
.addBinding("mysql")
|
|
||||||
.to(SQLMetadataRuleManager.class)
|
|
||||||
.in(LazySingleton.class);
|
|
||||||
|
|
||||||
PolyBind.optionBinder(binder, Key.get(MetadataRuleManagerProvider.class))
|
|
||||||
.addBinding("mysql")
|
|
||||||
.to(SQLMetadataRuleManagerProvider.class)
|
|
||||||
.in(LazySingleton.class);
|
|
||||||
|
|
||||||
PolyBind.optionBinder(binder, Key.get(SegmentPublisher.class))
|
|
||||||
.addBinding("mysql")
|
|
||||||
.to(SQLMetadataSegmentPublisher.class)
|
|
||||||
.in(LazySingleton.class);
|
|
||||||
|
|
||||||
PolyBind.optionBinder(binder, Key.get(MetadataSegmentPublisherProvider.class))
|
|
||||||
.addBinding("mysql")
|
|
||||||
.to(SQLMetadataSegmentPublisherProvider.class)
|
|
||||||
.in(LazySingleton.class);
|
|
||||||
|
|
||||||
PolyBind.optionBinder(binder, Key.get(MetadataStorageActionHandlerFactory.class))
|
|
||||||
.addBinding("mysql")
|
|
||||||
.to(SQLMetadataStorageActionHandlerFactory.class)
|
|
||||||
.in(LazySingleton.class);
|
|
||||||
|
|
||||||
PolyBind.optionBinder(binder, Key.get(IndexerMetadataStorageCoordinator.class))
|
|
||||||
.addBinding("mysql")
|
|
||||||
.to(IndexerSQLMetadataStorageCoordinator.class)
|
|
||||||
.in(LazySingleton.class);
|
|
||||||
|
|
||||||
PolyBind.optionBinder(binder, Key.get(MetadataStorageUpdaterJobHandler.class))
|
|
||||||
.addBinding("mysql")
|
|
||||||
.to(SQLMetadataStorageUpdaterJobHandler.class)
|
|
||||||
.in(LazySingleton.class);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
|
|
|
@ -23,40 +23,29 @@ import com.google.common.collect.ImmutableList;
|
||||||
import com.google.inject.Binder;
|
import com.google.inject.Binder;
|
||||||
import com.google.inject.Key;
|
import com.google.inject.Key;
|
||||||
import com.google.inject.Provides;
|
import com.google.inject.Provides;
|
||||||
import io.druid.db.IndexerSQLMetadataStorageCoordinator;
|
|
||||||
import io.druid.db.MetadataRuleManager;
|
|
||||||
import io.druid.db.MetadataRuleManagerProvider;
|
|
||||||
import io.druid.db.MetadataSegmentManager;
|
|
||||||
import io.druid.db.MetadataSegmentManagerProvider;
|
|
||||||
import io.druid.db.MetadataSegmentPublisherProvider;
|
|
||||||
import io.druid.db.MetadataStorageConnector;
|
import io.druid.db.MetadataStorageConnector;
|
||||||
import io.druid.db.MetadataStorageConnectorConfig;
|
import io.druid.db.MetadataStorageConnectorConfig;
|
||||||
import io.druid.db.MetadataStorageTablesConfig;
|
import io.druid.db.MetadataStorageTablesConfig;
|
||||||
import io.druid.db.SQLMetadataConnector;
|
import io.druid.db.SQLMetadataConnector;
|
||||||
import io.druid.db.SQLMetadataRuleManager;
|
|
||||||
import io.druid.db.SQLMetadataRuleManagerProvider;
|
|
||||||
import io.druid.db.SQLMetadataSegmentManager;
|
|
||||||
import io.druid.db.SQLMetadataSegmentManagerProvider;
|
|
||||||
import io.druid.db.SQLMetadataSegmentPublisher;
|
|
||||||
import io.druid.db.SQLMetadataSegmentPublisherProvider;
|
|
||||||
import io.druid.db.SQLMetadataStorageActionHandler;
|
|
||||||
import io.druid.db.SQLMetadataStorageActionHandlerFactory;
|
|
||||||
import io.druid.guice.JsonConfigProvider;
|
import io.druid.guice.JsonConfigProvider;
|
||||||
import io.druid.guice.LazySingleton;
|
import io.druid.guice.LazySingleton;
|
||||||
import io.druid.guice.PolyBind;
|
import io.druid.guice.PolyBind;
|
||||||
import io.druid.indexer.MetadataStorageUpdaterJobHandler;
|
import io.druid.guice.SQLMetadataStorageDruidModule;
|
||||||
import io.druid.indexer.SQLMetadataStorageUpdaterJobHandler;
|
|
||||||
import io.druid.indexing.overlord.IndexerMetadataStorageCoordinator;
|
|
||||||
import io.druid.indexing.overlord.MetadataStorageActionHandler;
|
|
||||||
import io.druid.indexing.overlord.MetadataStorageActionHandlerFactory;
|
|
||||||
import io.druid.initialization.DruidModule;
|
import io.druid.initialization.DruidModule;
|
||||||
import io.druid.segment.realtime.SegmentPublisher;
|
|
||||||
import org.skife.jdbi.v2.IDBI;
|
import org.skife.jdbi.v2.IDBI;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class PostgresMetadataStorageModule implements DruidModule
|
public class PostgresMetadataStorageModule extends SQLMetadataStorageDruidModule implements DruidModule
|
||||||
{
|
{
|
||||||
|
|
||||||
|
public static final String TYPE = "postgresql";
|
||||||
|
|
||||||
|
public PostgresMetadataStorageModule()
|
||||||
|
{
|
||||||
|
super(TYPE);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<? extends com.fasterxml.jackson.databind.Module> getJacksonModules()
|
public List<? extends com.fasterxml.jackson.databind.Module> getJacksonModules()
|
||||||
{
|
{
|
||||||
|
@ -73,59 +62,14 @@ public class PostgresMetadataStorageModule implements DruidModule
|
||||||
|
|
||||||
private void bindPostgres(Binder binder) {
|
private void bindPostgres(Binder binder) {
|
||||||
PolyBind.optionBinder(binder, Key.get(MetadataStorageConnector.class))
|
PolyBind.optionBinder(binder, Key.get(MetadataStorageConnector.class))
|
||||||
.addBinding("postgresql")
|
.addBinding(TYPE)
|
||||||
.to(PostgreSQLConnector.class)
|
.to(PostgreSQLConnector.class)
|
||||||
.in(LazySingleton.class);
|
.in(LazySingleton.class);
|
||||||
|
|
||||||
PolyBind.optionBinder(binder, Key.get(SQLMetadataConnector.class))
|
PolyBind.optionBinder(binder, Key.get(SQLMetadataConnector.class))
|
||||||
.addBinding("postgresql")
|
.addBinding(TYPE)
|
||||||
.to(PostgreSQLConnector.class)
|
.to(PostgreSQLConnector.class)
|
||||||
.in(LazySingleton.class);
|
.in(LazySingleton.class);
|
||||||
|
|
||||||
PolyBind.optionBinder(binder, Key.get(MetadataSegmentManager.class))
|
|
||||||
.addBinding("postgresql")
|
|
||||||
.to(SQLMetadataSegmentManager.class)
|
|
||||||
.in(LazySingleton.class);
|
|
||||||
|
|
||||||
PolyBind.optionBinder(binder, Key.get(MetadataSegmentManagerProvider.class))
|
|
||||||
.addBinding("postgresql")
|
|
||||||
.to(SQLMetadataSegmentManagerProvider.class)
|
|
||||||
.in(LazySingleton.class);
|
|
||||||
|
|
||||||
PolyBind.optionBinder(binder, Key.get(MetadataRuleManager.class))
|
|
||||||
.addBinding("postgresql")
|
|
||||||
.to(SQLMetadataRuleManager.class)
|
|
||||||
.in(LazySingleton.class);
|
|
||||||
|
|
||||||
PolyBind.optionBinder(binder, Key.get(MetadataRuleManagerProvider.class))
|
|
||||||
.addBinding("postgresql")
|
|
||||||
.to(SQLMetadataRuleManagerProvider.class)
|
|
||||||
.in(LazySingleton.class);
|
|
||||||
|
|
||||||
PolyBind.optionBinder(binder, Key.get(SegmentPublisher.class))
|
|
||||||
.addBinding("postgresql")
|
|
||||||
.to(SQLMetadataSegmentPublisher.class)
|
|
||||||
.in(LazySingleton.class);
|
|
||||||
|
|
||||||
PolyBind.optionBinder(binder, Key.get(MetadataStorageActionHandlerFactory.class))
|
|
||||||
.addBinding("postgresql")
|
|
||||||
.to(SQLMetadataStorageActionHandlerFactory.class)
|
|
||||||
.in(LazySingleton.class);
|
|
||||||
|
|
||||||
PolyBind.optionBinder(binder, Key.get(MetadataSegmentPublisherProvider.class))
|
|
||||||
.addBinding("postgresql")
|
|
||||||
.to(SQLMetadataSegmentPublisherProvider.class)
|
|
||||||
.in(LazySingleton.class);
|
|
||||||
|
|
||||||
PolyBind.optionBinder(binder, Key.get(MetadataStorageUpdaterJobHandler.class))
|
|
||||||
.addBinding("postgresql")
|
|
||||||
.to(SQLMetadataStorageUpdaterJobHandler.class)
|
|
||||||
.in(LazySingleton.class);
|
|
||||||
|
|
||||||
PolyBind.optionBinder(binder, Key.get(IndexerMetadataStorageCoordinator.class))
|
|
||||||
.addBinding("postgresql")
|
|
||||||
.to(IndexerSQLMetadataStorageCoordinator.class)
|
|
||||||
.in(LazySingleton.class);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
|
|
|
@ -46,106 +46,33 @@ import io.druid.indexing.overlord.MetadataStorageActionHandlerFactory;
|
||||||
import io.druid.segment.realtime.SegmentPublisher;
|
import io.druid.segment.realtime.SegmentPublisher;
|
||||||
import org.skife.jdbi.v2.IDBI;
|
import org.skife.jdbi.v2.IDBI;
|
||||||
|
|
||||||
public class DerbyMetadataStorageDruidModule implements Module
|
public class DerbyMetadataStorageDruidModule extends SQLMetadataStorageDruidModule
|
||||||
{
|
{
|
||||||
|
public DerbyMetadataStorageDruidModule()
|
||||||
|
{
|
||||||
|
super(TYPE);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static final String TYPE = "derby";
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void configure(Binder binder)
|
public void configure(Binder binder)
|
||||||
{
|
{
|
||||||
|
super.configure(binder);
|
||||||
bindDataBaseDerby(binder);
|
bindDataBaseDerby(binder);
|
||||||
PolyBind.createChoice(
|
|
||||||
binder, "druid.db.type", Key.get(MetadataStorageConnector.class), Key.get(DerbyConnector.class)
|
|
||||||
);
|
|
||||||
PolyBind.createChoice(
|
|
||||||
binder, "druid.db.type", Key.get(SQLMetadataConnector.class), Key.get(DerbyConnector.class)
|
|
||||||
);
|
|
||||||
PolyBind.createChoice(
|
|
||||||
binder, "druid.db.type", Key.get(MetadataSegmentManager.class), Key.get(SQLMetadataSegmentManager.class)
|
|
||||||
);
|
|
||||||
PolyBind.createChoice(
|
|
||||||
binder, "druid.db.type", Key.get(MetadataSegmentManagerProvider.class), Key.get(SQLMetadataSegmentManagerProvider.class)
|
|
||||||
);
|
|
||||||
PolyBind.createChoice(
|
|
||||||
binder, "druid.db.type", Key.get(MetadataRuleManager.class), Key.get(SQLMetadataRuleManager.class)
|
|
||||||
);
|
|
||||||
PolyBind.createChoice(
|
|
||||||
binder, "druid.db.type", Key.get(MetadataRuleManagerProvider.class), Key.get(SQLMetadataRuleManagerProvider.class)
|
|
||||||
);
|
|
||||||
PolyBind.createChoice(
|
|
||||||
binder, "druid.db.type", Key.get(SegmentPublisher.class), Key.get(SQLMetadataSegmentPublisher.class)
|
|
||||||
);
|
|
||||||
PolyBind.createChoice(
|
|
||||||
binder, "druid.db.type", Key.get(MetadataSegmentPublisherProvider.class), Key.get(SQLMetadataSegmentPublisherProvider.class)
|
|
||||||
);
|
|
||||||
PolyBind.createChoice(
|
|
||||||
binder, "druid.db.type", Key.get(IndexerMetadataStorageCoordinator.class), Key.get(IndexerSQLMetadataStorageCoordinator.class)
|
|
||||||
);
|
|
||||||
PolyBind.createChoice(
|
|
||||||
binder, "druid.db.type", Key.get(MetadataStorageActionHandlerFactory.class), Key.get(SQLMetadataStorageActionHandlerFactory.class)
|
|
||||||
);
|
|
||||||
PolyBind.createChoice(
|
|
||||||
binder, "druid.db.type", Key.get(MetadataStorageUpdaterJobHandler.class), Key.get(SQLMetadataStorageUpdaterJobHandler.class)
|
|
||||||
);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void bindDataBaseDerby(Binder binder)
|
private static void bindDataBaseDerby(Binder binder)
|
||||||
{
|
{
|
||||||
PolyBind.optionBinder(binder, Key.get(MetadataStorageConnector.class))
|
PolyBind.optionBinder(binder, Key.get(MetadataStorageConnector.class))
|
||||||
.addBinding("derby")
|
.addBinding(TYPE)
|
||||||
.to(DerbyConnector.class)
|
.to(DerbyConnector.class)
|
||||||
.in(LazySingleton.class);
|
.in(LazySingleton.class);
|
||||||
|
|
||||||
PolyBind.optionBinder(binder, Key.get(SQLMetadataConnector.class))
|
PolyBind.optionBinder(binder, Key.get(SQLMetadataConnector.class))
|
||||||
.addBinding("derby")
|
.addBinding(TYPE)
|
||||||
.to(DerbyConnector.class)
|
.to(DerbyConnector.class)
|
||||||
.in(LazySingleton.class);
|
.in(LazySingleton.class);
|
||||||
|
|
||||||
PolyBind.optionBinder(binder, Key.get(MetadataSegmentManager.class))
|
|
||||||
.addBinding("derby")
|
|
||||||
.to(SQLMetadataSegmentManager.class)
|
|
||||||
.in(LazySingleton.class);
|
|
||||||
|
|
||||||
PolyBind.optionBinder(binder, Key.get(MetadataSegmentManagerProvider.class))
|
|
||||||
.addBinding("derby")
|
|
||||||
.to(SQLMetadataSegmentManagerProvider.class)
|
|
||||||
.in(LazySingleton.class);
|
|
||||||
|
|
||||||
PolyBind.optionBinder(binder, Key.get(MetadataRuleManager.class))
|
|
||||||
.addBinding("derby")
|
|
||||||
.to(SQLMetadataRuleManager.class)
|
|
||||||
.in(LazySingleton.class);
|
|
||||||
|
|
||||||
PolyBind.optionBinder(binder, Key.get(MetadataRuleManagerProvider.class))
|
|
||||||
.addBinding("derby")
|
|
||||||
.to(SQLMetadataRuleManagerProvider.class)
|
|
||||||
.in(LazySingleton.class);
|
|
||||||
|
|
||||||
PolyBind.optionBinder(binder, Key.get(SegmentPublisher.class))
|
|
||||||
.addBinding("derby")
|
|
||||||
.to(SQLMetadataSegmentPublisher.class)
|
|
||||||
.in(LazySingleton.class);
|
|
||||||
|
|
||||||
PolyBind.optionBinder(binder, Key.get(MetadataSegmentPublisherProvider.class))
|
|
||||||
.addBinding("derby")
|
|
||||||
.to(SQLMetadataSegmentPublisherProvider.class)
|
|
||||||
.in(LazySingleton.class);
|
|
||||||
|
|
||||||
PolyBind.optionBinder(binder, Key.get(IndexerMetadataStorageCoordinator.class))
|
|
||||||
.addBinding("derby")
|
|
||||||
.to(IndexerSQLMetadataStorageCoordinator.class)
|
|
||||||
.in(LazySingleton.class);
|
|
||||||
|
|
||||||
PolyBind.optionBinder(binder, Key.get(MetadataStorageActionHandlerFactory.class))
|
|
||||||
.addBinding("derby")
|
|
||||||
.to(SQLMetadataStorageActionHandlerFactory.class)
|
|
||||||
.in(LazySingleton.class);
|
|
||||||
|
|
||||||
PolyBind.optionBinder(binder, Key.get(MetadataStorageUpdaterJobHandler.class))
|
|
||||||
.addBinding("derby")
|
|
||||||
.to(SQLMetadataStorageUpdaterJobHandler.class)
|
|
||||||
.in(LazySingleton.class);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
|
|
|
@ -0,0 +1,139 @@
|
||||||
|
/*
|
||||||
|
* Druid - a distributed column store.
|
||||||
|
* Copyright (C) 2014 Metamarkets Group Inc.
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU General Public License
|
||||||
|
* as published by the Free Software Foundation; either version 2
|
||||||
|
* of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package io.druid.guice;
|
||||||
|
|
||||||
|
import com.google.inject.Binder;
|
||||||
|
import com.google.inject.Key;
|
||||||
|
import com.google.inject.Module;
|
||||||
|
import io.druid.db.DefaultSQLMetadataConnector;
|
||||||
|
import io.druid.db.DerbyConnector;
|
||||||
|
import io.druid.db.IndexerSQLMetadataStorageCoordinator;
|
||||||
|
import io.druid.db.MetadataRuleManager;
|
||||||
|
import io.druid.db.MetadataRuleManagerProvider;
|
||||||
|
import io.druid.db.MetadataSegmentManager;
|
||||||
|
import io.druid.db.MetadataSegmentManagerProvider;
|
||||||
|
import io.druid.db.MetadataSegmentPublisherProvider;
|
||||||
|
import io.druid.db.MetadataStorageConnector;
|
||||||
|
import io.druid.db.SQLMetadataConnector;
|
||||||
|
import io.druid.db.SQLMetadataRuleManager;
|
||||||
|
import io.druid.db.SQLMetadataRuleManagerProvider;
|
||||||
|
import io.druid.db.SQLMetadataSegmentManager;
|
||||||
|
import io.druid.db.SQLMetadataSegmentManagerProvider;
|
||||||
|
import io.druid.db.SQLMetadataSegmentPublisher;
|
||||||
|
import io.druid.db.SQLMetadataSegmentPublisherProvider;
|
||||||
|
import io.druid.db.SQLMetadataStorageActionHandlerFactory;
|
||||||
|
import io.druid.indexer.MetadataStorageUpdaterJobHandler;
|
||||||
|
import io.druid.indexer.SQLMetadataStorageUpdaterJobHandler;
|
||||||
|
import io.druid.indexing.overlord.IndexerMetadataStorageCoordinator;
|
||||||
|
import io.druid.indexing.overlord.MetadataStorageActionHandlerFactory;
|
||||||
|
import io.druid.segment.realtime.SegmentPublisher;
|
||||||
|
|
||||||
|
public class SQLMetadataStorageDruidModule implements Module
|
||||||
|
{
|
||||||
|
final String type;
|
||||||
|
|
||||||
|
public SQLMetadataStorageDruidModule(String type)
|
||||||
|
{
|
||||||
|
this.type = type;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void configure(Binder binder)
|
||||||
|
{
|
||||||
|
PolyBind.createChoice(
|
||||||
|
binder, "druid.db.type", Key.get(MetadataStorageConnector.class), null
|
||||||
|
);
|
||||||
|
PolyBind.createChoice(
|
||||||
|
binder, "druid.db.type", Key.get(SQLMetadataConnector.class), null
|
||||||
|
);
|
||||||
|
PolyBind.createChoice(
|
||||||
|
binder, "druid.db.type", Key.get(MetadataSegmentManager.class), Key.get(SQLMetadataSegmentManager.class)
|
||||||
|
);
|
||||||
|
PolyBind.createChoice(
|
||||||
|
binder, "druid.db.type", Key.get(MetadataSegmentManagerProvider.class), Key.get(SQLMetadataSegmentManagerProvider.class)
|
||||||
|
);
|
||||||
|
PolyBind.createChoice(
|
||||||
|
binder, "druid.db.type", Key.get(MetadataRuleManager.class), Key.get(SQLMetadataRuleManager.class)
|
||||||
|
);
|
||||||
|
PolyBind.createChoice(
|
||||||
|
binder, "druid.db.type", Key.get(MetadataRuleManagerProvider.class), Key.get(SQLMetadataRuleManagerProvider.class)
|
||||||
|
);
|
||||||
|
PolyBind.createChoice(
|
||||||
|
binder, "druid.db.type", Key.get(SegmentPublisher.class), Key.get(SQLMetadataSegmentPublisher.class)
|
||||||
|
);
|
||||||
|
PolyBind.createChoice(
|
||||||
|
binder, "druid.db.type", Key.get(MetadataSegmentPublisherProvider.class), Key.get(SQLMetadataSegmentPublisherProvider.class)
|
||||||
|
);
|
||||||
|
PolyBind.createChoice(
|
||||||
|
binder, "druid.db.type", Key.get(IndexerMetadataStorageCoordinator.class), Key.get(IndexerSQLMetadataStorageCoordinator.class)
|
||||||
|
);
|
||||||
|
PolyBind.createChoice(
|
||||||
|
binder, "druid.db.type", Key.get(MetadataStorageActionHandlerFactory.class), Key.get(SQLMetadataStorageActionHandlerFactory.class)
|
||||||
|
);
|
||||||
|
PolyBind.createChoice(
|
||||||
|
binder, "druid.db.type", Key.get(MetadataStorageUpdaterJobHandler.class), Key.get(SQLMetadataStorageUpdaterJobHandler.class)
|
||||||
|
);
|
||||||
|
|
||||||
|
PolyBind.optionBinder(binder, Key.get(MetadataSegmentManager.class))
|
||||||
|
.addBinding(type)
|
||||||
|
.to(SQLMetadataSegmentManager.class)
|
||||||
|
.in(LazySingleton.class);
|
||||||
|
|
||||||
|
PolyBind.optionBinder(binder, Key.get(MetadataSegmentManagerProvider.class))
|
||||||
|
.addBinding(type)
|
||||||
|
.to(SQLMetadataSegmentManagerProvider.class)
|
||||||
|
.in(LazySingleton.class);
|
||||||
|
|
||||||
|
PolyBind.optionBinder(binder, Key.get(MetadataRuleManager.class))
|
||||||
|
.addBinding(type)
|
||||||
|
.to(SQLMetadataRuleManager.class)
|
||||||
|
.in(LazySingleton.class);
|
||||||
|
|
||||||
|
PolyBind.optionBinder(binder, Key.get(MetadataRuleManagerProvider.class))
|
||||||
|
.addBinding(type)
|
||||||
|
.to(SQLMetadataRuleManagerProvider.class)
|
||||||
|
.in(LazySingleton.class);
|
||||||
|
|
||||||
|
PolyBind.optionBinder(binder, Key.get(SegmentPublisher.class))
|
||||||
|
.addBinding(type)
|
||||||
|
.to(SQLMetadataSegmentPublisher.class)
|
||||||
|
.in(LazySingleton.class);
|
||||||
|
|
||||||
|
PolyBind.optionBinder(binder, Key.get(MetadataSegmentPublisherProvider.class))
|
||||||
|
.addBinding(type)
|
||||||
|
.to(SQLMetadataSegmentPublisherProvider.class)
|
||||||
|
.in(LazySingleton.class);
|
||||||
|
|
||||||
|
PolyBind.optionBinder(binder, Key.get(MetadataStorageActionHandlerFactory.class))
|
||||||
|
.addBinding(type)
|
||||||
|
.to(SQLMetadataStorageActionHandlerFactory.class)
|
||||||
|
.in(LazySingleton.class);
|
||||||
|
|
||||||
|
PolyBind.optionBinder(binder, Key.get(IndexerMetadataStorageCoordinator.class))
|
||||||
|
.addBinding(type)
|
||||||
|
.to(IndexerSQLMetadataStorageCoordinator.class)
|
||||||
|
.in(LazySingleton.class);
|
||||||
|
|
||||||
|
PolyBind.optionBinder(binder, Key.get(MetadataStorageUpdaterJobHandler.class))
|
||||||
|
.addBinding(type)
|
||||||
|
.to(SQLMetadataStorageUpdaterJobHandler.class)
|
||||||
|
.in(LazySingleton.class);
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue