This is an automated email from the ASF dual-hosted git repository.

panjuan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git


The following commit(s) were added to refs/heads/master by this push:
     new 94b3cc1  Mode auto close to ContextManager (#11897)
94b3cc1 is described below

commit 94b3cc1304d4ea432797285aa31cd5caaf00c9c5
Author: Liang Zhang <[email protected]>
AuthorDate: Thu Aug 19 12:54:03 2021 +0800

    Mode auto close to ContextManager (#11897)
---
 .../governance/context/ClusterContextManager.java             |  6 ++++++
 .../shardingsphere/governance/core/mode/ClusterMode.java      |  5 -----
 .../apache/shardingsphere/infra/mode/ShardingSphereMode.java  |  2 +-
 .../shardingsphere/infra/mode/impl/memory/MemoryMode.java     |  4 ----
 .../infra/mode/impl/standalone/StandaloneMode.java            |  5 -----
 .../shardingsphere/infra/context/manager/ContextManager.java  |  2 +-
 .../infra/context/manager/impl/MemoryContextManager.java      |  5 +++++
 .../infra/context/manager/impl/StandaloneContextManager.java  |  5 +++++
 .../infra/context/metadata/MetaDataContexts.java              |  7 +------
 .../infra/context/metadata/MetaDataContextsTest.java          | 11 -----------
 .../driver/jdbc/core/datasource/ShardingSphereDataSource.java |  3 +--
 .../datasource/GovernanceShardingSphereDataSource.java        |  3 +--
 12 files changed, 21 insertions(+), 37 deletions(-)

diff --git 
a/shardingsphere-governance/shardingsphere-governance-context/src/main/java/org/apache/shardingsphere/governance/context/ClusterContextManager.java
 
b/shardingsphere-governance/shardingsphere-governance-context/src/main/java/org/apache/shardingsphere/governance/context/ClusterContextManager.java
index dfe4e36..19e3236 100644
--- 
a/shardingsphere-governance/shardingsphere-governance-context/src/main/java/org/apache/shardingsphere/governance/context/ClusterContextManager.java
+++ 
b/shardingsphere-governance/shardingsphere-governance-context/src/main/java/org/apache/shardingsphere/governance/context/ClusterContextManager.java
@@ -463,4 +463,10 @@ public final class ClusterContextManager implements 
ContextManager {
     public Optional<ShardingSphereLock> getLock() {
         return Optional.ofNullable(lock);
     }
+    
+    @Override
+    public void close() throws Exception {
+        metaDataContexts.getExecutorEngine().close();
+        registryCenter.getRepository().close();
+    }
 }
diff --git 
a/shardingsphere-governance/shardingsphere-governance-core/src/main/java/org/apache/shardingsphere/governance/core/mode/ClusterMode.java
 
b/shardingsphere-governance/shardingsphere-governance-core/src/main/java/org/apache/shardingsphere/governance/core/mode/ClusterMode.java
index 035d9eb..518524a 100644
--- 
a/shardingsphere-governance/shardingsphere-governance-core/src/main/java/org/apache/shardingsphere/governance/core/mode/ClusterMode.java
+++ 
b/shardingsphere-governance/shardingsphere-governance-core/src/main/java/org/apache/shardingsphere/governance/core/mode/ClusterMode.java
@@ -36,9 +36,4 @@ public final class ClusterMode implements ShardingSphereMode {
     public Optional<PersistRepository> getPersistRepository() {
         return Optional.of(repository);
     }
-    
-    @Override
-    public void close() throws Exception {
-        repository.close();
-    }
 }
diff --git 
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/mode/ShardingSphereMode.java
 
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/mode/ShardingSphereMode.java
index 5dbaa13..a1129d8 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/mode/ShardingSphereMode.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/mode/ShardingSphereMode.java
@@ -24,7 +24,7 @@ import java.util.Optional;
 /**
  * ShardingSphere mode.
  */
-public interface ShardingSphereMode extends AutoCloseable {
+public interface ShardingSphereMode {
     
     /**
      * Get persist repository.
diff --git 
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/mode/impl/memory/MemoryMode.java
 
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/mode/impl/memory/MemoryMode.java
index 2b0656d..32ded6b 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/mode/impl/memory/MemoryMode.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/mode/impl/memory/MemoryMode.java
@@ -31,8 +31,4 @@ public final class MemoryMode implements ShardingSphereMode {
     public Optional<PersistRepository> getPersistRepository() {
         return Optional.empty();
     }
-    
-    @Override
-    public void close() throws Exception {
-    }
 }
diff --git 
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/mode/impl/standalone/StandaloneMode.java
 
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/mode/impl/standalone/StandaloneMode.java
index 6024268..d0a56e6 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/mode/impl/standalone/StandaloneMode.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/mode/impl/standalone/StandaloneMode.java
@@ -35,9 +35,4 @@ public final class StandaloneMode implements 
ShardingSphereMode {
     public Optional<PersistRepository> getPersistRepository() {
         return Optional.of(repository);
     }
-    
-    @Override
-    public void close() throws Exception {
-        repository.close();
-    }
 }
diff --git 
a/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/manager/ContextManager.java
 
b/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/manager/ContextManager.java
index f7883aa..a61f97c 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/manager/ContextManager.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/manager/ContextManager.java
@@ -26,7 +26,7 @@ import java.util.Optional;
 /**
  * Context manager.
  */
-public interface ContextManager {
+public interface ContextManager extends AutoCloseable {
     
     /**
      * Initialize context manager.
diff --git 
a/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/manager/impl/MemoryContextManager.java
 
b/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/manager/impl/MemoryContextManager.java
index 2b6b524..f2da42c 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/manager/impl/MemoryContextManager.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/manager/impl/MemoryContextManager.java
@@ -55,4 +55,9 @@ public final class MemoryContextManager implements 
ContextManager {
     public Optional<ShardingSphereLock> getLock() {
         return Optional.empty();
     }
+    
+    @Override
+    public void close() throws Exception {
+        metaDataContexts.getExecutorEngine().close();
+    }
 }
diff --git 
a/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/manager/impl/StandaloneContextManager.java
 
b/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/manager/impl/StandaloneContextManager.java
index 0a8d183..5d77b42 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/manager/impl/StandaloneContextManager.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/manager/impl/StandaloneContextManager.java
@@ -55,4 +55,9 @@ public final class StandaloneContextManager implements 
ContextManager {
     public Optional<ShardingSphereLock> getLock() {
         return Optional.empty();
     }
+    
+    @Override
+    public void close() throws Exception {
+        metaDataContexts.getExecutorEngine().close();
+    }
 }
diff --git 
a/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/metadata/MetaDataContexts.java
 
b/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/metadata/MetaDataContexts.java
index e0ffcc9..9e3d2fd 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/metadata/MetaDataContexts.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/metadata/MetaDataContexts.java
@@ -39,7 +39,7 @@ import java.util.Properties;
  * Meta data contexts.
  */
 @Getter
-public final class MetaDataContexts implements AutoCloseable {
+public final class MetaDataContexts {
     
     private final DistMetaDataPersistService distMetaDataPersistService;
     
@@ -107,9 +107,4 @@ public final class MetaDataContexts implements 
AutoCloseable {
     public Optional<ShardingSphereLock> getLock() {
         return Optional.empty();
     }
-    
-    @Override
-    public void close() {
-        executorEngine.close();
-    }
 }
diff --git 
a/shardingsphere-infra/shardingsphere-infra-context/src/test/java/org/apache/shardingsphere/infra/context/metadata/MetaDataContextsTest.java
 
b/shardingsphere-infra/shardingsphere-infra-context/src/test/java/org/apache/shardingsphere/infra/context/metadata/MetaDataContextsTest.java
index e3942e8..d76c487 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-context/src/test/java/org/apache/shardingsphere/infra/context/metadata/MetaDataContextsTest.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-context/src/test/java/org/apache/shardingsphere/infra/context/metadata/MetaDataContextsTest.java
@@ -19,7 +19,6 @@ package org.apache.shardingsphere.infra.context.metadata;
 
 import 
org.apache.shardingsphere.infra.config.properties.ConfigurationProperties;
 import org.apache.shardingsphere.infra.database.DefaultSchema;
-import org.apache.shardingsphere.infra.executor.kernel.ExecutorEngine;
 import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
 import 
org.apache.shardingsphere.infra.metadata.rule.ShardingSphereRuleMetaData;
 import org.apache.shardingsphere.infra.optimize.context.OptimizeContextFactory;
@@ -36,7 +35,6 @@ import java.util.Properties;
 import static org.hamcrest.CoreMatchers.is;
 import static org.junit.Assert.assertThat;
 import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.verify;
 
 @RunWith(MockitoJUnitRunner.class)
 public final class MetaDataContextsTest {
@@ -53,13 +51,4 @@ public final class MetaDataContextsTest {
                 mock(ShardingSphereRuleMetaData.class), null, new 
ConfigurationProperties(new Properties()), optimizeContextFactory);
         assertThat(metaDataContexts.getMetaData(DefaultSchema.LOGIC_NAME), 
is(metaData));
     }
-    
-    @Test
-    public void assertClose() {
-        ExecutorEngine executorEngine = mock(ExecutorEngine.class);
-        MetaDataContexts metaDataContexts = new 
MetaDataContexts(mock(DistMetaDataPersistService.class), 
Collections.singletonMap("logic_db", metaData), 
-                mock(ShardingSphereRuleMetaData.class), executorEngine, new 
ConfigurationProperties(new Properties()), optimizeContextFactory);
-        metaDataContexts.close();
-        verify(executorEngine).close();
-    }
 }
diff --git 
a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/datasource/ShardingSphereDataSource.java
 
b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/datasource/ShardingSphereDataSource.java
index de63490..e5dfb51 100644
--- 
a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/datasource/ShardingSphereDataSource.java
+++ 
b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/datasource/ShardingSphereDataSource.java
@@ -101,8 +101,7 @@ public final class ShardingSphereDataSource extends 
AbstractUnsupportedOperation
         for (String each : dataSourceNames) {
             close(getDataSourceMap().get(each));
         }
-        contextManager.getMetaDataContexts().close();
-        mode.close();
+        contextManager.close();
     }
     
     private void close(final DataSource dataSource) throws Exception {
diff --git 
a/shardingsphere-jdbc/shardingsphere-jdbc-governance/src/main/java/org/apache/shardingsphere/driver/governance/internal/datasource/GovernanceShardingSphereDataSource.java
 
b/shardingsphere-jdbc/shardingsphere-jdbc-governance/src/main/java/org/apache/shardingsphere/driver/governance/internal/datasource/GovernanceShardingSphereDataSource.java
index e2909ac..68b130a 100644
--- 
a/shardingsphere-jdbc/shardingsphere-jdbc-governance/src/main/java/org/apache/shardingsphere/driver/governance/internal/datasource/GovernanceShardingSphereDataSource.java
+++ 
b/shardingsphere-jdbc/shardingsphere-jdbc-governance/src/main/java/org/apache/shardingsphere/driver/governance/internal/datasource/GovernanceShardingSphereDataSource.java
@@ -88,8 +88,7 @@ public final class GovernanceShardingSphereDataSource extends 
AbstractUnsupporte
     @Override
     public void close() throws Exception {
         getDataSourceMap().forEach((key, value) -> close(value));
-        contextManager.getMetaDataContexts().close();
-        mode.close();
+        contextManager.close();
     }
     
     private void close(final DataSource dataSource) {

Reply via email to