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

xiaoyu 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 8ddfdf8  Move ShardingSphereMetaData.close() method to 
ShardingSphereResource class (#8047)
8ddfdf8 is described below

commit 8ddfdf8cba8bf73a522e8612d29e2b54205e222a
Author: Liang Zhang <[email protected]>
AuthorDate: Fri Nov 6 14:02:01 2020 +0800

    Move ShardingSphereMetaData.close() method to ShardingSphereResource class 
(#8047)
---
 .../context/schema/GovernanceSchemaContexts.java   |  4 +-
 .../infra/metadata/ShardingSphereMetaData.java     | 25 ---------
 .../metadata/resource/ShardingSphereResource.java  | 25 +++++++++
 .../infra/metadata/ShardingSphereMetaDataTest.java | 39 +------------
 .../resource/ShardingSphereResourceTest.java       | 65 ++++++++++++++++++++++
 5 files changed, 93 insertions(+), 65 deletions(-)

diff --git 
a/shardingsphere-governance/shardingsphere-governance-core/shardingsphere-governance-core-context/src/main/java/org/apache/shardingsphere/governance/context/schema/GovernanceSchemaContexts.java
 
b/shardingsphere-governance/shardingsphere-governance-core/shardingsphere-governance-core-context/src/main/java/org/apache/shardingsphere/governance/context/schema/GovernanceSchemaContexts.java
index 29ba2b3..02087c0 100644
--- 
a/shardingsphere-governance/shardingsphere-governance-core/shardingsphere-governance-core-context/src/main/java/org/apache/shardingsphere/governance/context/schema/GovernanceSchemaContexts.java
+++ 
b/shardingsphere-governance/shardingsphere-governance-core/shardingsphere-governance-core-context/src/main/java/org/apache/shardingsphere/governance/context/schema/GovernanceSchemaContexts.java
@@ -313,8 +313,8 @@ public final class GovernanceSchemaContexts implements 
SchemaContexts {
     private ShardingSphereMetaData getChangedMetaData(final 
ShardingSphereMetaData oldMetaData, final Map<String, DataSourceConfiguration> 
newDataSourceConfigs) throws SQLException {
         Collection<String> deletedDataSources = 
getDeletedDataSources(oldMetaData, newDataSourceConfigs);
         Map<String, DataSource> modifiedDataSources = 
getModifiedDataSources(oldMetaData, newDataSourceConfigs);
-        oldMetaData.closeDataSources(deletedDataSources);
-        oldMetaData.closeDataSources(modifiedDataSources.keySet());
+        oldMetaData.getResource().close(deletedDataSources);
+        oldMetaData.getResource().close(modifiedDataSources.keySet());
         Map<String, Map<String, DataSource>> dataSourcesMap = 
Collections.singletonMap(oldMetaData.getName(), 
                 getNewDataSources(oldMetaData.getResource().getDataSources(), 
getAddedDataSources(oldMetaData, newDataSourceConfigs), modifiedDataSources, 
deletedDataSources));
         return new SchemaContextsBuilder(schemaContexts.getDatabaseType(), 
dataSourcesMap,
diff --git 
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/ShardingSphereMetaData.java
 
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/ShardingSphereMetaData.java
index a065517..b1fae59 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/ShardingSphereMetaData.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/ShardingSphereMetaData.java
@@ -24,8 +24,6 @@ import 
org.apache.shardingsphere.infra.metadata.resource.ShardingSphereResource;
 import org.apache.shardingsphere.infra.rule.ShardingSphereRule;
 import org.apache.shardingsphere.infra.schema.model.ShardingSphereSchema;
 
-import javax.sql.DataSource;
-import java.sql.SQLException;
 import java.util.Collection;
 
 /**
@@ -53,27 +51,4 @@ public final class ShardingSphereMetaData {
     public boolean isComplete() {
         return !rules.isEmpty() && !resource.getDataSources().isEmpty();
     }
-    
-    /**
-     * Close data sources.
-     * @param dataSources data sources
-     * @throws SQLException exception
-     */
-    public void closeDataSources(final Collection<String> dataSources) throws 
SQLException {
-        for (String each :dataSources) {
-            close(resource.getDataSources().get(each));
-        }
-    }
-    
-    private void close(final DataSource dataSource) throws SQLException {
-        if (dataSource instanceof AutoCloseable) {
-            try {
-                ((AutoCloseable) dataSource).close();
-            // CHECKSTYLE:OFF
-            } catch (final Exception e) {
-            // CHECKSTYLE:ON
-                throw new SQLException(e);
-            }
-        }
-    }
 }
diff --git 
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/resource/ShardingSphereResource.java
 
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/resource/ShardingSphereResource.java
index 472ddd6..a758018 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/resource/ShardingSphereResource.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/resource/ShardingSphereResource.java
@@ -23,6 +23,8 @@ import 
org.apache.shardingsphere.infra.schema.model.datasource.CachedDatabaseMet
 import 
org.apache.shardingsphere.infra.schema.model.datasource.DataSourcesMetaData;
 
 import javax.sql.DataSource;
+import java.sql.SQLException;
+import java.util.Collection;
 import java.util.Map;
 
 /**
@@ -37,4 +39,27 @@ public final class ShardingSphereResource {
     private final DataSourcesMetaData dataSourcesMetaData;
     
     private final CachedDatabaseMetaData cachedDatabaseMetaData;
+    
+    /**
+     * Close data sources.
+     * @param dataSources data sources to be closed
+     * @throws SQLException exception
+     */
+    public void close(final Collection<String> dataSources) throws 
SQLException {
+        for (String each :dataSources) {
+            close(this.dataSources.get(each));
+        }
+    }
+    
+    private void close(final DataSource dataSource) throws SQLException {
+        if (dataSource instanceof AutoCloseable) {
+            try {
+                ((AutoCloseable) dataSource).close();
+                // CHECKSTYLE:OFF
+            } catch (final Exception ex) {
+                // CHECKSTYLE:ON
+                throw new SQLException(ex);
+            }
+        }
+    }
 }
diff --git 
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/ShardingSphereMetaDataTest.java
 
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/ShardingSphereMetaDataTest.java
index 0189541..dc1ffe9 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/ShardingSphereMetaDataTest.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/ShardingSphereMetaDataTest.java
@@ -19,42 +19,21 @@ package org.apache.shardingsphere.infra.metadata;
 
 import org.apache.shardingsphere.infra.config.RuleConfiguration;
 import 
org.apache.shardingsphere.infra.metadata.resource.ShardingSphereResource;
-import 
org.apache.shardingsphere.infra.schema.fixture.datasource.CloseableDataSource;
-import org.apache.shardingsphere.infra.schema.model.ShardingSphereSchema;
 import org.apache.shardingsphere.infra.rule.ShardingSphereRule;
+import org.apache.shardingsphere.infra.schema.model.ShardingSphereSchema;
 import 
org.apache.shardingsphere.infra.schema.model.datasource.CachedDatabaseMetaData;
 import 
org.apache.shardingsphere.infra.schema.model.datasource.DataSourcesMetaData;
 import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.junit.MockitoJUnitRunner;
 
 import javax.sql.DataSource;
-import java.io.IOException;
-import java.sql.SQLException;
-import java.util.Arrays;
 import java.util.Collections;
-import java.util.HashMap;
-import java.util.Map;
 
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
 
-@RunWith(MockitoJUnitRunner.class)
 public final class ShardingSphereMetaDataTest {
     
-    @Mock
-    private CloseableDataSource dataSource0;
-    
-    @Mock
-    private CloseableDataSource dataSource1;
-    
-    @Mock
-    private DataSource dataSource2;
-    
     @Test
     public void assertIsComplete() {
         ShardingSphereResource resource = new 
ShardingSphereResource(Collections.singletonMap("ds", mock(DataSource.class)), 
mock(DataSourcesMetaData.class), mock(CachedDatabaseMetaData.class));
@@ -77,20 +56,4 @@ public final class ShardingSphereMetaDataTest {
                 "name", Collections.singleton(mock(RuleConfiguration.class)), 
Collections.singleton(mock(ShardingSphereRule.class)), resource, 
mock(ShardingSphereSchema.class));
         assertFalse(metaData.isComplete());
     }
-    
-    @Test
-    public void assertCloseDataSources() throws SQLException, IOException {
-        ShardingSphereResource resource = new 
ShardingSphereResource(createDataSources(), mock(DataSourcesMetaData.class), 
mock(CachedDatabaseMetaData.class));
-        new ShardingSphereMetaData("name", Collections.emptyList(), 
Collections.emptyList(), resource, 
mock(ShardingSphereSchema.class)).closeDataSources(Arrays.asList("ds_0", 
"ds_2"));
-        verify(dataSource0).close();
-        verify(dataSource1, times(0)).close();
-    }
-    
-    private Map<String, DataSource> createDataSources() {
-        Map<String, DataSource> result = new HashMap<>(3, 1);
-        result.put("ds_0", dataSource0);
-        result.put("ds_1", dataSource1);
-        result.put("ds_2", dataSource2);
-        return result;
-    }
 }
diff --git 
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/resource/ShardingSphereResourceTest.java
 
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/resource/ShardingSphereResourceTest.java
new file mode 100644
index 0000000..ff2a353
--- /dev/null
+++ 
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/resource/ShardingSphereResourceTest.java
@@ -0,0 +1,65 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.shardingsphere.infra.metadata.resource;
+
+import 
org.apache.shardingsphere.infra.schema.fixture.datasource.CloseableDataSource;
+import 
org.apache.shardingsphere.infra.schema.model.datasource.CachedDatabaseMetaData;
+import 
org.apache.shardingsphere.infra.schema.model.datasource.DataSourcesMetaData;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.junit.MockitoJUnitRunner;
+
+import javax.sql.DataSource;
+import java.io.IOException;
+import java.sql.SQLException;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.Map;
+
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+
+@RunWith(MockitoJUnitRunner.class)
+public final class ShardingSphereResourceTest {
+    
+    @Mock
+    private CloseableDataSource dataSource0;
+    
+    @Mock
+    private CloseableDataSource dataSource1;
+    
+    @Mock
+    private DataSource dataSource2;
+    
+    @Test
+    public void assertClose() throws SQLException, IOException {
+        new ShardingSphereResource(createDataSources(), 
mock(DataSourcesMetaData.class), 
mock(CachedDatabaseMetaData.class)).close(Arrays.asList("ds_0", "ds_2"));
+        verify(dataSource0).close();
+        verify(dataSource1, times(0)).close();
+    }
+    
+    private Map<String, DataSource> createDataSources() {
+        Map<String, DataSource> result = new HashMap<>(3, 1);
+        result.put("ds_0", dataSource0);
+        result.put("ds_1", dataSource1);
+        result.put("ds_2", dataSource2);
+        return result;
+    }
+}

Reply via email to