mirror of https://github.com/apache/druid.git
fix Derby instantiation
This commit is contained in:
parent
8cbd21af90
commit
59f093882d
|
@ -43,9 +43,6 @@ public class MetadataStorageConnectorConfig
|
||||||
@JsonProperty
|
@JsonProperty
|
||||||
private String password = null;
|
private String password = null;
|
||||||
|
|
||||||
@JsonProperty
|
|
||||||
private String validationQuery = "SELECT 1";
|
|
||||||
|
|
||||||
public boolean isCreateTables()
|
public boolean isCreateTables()
|
||||||
{
|
{
|
||||||
return createTables;
|
return createTables;
|
||||||
|
@ -66,7 +63,6 @@ public class MetadataStorageConnectorConfig
|
||||||
if (connectURI == null) {
|
if (connectURI == null) {
|
||||||
return String.format("jdbc:derby://%s:%s/druid;create=true", host, port);
|
return String.format("jdbc:derby://%s:%s/druid;create=true", host, port);
|
||||||
}
|
}
|
||||||
|
|
||||||
return connectURI;
|
return connectURI;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -80,20 +76,14 @@ public class MetadataStorageConnectorConfig
|
||||||
return password;
|
return password;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getValidationQuery()
|
|
||||||
{
|
|
||||||
return validationQuery;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString()
|
public String toString()
|
||||||
{
|
{
|
||||||
return "DbConnectorConfig{" +
|
return "DbConnectorConfig{" +
|
||||||
"createTables=" + createTables +
|
"createTables=" + createTables +
|
||||||
", connectURI='" + connectURI + '\'' +
|
", connectURI='" + getConnectURI() + '\'' +
|
||||||
", user='" + user + '\'' +
|
", user='" + user + '\'' +
|
||||||
", password=****" +
|
", password=****" +
|
||||||
", validationQuery='" + validationQuery + '\'' +
|
|
||||||
'}';
|
'}';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -72,7 +72,7 @@ public class MySQLConnector extends SQLMetadataConnector
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected boolean tableExists(Handle handle, String tableName)
|
public boolean tableExists(Handle handle, String tableName)
|
||||||
{
|
{
|
||||||
return !handle.createQuery("SHOW tables LIKE :tableName")
|
return !handle.createQuery("SHOW tables LIKE :tableName")
|
||||||
.bind("tableName", tableName)
|
.bind("tableName", tableName)
|
||||||
|
|
|
@ -65,7 +65,7 @@ public class PostgreSQLConnector extends SQLMetadataConnector
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected boolean tableExists(final Handle handle, final String tableName)
|
public boolean tableExists(final Handle handle, final String tableName)
|
||||||
{
|
{
|
||||||
return !handle.createQuery(
|
return !handle.createQuery(
|
||||||
"SELECT tablename FROM pg_catalog.pg_tables WHERE schemaname = 'public' AND tablename LIKE :tableName"
|
"SELECT tablename FROM pg_catalog.pg_tables WHERE schemaname = 'public' AND tablename LIKE :tableName"
|
||||||
|
|
|
@ -25,7 +25,6 @@ import com.google.inject.Module;
|
||||||
import io.druid.indexer.MetadataStorageUpdaterJobHandler;
|
import io.druid.indexer.MetadataStorageUpdaterJobHandler;
|
||||||
import io.druid.indexer.SQLMetadataStorageUpdaterJobHandler;
|
import io.druid.indexer.SQLMetadataStorageUpdaterJobHandler;
|
||||||
import io.druid.indexing.overlord.IndexerMetadataStorageCoordinator;
|
import io.druid.indexing.overlord.IndexerMetadataStorageCoordinator;
|
||||||
import io.druid.metadata.MetadataStorage;
|
|
||||||
import io.druid.metadata.MetadataStorageActionHandlerFactory;
|
import io.druid.metadata.MetadataStorageActionHandlerFactory;
|
||||||
import io.druid.metadata.IndexerSQLMetadataStorageCoordinator;
|
import io.druid.metadata.IndexerSQLMetadataStorageCoordinator;
|
||||||
import io.druid.metadata.MetadataRuleManager;
|
import io.druid.metadata.MetadataRuleManager;
|
||||||
|
@ -35,6 +34,8 @@ import io.druid.metadata.MetadataSegmentManagerProvider;
|
||||||
import io.druid.metadata.MetadataSegmentPublisher;
|
import io.druid.metadata.MetadataSegmentPublisher;
|
||||||
import io.druid.metadata.MetadataSegmentPublisherProvider;
|
import io.druid.metadata.MetadataSegmentPublisherProvider;
|
||||||
import io.druid.metadata.MetadataStorageConnector;
|
import io.druid.metadata.MetadataStorageConnector;
|
||||||
|
import io.druid.metadata.MetadataStorageProvider;
|
||||||
|
import io.druid.metadata.NoopMetadataStorageProvider;
|
||||||
import io.druid.metadata.SQLMetadataConnector;
|
import io.druid.metadata.SQLMetadataConnector;
|
||||||
import io.druid.metadata.SQLMetadataRuleManager;
|
import io.druid.metadata.SQLMetadataRuleManager;
|
||||||
import io.druid.metadata.SQLMetadataRuleManagerProvider;
|
import io.druid.metadata.SQLMetadataRuleManagerProvider;
|
||||||
|
@ -64,7 +65,11 @@ public class SQLMetadataStorageDruidModule implements Module
|
||||||
binder, PROPERTY, Key.get(MetadataStorageConnector.class), null, defaultPropertyValue
|
binder, PROPERTY, Key.get(MetadataStorageConnector.class), null, defaultPropertyValue
|
||||||
);
|
);
|
||||||
PolyBind.createChoiceWithDefault(
|
PolyBind.createChoiceWithDefault(
|
||||||
binder, PROPERTY, Key.get(MetadataStorage.class), Key.get(MetadataStorage.class), defaultPropertyValue
|
binder,
|
||||||
|
PROPERTY,
|
||||||
|
Key.get(MetadataStorageProvider.class),
|
||||||
|
Key.get(NoopMetadataStorageProvider.class),
|
||||||
|
defaultPropertyValue
|
||||||
);
|
);
|
||||||
PolyBind.createChoiceWithDefault(
|
PolyBind.createChoiceWithDefault(
|
||||||
binder, PROPERTY, Key.get(SQLMetadataConnector.class), null, defaultPropertyValue
|
binder, PROPERTY, Key.get(SQLMetadataConnector.class), null, defaultPropertyValue
|
||||||
|
|
|
@ -36,7 +36,7 @@ import io.druid.curator.CuratorModule;
|
||||||
import io.druid.curator.discovery.DiscoveryModule;
|
import io.druid.curator.discovery.DiscoveryModule;
|
||||||
import io.druid.guice.AWSModule;
|
import io.druid.guice.AWSModule;
|
||||||
import io.druid.guice.AnnouncerModule;
|
import io.druid.guice.AnnouncerModule;
|
||||||
import io.druid.guice.DerbyMetadataStorageDruidModule;
|
import io.druid.metadata.storage.derby.DerbyMetadataStorageDruidModule;
|
||||||
import io.druid.guice.DruidProcessingModule;
|
import io.druid.guice.DruidProcessingModule;
|
||||||
import io.druid.guice.DruidSecondaryModule;
|
import io.druid.guice.DruidSecondaryModule;
|
||||||
import io.druid.guice.ExtensionsConfig;
|
import io.druid.guice.ExtensionsConfig;
|
||||||
|
|
|
@ -2,9 +2,8 @@ package io.druid.metadata;
|
||||||
|
|
||||||
import com.metamx.common.lifecycle.LifecycleStart;
|
import com.metamx.common.lifecycle.LifecycleStart;
|
||||||
import com.metamx.common.lifecycle.LifecycleStop;
|
import com.metamx.common.lifecycle.LifecycleStop;
|
||||||
|
import io.druid.guice.ManageLifecycle;
|
||||||
|
|
||||||
/**
|
|
||||||
*/
|
|
||||||
public abstract class MetadataStorage
|
public abstract class MetadataStorage
|
||||||
{
|
{
|
||||||
@LifecycleStart
|
@LifecycleStart
|
||||||
|
|
|
@ -0,0 +1,26 @@
|
||||||
|
/*
|
||||||
|
* 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.metadata;
|
||||||
|
|
||||||
|
import com.google.inject.Provider;
|
||||||
|
|
||||||
|
public interface MetadataStorageProvider extends Provider<MetadataStorage>
|
||||||
|
{
|
||||||
|
}
|
|
@ -1,6 +1,6 @@
|
||||||
/*
|
/*
|
||||||
* Druid - a distributed column store.
|
* Druid - a distributed column store.
|
||||||
* Copyright (C) 2012, 2013 Metamarkets Group Inc.
|
* Copyright (C) 2014 Metamarkets Group Inc.
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU General Public License
|
* modify it under the terms of the GNU General Public License
|
||||||
|
@ -19,29 +19,11 @@
|
||||||
|
|
||||||
package io.druid.metadata;
|
package io.druid.metadata;
|
||||||
|
|
||||||
import com.google.api.client.repackaged.com.google.common.base.Throwables;
|
public class NoopMetadataStorageProvider implements MetadataStorageProvider
|
||||||
import org.skife.jdbi.v2.tweak.ConnectionFactory;
|
|
||||||
|
|
||||||
import java.sql.Connection;
|
|
||||||
import java.sql.DriverManager;
|
|
||||||
import java.sql.SQLException;
|
|
||||||
|
|
||||||
public class DerbyConnectionFactory implements ConnectionFactory
|
|
||||||
{
|
{
|
||||||
final private String dbName;
|
@Override
|
||||||
|
public MetadataStorage get()
|
||||||
public DerbyConnectionFactory(String dbName) {
|
{
|
||||||
this.dbName = dbName;
|
return new MetadataStorage() {};
|
||||||
}
|
|
||||||
|
|
||||||
public Connection openConnection() throws SQLException {
|
|
||||||
final String nsURL=String.format("jdbc:derby://localhost:1527/%s;create=true", dbName);
|
|
||||||
try {
|
|
||||||
Class.forName("org.apache.derby.jdbc.ClientDriver");
|
|
||||||
} catch (Exception e) {
|
|
||||||
throw Throwables.propagate(e);
|
|
||||||
}
|
|
||||||
|
|
||||||
return DriverManager.getConnection(nsURL);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -75,7 +75,9 @@ public abstract class SQLMetadataConnector implements MetadataStorageConnector
|
||||||
*/
|
*/
|
||||||
protected abstract String getSerialType();
|
protected abstract String getSerialType();
|
||||||
|
|
||||||
protected abstract boolean tableExists(Handle handle, final String tableName);
|
public String getValidationQuery() { return "SELECT 1"; }
|
||||||
|
|
||||||
|
public abstract boolean tableExists(Handle handle, final String tableName);
|
||||||
|
|
||||||
protected boolean isTransientException(Throwable e) {
|
protected boolean isTransientException(Throwable e) {
|
||||||
return false;
|
return false;
|
||||||
|
@ -367,7 +369,7 @@ public abstract class SQLMetadataConnector implements MetadataStorageConnector
|
||||||
String uri = connectorConfig.getConnectURI();
|
String uri = connectorConfig.getConnectURI();
|
||||||
dataSource.setUrl(uri);
|
dataSource.setUrl(uri);
|
||||||
|
|
||||||
dataSource.setValidationQuery(connectorConfig.getValidationQuery());
|
dataSource.setValidationQuery(getValidationQuery());
|
||||||
dataSource.setTestOnBorrow(true);
|
dataSource.setTestOnBorrow(true);
|
||||||
|
|
||||||
return dataSource;
|
return dataSource;
|
||||||
|
|
|
@ -17,10 +17,13 @@
|
||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package io.druid.metadata;
|
package io.druid.metadata.storage.derby;
|
||||||
|
|
||||||
import com.google.common.base.Supplier;
|
import com.google.common.base.Supplier;
|
||||||
import com.google.inject.Inject;
|
import com.google.inject.Inject;
|
||||||
|
import io.druid.metadata.MetadataStorageConnectorConfig;
|
||||||
|
import io.druid.metadata.MetadataStorageTablesConfig;
|
||||||
|
import io.druid.metadata.SQLMetadataConnector;
|
||||||
import org.apache.commons.dbcp2.BasicDataSource;
|
import org.apache.commons.dbcp2.BasicDataSource;
|
||||||
import org.skife.jdbi.v2.DBI;
|
import org.skife.jdbi.v2.DBI;
|
||||||
import org.skife.jdbi.v2.Handle;
|
import org.skife.jdbi.v2.Handle;
|
||||||
|
@ -53,7 +56,7 @@ public class DerbyConnector extends SQLMetadataConnector
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected boolean tableExists(Handle handle, String tableName)
|
public boolean tableExists(Handle handle, String tableName)
|
||||||
{
|
{
|
||||||
return !handle.createQuery("select * from SYS.SYSTABLES where tablename = :tableName")
|
return !handle.createQuery("select * from SYS.SYSTABLES where tablename = :tableName")
|
||||||
.bind("tableName", tableName.toUpperCase())
|
.bind("tableName", tableName.toUpperCase())
|
||||||
|
@ -69,4 +72,7 @@ public class DerbyConnector extends SQLMetadataConnector
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public DBI getDBI() { return dbi; }
|
public DBI getDBI() { return dbi; }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getValidationQuery() { return "VALUES 1"; }
|
||||||
}
|
}
|
|
@ -17,20 +17,26 @@
|
||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package io.druid.metadata;
|
package io.druid.metadata.storage.derby;
|
||||||
|
|
||||||
import com.google.common.base.Throwables;
|
import com.google.common.base.Throwables;
|
||||||
import com.google.inject.Inject;
|
import com.google.inject.Inject;
|
||||||
import com.metamx.common.lifecycle.LifecycleStart;
|
import com.metamx.common.lifecycle.LifecycleStart;
|
||||||
import com.metamx.common.lifecycle.LifecycleStop;
|
import com.metamx.common.lifecycle.LifecycleStop;
|
||||||
|
import com.metamx.common.logger.Logger;
|
||||||
|
import io.druid.guice.ManageLifecycle;
|
||||||
|
import io.druid.metadata.MetadataStorage;
|
||||||
|
import io.druid.metadata.MetadataStorageConnectorConfig;
|
||||||
import org.apache.derby.drda.NetworkServerControl;
|
import org.apache.derby.drda.NetworkServerControl;
|
||||||
|
|
||||||
import java.net.InetAddress;
|
import java.net.InetAddress;
|
||||||
|
|
||||||
/**
|
|
||||||
*/
|
@ManageLifecycle
|
||||||
public class DerbyMetadataStorage extends MetadataStorage
|
public class DerbyMetadataStorage extends MetadataStorage
|
||||||
{
|
{
|
||||||
|
private static final Logger log = new Logger(DerbyMetadataStorage.class);
|
||||||
|
|
||||||
private final NetworkServerControl server;
|
private final NetworkServerControl server;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
|
@ -50,6 +56,7 @@ public class DerbyMetadataStorage extends MetadataStorage
|
||||||
public void start()
|
public void start()
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
|
log.info("Starting Derby Metadata Storage");
|
||||||
server.start(null);
|
server.start(null);
|
||||||
}
|
}
|
||||||
catch (Exception e) {
|
catch (Exception e) {
|
|
@ -17,14 +17,15 @@
|
||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package io.druid.guice;
|
package io.druid.metadata.storage.derby;
|
||||||
|
|
||||||
import com.google.inject.Binder;
|
import com.google.inject.Binder;
|
||||||
import com.google.inject.Key;
|
import com.google.inject.Key;
|
||||||
import io.druid.metadata.DerbyConnector;
|
import io.druid.guice.LazySingleton;
|
||||||
import io.druid.metadata.DerbyMetadataStorage;
|
import io.druid.guice.PolyBind;
|
||||||
import io.druid.metadata.MetadataStorage;
|
import io.druid.guice.SQLMetadataStorageDruidModule;
|
||||||
import io.druid.metadata.MetadataStorageConnector;
|
import io.druid.metadata.MetadataStorageConnector;
|
||||||
|
import io.druid.metadata.MetadataStorageProvider;
|
||||||
import io.druid.metadata.SQLMetadataConnector;
|
import io.druid.metadata.SQLMetadataConnector;
|
||||||
|
|
||||||
public class DerbyMetadataStorageDruidModule extends SQLMetadataStorageDruidModule
|
public class DerbyMetadataStorageDruidModule extends SQLMetadataStorageDruidModule
|
||||||
|
@ -42,9 +43,9 @@ public class DerbyMetadataStorageDruidModule extends SQLMetadataStorageDruidModu
|
||||||
createBindingChoices(binder, TYPE);
|
createBindingChoices(binder, TYPE);
|
||||||
super.configure(binder);
|
super.configure(binder);
|
||||||
|
|
||||||
PolyBind.optionBinder(binder, Key.get(MetadataStorage.class))
|
PolyBind.optionBinder(binder, Key.get(MetadataStorageProvider.class))
|
||||||
.addBinding(TYPE)
|
.addBinding(TYPE)
|
||||||
.to(DerbyMetadataStorage.class)
|
.to(DerbyMetadataStorageProvider.class)
|
||||||
.in(LazySingleton.class);
|
.in(LazySingleton.class);
|
||||||
|
|
||||||
PolyBind.optionBinder(binder, Key.get(MetadataStorageConnector.class))
|
PolyBind.optionBinder(binder, Key.get(MetadataStorageConnector.class))
|
|
@ -0,0 +1,42 @@
|
||||||
|
/*
|
||||||
|
* 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.metadata.storage.derby;
|
||||||
|
|
||||||
|
import com.google.inject.Inject;
|
||||||
|
import io.druid.metadata.MetadataStorage;
|
||||||
|
import io.druid.metadata.MetadataStorageConnectorConfig;
|
||||||
|
import io.druid.metadata.MetadataStorageProvider;
|
||||||
|
|
||||||
|
public class DerbyMetadataStorageProvider implements MetadataStorageProvider
|
||||||
|
{
|
||||||
|
private final DerbyMetadataStorage storage;
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
public DerbyMetadataStorageProvider(MetadataStorageConnectorConfig config)
|
||||||
|
{
|
||||||
|
this.storage = new DerbyMetadataStorage(config);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public MetadataStorage get()
|
||||||
|
{
|
||||||
|
return storage;
|
||||||
|
}
|
||||||
|
}
|
|
@ -20,6 +20,7 @@
|
||||||
package io.druid.metadata;
|
package io.druid.metadata;
|
||||||
|
|
||||||
import com.google.common.base.Supplier;
|
import com.google.common.base.Supplier;
|
||||||
|
import io.druid.metadata.storage.derby.DerbyConnector;
|
||||||
import org.junit.Assert;
|
import org.junit.Assert;
|
||||||
import org.skife.jdbi.v2.DBI;
|
import org.skife.jdbi.v2.DBI;
|
||||||
import org.skife.jdbi.v2.exceptions.UnableToObtainConnectionException;
|
import org.skife.jdbi.v2.exceptions.UnableToObtainConnectionException;
|
||||||
|
|
|
@ -42,6 +42,7 @@ import io.druid.metadata.MetadataSegmentManager;
|
||||||
import io.druid.metadata.MetadataSegmentManagerConfig;
|
import io.druid.metadata.MetadataSegmentManagerConfig;
|
||||||
import io.druid.metadata.MetadataSegmentManagerProvider;
|
import io.druid.metadata.MetadataSegmentManagerProvider;
|
||||||
import io.druid.metadata.MetadataStorage;
|
import io.druid.metadata.MetadataStorage;
|
||||||
|
import io.druid.metadata.MetadataStorageProvider;
|
||||||
import io.druid.server.coordinator.DruidCoordinator;
|
import io.druid.server.coordinator.DruidCoordinator;
|
||||||
import io.druid.server.coordinator.DruidCoordinatorConfig;
|
import io.druid.server.coordinator.DruidCoordinatorConfig;
|
||||||
import io.druid.server.coordinator.LoadQueueTaskMaster;
|
import io.druid.server.coordinator.LoadQueueTaskMaster;
|
||||||
|
@ -94,7 +95,9 @@ public class CliCoordinator extends ServerRunnable
|
||||||
|
|
||||||
ConfigProvider.bind(binder, DruidCoordinatorConfig.class);
|
ConfigProvider.bind(binder, DruidCoordinatorConfig.class);
|
||||||
|
|
||||||
binder.bind(MetadataStorage.class).in(ManageLifecycle.class);
|
binder.bind(MetadataStorage.class)
|
||||||
|
.toProvider(MetadataStorageProvider.class)
|
||||||
|
.in(ManageLifecycle.class);
|
||||||
|
|
||||||
JsonConfigProvider.bind(binder, "druid.manager.segments", MetadataSegmentManagerConfig.class);
|
JsonConfigProvider.bind(binder, "druid.manager.segments", MetadataSegmentManagerConfig.class);
|
||||||
JsonConfigProvider.bind(binder, "druid.manager.rules", MetadataRuleManagerConfig.class);
|
JsonConfigProvider.bind(binder, "druid.manager.rules", MetadataRuleManagerConfig.class);
|
||||||
|
@ -114,6 +117,7 @@ public class CliCoordinator extends ServerRunnable
|
||||||
|
|
||||||
binder.bind(DruidCoordinator.class);
|
binder.bind(DruidCoordinator.class);
|
||||||
|
|
||||||
|
LifecycleModule.register(binder, MetadataStorage.class);
|
||||||
LifecycleModule.register(binder, DruidCoordinator.class);
|
LifecycleModule.register(binder, DruidCoordinator.class);
|
||||||
|
|
||||||
binder.bind(JettyServerInitializer.class)
|
binder.bind(JettyServerInitializer.class)
|
||||||
|
|
Loading…
Reference in New Issue