From eb26ef4ba9b397ec09545fa5f01fb89b9729d957 Mon Sep 17 00:00:00 2001 From: Krzysztof Sobolewski Date: Fri, 31 Oct 2025 13:40:45 +0100 Subject: [PATCH 1/5] Use ConnectorContextModule in trino-memory --- .../plugin/memory/MemoryConnectorFactory.java | 4 +++- .../io/trino/plugin/memory/MemoryModule.java | 19 ------------------- 2 files changed, 3 insertions(+), 20 deletions(-) diff --git a/plugin/trino-memory/src/main/java/io/trino/plugin/memory/MemoryConnectorFactory.java b/plugin/trino-memory/src/main/java/io/trino/plugin/memory/MemoryConnectorFactory.java index 207b38a9bf86..d40fddfd4a49 100644 --- a/plugin/trino-memory/src/main/java/io/trino/plugin/memory/MemoryConnectorFactory.java +++ b/plugin/trino-memory/src/main/java/io/trino/plugin/memory/MemoryConnectorFactory.java @@ -16,6 +16,7 @@ import com.google.inject.Injector; import io.airlift.bootstrap.Bootstrap; import io.airlift.json.JsonModule; +import io.trino.plugin.base.ConnectorContextModule; import io.trino.spi.connector.Connector; import io.trino.spi.connector.ConnectorContext; import io.trino.spi.connector.ConnectorFactory; @@ -44,7 +45,8 @@ public Connector create(String catalogName, Map requiredConfig, Bootstrap app = new Bootstrap( "io.trino.bootstrap.catalog." + catalogName, new JsonModule(), - new MemoryModule(context.getTypeManager(), context.getCurrentNode(), context.getNodeManager())); + new ConnectorContextModule(catalogName, context), + new MemoryModule()); Injector injector = app .doNotInitializeLogging() diff --git a/plugin/trino-memory/src/main/java/io/trino/plugin/memory/MemoryModule.java b/plugin/trino-memory/src/main/java/io/trino/plugin/memory/MemoryModule.java index d26ca1f9547a..89be8e66cb76 100644 --- a/plugin/trino-memory/src/main/java/io/trino/plugin/memory/MemoryModule.java +++ b/plugin/trino-memory/src/main/java/io/trino/plugin/memory/MemoryModule.java @@ -16,34 +16,15 @@ import com.google.inject.Binder; import com.google.inject.Module; import com.google.inject.Scopes; -import io.trino.spi.Node; -import io.trino.spi.NodeManager; -import io.trino.spi.type.TypeManager; import static io.airlift.configuration.ConfigBinder.configBinder; -import static java.util.Objects.requireNonNull; public class MemoryModule implements Module { - private final TypeManager typeManager; - private final Node currentNode; - private final NodeManager nodeManager; - - public MemoryModule(TypeManager typeManager, Node currentNode, NodeManager nodeManager) - { - this.typeManager = requireNonNull(typeManager, "typeManager is null"); - this.currentNode = requireNonNull(currentNode, "currentNode is null"); - this.nodeManager = requireNonNull(nodeManager, "nodeManager is null"); - } - @Override public void configure(Binder binder) { - binder.bind(TypeManager.class).toInstance(typeManager); - binder.bind(Node.class).toInstance(currentNode); - binder.bind(NodeManager.class).toInstance(nodeManager); - binder.bind(MemoryConnector.class).in(Scopes.SINGLETON); binder.bind(MemoryMetadata.class).in(Scopes.SINGLETON); binder.bind(MemorySplitManager.class).in(Scopes.SINGLETON); From 3f0d4f4b32079b9b84ca210ec323bfda73ae12a6 Mon Sep 17 00:00:00 2001 From: Krzysztof Sobolewski Date: Fri, 31 Oct 2025 13:42:27 +0100 Subject: [PATCH 2/5] Use ConnectorContextModule in trino-tpcds --- .../io/trino/plugin/tpcds/TpcdsConnectorFactory.java | 6 +++++- .../main/java/io/trino/plugin/tpcds/TpcdsModule.java | 10 ---------- 2 files changed, 5 insertions(+), 11 deletions(-) diff --git a/plugin/trino-tpcds/src/main/java/io/trino/plugin/tpcds/TpcdsConnectorFactory.java b/plugin/trino-tpcds/src/main/java/io/trino/plugin/tpcds/TpcdsConnectorFactory.java index d2edb22fdd26..3363b849a4ec 100644 --- a/plugin/trino-tpcds/src/main/java/io/trino/plugin/tpcds/TpcdsConnectorFactory.java +++ b/plugin/trino-tpcds/src/main/java/io/trino/plugin/tpcds/TpcdsConnectorFactory.java @@ -15,6 +15,7 @@ import com.google.inject.Injector; import io.airlift.bootstrap.Bootstrap; +import io.trino.plugin.base.ConnectorContextModule; import io.trino.spi.connector.Connector; import io.trino.spi.connector.ConnectorContext; import io.trino.spi.connector.ConnectorFactory; @@ -37,7 +38,10 @@ public Connector create(String catalogName, Map config, Connecto { checkStrictSpiVersionMatch(context, this); - Bootstrap app = new Bootstrap("io.trino.bootstrap.catalog." + catalogName, new TpcdsModule(context.getNodeManager())); + Bootstrap app = new Bootstrap( + "io.trino.bootstrap.catalog." + catalogName, + new ConnectorContextModule(catalogName, context), + new TpcdsModule()); Injector injector = app .doNotInitializeLogging() diff --git a/plugin/trino-tpcds/src/main/java/io/trino/plugin/tpcds/TpcdsModule.java b/plugin/trino-tpcds/src/main/java/io/trino/plugin/tpcds/TpcdsModule.java index d3a746601b90..5b18dddc512d 100644 --- a/plugin/trino-tpcds/src/main/java/io/trino/plugin/tpcds/TpcdsModule.java +++ b/plugin/trino-tpcds/src/main/java/io/trino/plugin/tpcds/TpcdsModule.java @@ -16,26 +16,16 @@ import com.google.inject.Binder; import com.google.inject.Module; import com.google.inject.Scopes; -import io.trino.spi.NodeManager; import static io.airlift.configuration.ConfigBinder.configBinder; -import static java.util.Objects.requireNonNull; public class TpcdsModule implements Module { - private final NodeManager nodeManager; - - public TpcdsModule(NodeManager nodeManager) - { - this.nodeManager = requireNonNull(nodeManager, "nodeManager is null"); - } - @Override public void configure(Binder binder) { configBinder(binder).bindConfig(TpcdsConfig.class); - binder.bind(NodeManager.class).toInstance(nodeManager); binder.bind(TpcdsSessionProperties.class).in(Scopes.SINGLETON); binder.bind(TpcdsMetadata.class).in(Scopes.SINGLETON); binder.bind(TpcdsSplitManager.class).in(Scopes.SINGLETON); From a44759e63047b33fe0a3724ea17d24e1ddeb83c4 Mon Sep 17 00:00:00 2001 From: Krzysztof Sobolewski Date: Fri, 31 Oct 2025 13:44:06 +0100 Subject: [PATCH 3/5] Remove duplicate binding of NodeManager in trino-tpch This binding is already provided by `ConnectorContextModule`. --- .../java/io/trino/plugin/tpch/TpchConnectorFactory.java | 2 +- .../src/main/java/io/trino/plugin/tpch/TpchModule.java | 7 +------ 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/plugin/trino-tpch/src/main/java/io/trino/plugin/tpch/TpchConnectorFactory.java b/plugin/trino-tpch/src/main/java/io/trino/plugin/tpch/TpchConnectorFactory.java index 7fe4463cd225..8ccbcaa354a3 100644 --- a/plugin/trino-tpch/src/main/java/io/trino/plugin/tpch/TpchConnectorFactory.java +++ b/plugin/trino-tpch/src/main/java/io/trino/plugin/tpch/TpchConnectorFactory.java @@ -65,7 +65,7 @@ public Connector create(String catalogName, Map properties, Conn new ConnectorContextModule(catalogName, context), new MBeanModule(), new JsonModule(), - new TpchModule(context.getNodeManager(), defaultSplitsPerNode, predicatePushdownEnabled), + new TpchModule(defaultSplitsPerNode, predicatePushdownEnabled), new MBeanServerModule()); Injector injector = app diff --git a/plugin/trino-tpch/src/main/java/io/trino/plugin/tpch/TpchModule.java b/plugin/trino-tpch/src/main/java/io/trino/plugin/tpch/TpchModule.java index 38c7530a5a73..61028f1ffa8f 100644 --- a/plugin/trino-tpch/src/main/java/io/trino/plugin/tpch/TpchModule.java +++ b/plugin/trino-tpch/src/main/java/io/trino/plugin/tpch/TpchModule.java @@ -16,7 +16,6 @@ import com.google.inject.Binder; import com.google.inject.Scopes; import io.airlift.configuration.AbstractConfigurationAwareModule; -import io.trino.spi.NodeManager; import io.trino.spi.connector.Connector; import io.trino.spi.connector.ConnectorMetadata; import io.trino.spi.connector.ConnectorNodePartitioningProvider; @@ -24,18 +23,15 @@ import io.trino.spi.connector.ConnectorSplitManager; import static io.airlift.configuration.ConfigBinder.configBinder; -import static java.util.Objects.requireNonNull; public class TpchModule extends AbstractConfigurationAwareModule { - private final NodeManager nodeManager; private final int defaultSplitsPerNode; private final boolean predicatePushdownEnabled; - public TpchModule(NodeManager nodeManager, int defaultSplitsPerNode, boolean predicatePushdownEnabled) + public TpchModule(int defaultSplitsPerNode, boolean predicatePushdownEnabled) { - this.nodeManager = requireNonNull(nodeManager, "nodeManager is null"); this.defaultSplitsPerNode = defaultSplitsPerNode; this.predicatePushdownEnabled = predicatePushdownEnabled; } @@ -43,7 +39,6 @@ public TpchModule(NodeManager nodeManager, int defaultSplitsPerNode, boolean pre @Override protected void setup(Binder binder) { - binder.bind(NodeManager.class).toInstance(nodeManager); binder.bind(Connector.class).to(TpchConnector.class).in(Scopes.SINGLETON); binder.bind(ConnectorMetadata.class).to(TpchMetadata.class).in(Scopes.SINGLETON); binder.bind(ConnectorPageSourceProvider.class).to(TpchPageSourceProvider.class).in(Scopes.SINGLETON); From cfbb914ac883d235999d0909f176128535747dc9 Mon Sep 17 00:00:00 2001 From: Krzysztof Sobolewski Date: Fri, 31 Oct 2025 13:46:58 +0100 Subject: [PATCH 4/5] Remove redundant binding of TypeManager in trino-cassandra This binding is already provided by `ConnectorContextModule`. --- .../io/trino/plugin/cassandra/CassandraClientModule.java | 9 --------- .../plugin/cassandra/CassandraConnectorFactory.java | 2 +- 2 files changed, 1 insertion(+), 10 deletions(-) diff --git a/plugin/trino-cassandra/src/main/java/io/trino/plugin/cassandra/CassandraClientModule.java b/plugin/trino-cassandra/src/main/java/io/trino/plugin/cassandra/CassandraClientModule.java index 36e604d7b5e1..37cafbbce293 100644 --- a/plugin/trino-cassandra/src/main/java/io/trino/plugin/cassandra/CassandraClientModule.java +++ b/plugin/trino-cassandra/src/main/java/io/trino/plugin/cassandra/CassandraClientModule.java @@ -61,18 +61,9 @@ public class CassandraClientModule extends AbstractConfigurationAwareModule { - private final TypeManager typeManager; - - public CassandraClientModule(TypeManager typeManager) - { - this.typeManager = requireNonNull(typeManager, "typeManager is null"); - } - @Override public void setup(Binder binder) { - binder.bind(TypeManager.class).toInstance(typeManager); - verifyConnectorUnsafeAllowed(binder, "cassandra"); binder.bind(CassandraConnector.class).in(Scopes.SINGLETON); diff --git a/plugin/trino-cassandra/src/main/java/io/trino/plugin/cassandra/CassandraConnectorFactory.java b/plugin/trino-cassandra/src/main/java/io/trino/plugin/cassandra/CassandraConnectorFactory.java index c13f51421c82..273427eac06a 100644 --- a/plugin/trino-cassandra/src/main/java/io/trino/plugin/cassandra/CassandraConnectorFactory.java +++ b/plugin/trino-cassandra/src/main/java/io/trino/plugin/cassandra/CassandraConnectorFactory.java @@ -48,7 +48,7 @@ public Connector create(String catalogName, Map config, Connecto new ConnectorContextModule(catalogName, context), new MBeanModule(), new JsonModule(), - new CassandraClientModule(context.getTypeManager()), + new CassandraClientModule(), new MBeanServerModule()); Injector injector = app.doNotInitializeLogging() From 8aa2a84653de100bf0e224cff680456fca52e685 Mon Sep 17 00:00:00 2001 From: Krzysztof Sobolewski Date: Fri, 31 Oct 2025 13:48:30 +0100 Subject: [PATCH 5/5] Use ConnectorContextModule in trino-faker --- .../trino/plugin/faker/FakerConnectorFactory.java | 6 +++++- .../java/io/trino/plugin/faker/FakerModule.java | 13 ------------- 2 files changed, 5 insertions(+), 14 deletions(-) diff --git a/plugin/trino-faker/src/main/java/io/trino/plugin/faker/FakerConnectorFactory.java b/plugin/trino-faker/src/main/java/io/trino/plugin/faker/FakerConnectorFactory.java index 53ba7e61d174..f7d9120419aa 100644 --- a/plugin/trino-faker/src/main/java/io/trino/plugin/faker/FakerConnectorFactory.java +++ b/plugin/trino-faker/src/main/java/io/trino/plugin/faker/FakerConnectorFactory.java @@ -16,6 +16,7 @@ import com.google.inject.Injector; import io.airlift.bootstrap.Bootstrap; +import io.trino.plugin.base.ConnectorContextModule; import io.trino.spi.connector.Connector; import io.trino.spi.connector.ConnectorContext; import io.trino.spi.connector.ConnectorFactory; @@ -48,7 +49,10 @@ public Connector create(String catalogName, Map requiredConfig, requireNonNull(context, "context is null"); checkStrictSpiVersionMatch(context, this); - Bootstrap app = new Bootstrap("io.trino.bootstrap.catalog." + catalogName, new FakerModule(context.getTypeManager())); + Bootstrap app = new Bootstrap( + "io.trino.bootstrap.catalog." + catalogName, + new ConnectorContextModule(catalogName, context), + new FakerModule()); Injector injector = app .doNotInitializeLogging() diff --git a/plugin/trino-faker/src/main/java/io/trino/plugin/faker/FakerModule.java b/plugin/trino-faker/src/main/java/io/trino/plugin/faker/FakerModule.java index c1d5272f8978..e87133b574ff 100644 --- a/plugin/trino-faker/src/main/java/io/trino/plugin/faker/FakerModule.java +++ b/plugin/trino-faker/src/main/java/io/trino/plugin/faker/FakerModule.java @@ -15,30 +15,17 @@ package io.trino.plugin.faker; import com.google.inject.Binder; -import com.google.inject.Inject; import com.google.inject.Module; import com.google.inject.Scopes; -import io.trino.spi.type.TypeManager; import static io.airlift.configuration.ConfigBinder.configBinder; -import static java.util.Objects.requireNonNull; public class FakerModule implements Module { - private final TypeManager typeManager; - - @Inject - public FakerModule(TypeManager typeManager) - { - this.typeManager = requireNonNull(typeManager, "typeManager is null"); - } - @Override public void configure(Binder binder) { - binder.bind(TypeManager.class).toInstance(typeManager); - binder.bind(FakerConnector.class).in(Scopes.SINGLETON); binder.bind(FakerMetadata.class).in(Scopes.SINGLETON); binder.bind(FakerSplitManager.class).in(Scopes.SINGLETON);