This is an automated email from the ASF dual-hosted git repository.
zhangliang 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 036f2e3b1fb Refactor DataSourceNodePersistService (#32989)
036f2e3b1fb is described below
commit 036f2e3b1fb29c12a9d8a44cd5524714bba93383
Author: Liang Zhang <[email protected]>
AuthorDate: Wed Sep 25 00:03:44 2024 +0800
Refactor DataSourceNodePersistService (#32989)
---
.../service/config/database/DataSourceNodePersistService.java | 11 +++++------
.../config/database/DataSourceNodePersistServiceTest.java | 11 ++++++-----
2 files changed, 11 insertions(+), 11 deletions(-)
diff --git
a/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/config/database/DataSourceNodePersistService.java
b/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/config/database/DataSourceNodePersistService.java
index 15b81a1b8f4..442f6c0f4aa 100644
---
a/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/config/database/DataSourceNodePersistService.java
+++
b/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/config/database/DataSourceNodePersistService.java
@@ -31,6 +31,7 @@ import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
+import java.util.Optional;
/**
* Data source node persist service.
@@ -67,13 +68,11 @@ public final class DataSourceNodePersistService {
* @return data source pool configurations
*/
@SuppressWarnings("unchecked")
- public Map<String, DataSourcePoolProperties> load(final String
databaseName, final String name) {
- Map<String, DataSourcePoolProperties> result = new LinkedHashMap<>(1,
1F);
+ public Optional<DataSourcePoolProperties> load(final String databaseName,
final String name) {
String dataSourceValue =
repository.query(DataSourceMetaDataNode.getDataSourceNodeVersionNode(databaseName,
name, getDataSourceActiveVersion(databaseName, name)));
- if (!Strings.isNullOrEmpty(dataSourceValue)) {
- result.put(name, new
YamlDataSourceConfigurationSwapper().swapToDataSourcePoolProperties(YamlEngine.unmarshal(dataSourceValue,
Map.class)));
- }
- return result;
+ return Strings.isNullOrEmpty(dataSourceValue)
+ ? Optional.empty()
+ : Optional.of(new
YamlDataSourceConfigurationSwapper().swapToDataSourcePoolProperties(YamlEngine.unmarshal(dataSourceValue,
Map.class)));
}
/**
diff --git
a/kernel/metadata/core/src/test/java/org/apache/shardingsphere/metadata/persist/service/config/database/DataSourceNodePersistServiceTest.java
b/kernel/metadata/core/src/test/java/org/apache/shardingsphere/metadata/persist/service/config/database/DataSourceNodePersistServiceTest.java
index bfe0d5dbfaf..32e8bac8119 100644
---
a/kernel/metadata/core/src/test/java/org/apache/shardingsphere/metadata/persist/service/config/database/DataSourceNodePersistServiceTest.java
+++
b/kernel/metadata/core/src/test/java/org/apache/shardingsphere/metadata/persist/service/config/database/DataSourceNodePersistServiceTest.java
@@ -29,9 +29,11 @@ import java.util.Arrays;
import java.util.Collections;
import java.util.LinkedHashMap;
import java.util.Map;
+import java.util.Optional;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
+import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.eq;
@@ -65,17 +67,16 @@ class DataSourceNodePersistServiceTest {
void assertLoadWithVersions() {
when(repository.query("/metadata/foo_db/data_sources/nodes/foo_ds/active_version")).thenReturn("10");
when(repository.query("/metadata/foo_db/data_sources/nodes/foo_ds/versions/10")).thenReturn("{dataSourceClassName:
org.apache.shardingsphere.test.fixture.jdbc.MockedDataSource}");
- Map<String, DataSourcePoolProperties> actual =
dataSourceNodePersistService.load("foo_db", "foo_ds");
- assertThat(actual.size(), is(1));
- assertThat(actual.get("foo_ds").getPoolClassName(),
is("org.apache.shardingsphere.test.fixture.jdbc.MockedDataSource"));
+ Optional<DataSourcePoolProperties> actual =
dataSourceNodePersistService.load("foo_db", "foo_ds");
+ assertTrue(actual.isPresent());
+ assertThat(actual.get().getPoolClassName(),
is("org.apache.shardingsphere.test.fixture.jdbc.MockedDataSource"));
}
@Test
void assertLoadWithoutVersions() {
when(repository.query("/metadata/foo_db/data_sources/nodes/foo_ds/active_version")).thenReturn("");
when(repository.query("/metadata/foo_db/data_sources/nodes/foo_ds/versions/")).thenReturn("");
- Map<String, DataSourcePoolProperties> actual =
dataSourceNodePersistService.load("foo_db", "foo_ds");
- assertTrue(actual.isEmpty());
+ assertFalse(dataSourceNodePersistService.load("foo_db",
"foo_ds").isPresent());
}
@Test