diff --git a/presto-delta/src/main/java/com/facebook/presto/delta/DeltaModule.java b/presto-delta/src/main/java/com/facebook/presto/delta/DeltaModule.java index 92a621f563e27..ebcfd25c4d05e 100644 --- a/presto-delta/src/main/java/com/facebook/presto/delta/DeltaModule.java +++ b/presto-delta/src/main/java/com/facebook/presto/delta/DeltaModule.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.delta; +import com.facebook.airlift.configuration.AbstractConfigurationAwareModule; import com.facebook.presto.cache.CacheConfig; import com.facebook.presto.cache.CacheFactory; import com.facebook.presto.cache.CacheStats; @@ -40,14 +41,16 @@ import com.facebook.presto.hive.metastore.HiveMetastoreCacheStats; import com.facebook.presto.hive.metastore.HivePartitionMutator; import com.facebook.presto.hive.metastore.InMemoryCachingHiveMetastore; +import com.facebook.presto.hive.metastore.InvalidateMetastoreCacheProcedure; import com.facebook.presto.hive.metastore.MetastoreCacheStats; import com.facebook.presto.hive.metastore.MetastoreConfig; +import com.facebook.presto.spi.procedure.Procedure; import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.deser.std.FromStringDeserializer; import com.google.inject.Binder; -import com.google.inject.Module; import com.google.inject.Provides; import com.google.inject.Scopes; +import com.google.inject.multibindings.Multibinder; import javax.inject.Inject; import javax.inject.Singleton; @@ -67,7 +70,7 @@ import static org.weakref.jmx.guice.ExportBinder.newExporter; public class DeltaModule - implements Module + extends AbstractConfigurationAwareModule { private final String connectorId; private final TypeManager typeManager; @@ -79,7 +82,7 @@ public DeltaModule(String connectorId, TypeManager typeManager) } @Override - public void configure(Binder binder) + protected void setup(Binder binder) { binder.bind(TypeManager.class).toInstance(typeManager); configBinder(binder).bindConfig(FileMergeCacheConfig.class); @@ -120,6 +123,11 @@ public void configure(Binder binder) binder.bind(FileFormatDataSourceStats.class).in(Scopes.SINGLETON); newExporter(binder).export(FileFormatDataSourceStats.class).as(generatedNameOf(FileFormatDataSourceStats.class, connectorId)); + + Multibinder procedures = newSetBinder(binder, Procedure.class); + if (buildConfigObject(MetastoreClientConfig.class).isInvalidateMetastoreCacheProcedureEnabled()) { + procedures.addBinding().toProvider(InvalidateMetastoreCacheProcedure.class).in(Scopes.SINGLETON); + } } public static final class TypeDeserializer