Skip to content

Commit 3696248

Browse files
committed
Shutdown MongoDB connector properly
1 parent 2c13151 commit 3696248

File tree

3 files changed

+11
-5
lines changed

3 files changed

+11
-5
lines changed

plugin/trino-mongodb/src/main/java/io/trino/plugin/mongodb/MongoClientModule.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
import static com.google.inject.multibindings.OptionalBinder.newOptionalBinder;
3838
import static io.airlift.configuration.ConditionalModule.conditionalModule;
3939
import static io.airlift.configuration.ConfigBinder.configBinder;
40+
import static io.trino.plugin.base.ClosingBinder.closingBinder;
4041
import static java.util.concurrent.TimeUnit.MILLISECONDS;
4142

4243
public class MongoClientModule
@@ -67,6 +68,7 @@ public void setup(Binder binder)
6768
internalBinder -> internalBinder.bind(MongoServerDetailsProvider.class).toInstance(ImmutableList::of),
6869
internalBinder -> internalBinder.bind(MongoServerDetailsProvider.class).to(SessionBasedMongoServerDetailsProvider.class).in(Scopes.SINGLETON)));
6970

71+
closingBinder(binder).registerCloseable(MongoSession.class);
7072
newSetBinder(binder, ConnectorTableFunction.class).addBinding().toProvider(Query.class).in(Scopes.SINGLETON);
7173
}
7274

plugin/trino-mongodb/src/main/java/io/trino/plugin/mongodb/MongoConnector.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515

1616
import com.google.common.collect.ImmutableSet;
1717
import com.google.inject.Inject;
18+
import io.airlift.bootstrap.LifeCycleManager;
1819
import io.trino.plugin.base.session.SessionPropertiesProvider;
1920
import io.trino.spi.connector.Connector;
2021
import io.trino.spi.connector.ConnectorMetadata;
@@ -36,7 +37,7 @@
3637
public class MongoConnector
3738
implements Connector
3839
{
39-
private final MongoSession mongoSession;
40+
private final LifeCycleManager lifeCycleManager;
4041
private final MongoTransactionManager transactionManager;
4142
private final MongoSplitManager splitManager;
4243
private final MongoPageSourceProvider pageSourceProvider;
@@ -46,15 +47,15 @@ public class MongoConnector
4647

4748
@Inject
4849
public MongoConnector(
49-
MongoSession mongoSession,
50+
LifeCycleManager lifeCycleManager,
5051
MongoTransactionManager transactionManager,
5152
MongoSplitManager splitManager,
5253
MongoPageSourceProvider pageSourceProvider,
5354
MongoPageSinkProvider pageSinkProvider,
5455
Set<ConnectorTableFunction> connectorTableFunctions,
5556
Set<SessionPropertiesProvider> sessionPropertiesProviders)
5657
{
57-
this.mongoSession = mongoSession;
58+
this.lifeCycleManager = requireNonNull(lifeCycleManager, "lifeCycleManager is null");
5859
this.transactionManager = requireNonNull(transactionManager, "transactionManager is null");
5960
this.splitManager = requireNonNull(splitManager, "splitManager is null");
6061
this.pageSourceProvider = requireNonNull(pageSourceProvider, "pageSourceProvider is null");
@@ -122,6 +123,6 @@ public List<PropertyMetadata<?>> getSessionProperties()
122123
@Override
123124
public void shutdown()
124125
{
125-
mongoSession.shutdown();
126+
lifeCycleManager.stop();
126127
}
127128
}

plugin/trino-mongodb/src/main/java/io/trino/plugin/mongodb/MongoSession.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@
6969
import org.bson.types.Decimal128;
7070
import org.bson.types.ObjectId;
7171

72+
import java.io.Closeable;
7273
import java.math.BigDecimal;
7374
import java.time.Instant;
7475
import java.time.LocalDate;
@@ -130,6 +131,7 @@
130131
import static java.util.stream.Collectors.toSet;
131132

132133
public class MongoSession
134+
implements Closeable
133135
{
134136
private static final Logger log = Logger.get(MongoSession.class);
135137
private static final Set<String> SYSTEM_DATABASES = Set.of("admin", "local", "config");
@@ -195,7 +197,8 @@ public MongoSession(TypeManager typeManager, MongoClient client, MongoClientConf
195197
.build();
196198
}
197199

198-
public void shutdown()
200+
@Override
201+
public void close()
199202
{
200203
client.close();
201204
}

0 commit comments

Comments
 (0)