You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by xi...@apache.org on 2020/11/06 06:12:59 UTC
[shardingsphere] branch master updated: Move
ShardingSphereMetaData.close() method to ShardingSphereResource class
(#8047)
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 <te...@163.com>
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;
+ }
+}