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

Reply via email to