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 5851cc31d0c Remove useless DataSourceNodePersistService (#34413)
5851cc31d0c is described below

commit 5851cc31d0c5569f7b790b90f1f727643083f5b3
Author: Liang Zhang <zhangli...@apache.org>
AuthorDate: Mon Jan 20 22:31:38 2025 +0800

    Remove useless DataSourceNodePersistService (#34413)
---
 .../infra/instance/ComputeNodeInstanceContext.java |   1 -
 .../pipeline/core/job/api/PipelineAPIFactory.java  |   2 +-
 .../core/util/PipelineDistributedBarrier.java      |   2 +-
 .../mode/metadata/MetaDataContextManager.java      |  14 +--
 .../mode/metadata/MetaDataContexts.java            |   2 +-
 .../mode/metadata/manager/RuleItemManager.java     |   5 +-
 .../metadata/persist/MetaDataPersistService.java   |   4 -
 .../database/DataSourceNodePersistService.java     | 113 ---------------------
 .../database/DataSourceNodePersistServiceTest.java |  88 ----------------
 9 files changed, 12 insertions(+), 219 deletions(-)

diff --git 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/instance/ComputeNodeInstanceContext.java
 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/instance/ComputeNodeInstanceContext.java
index a3d8cb81b6e..64da77c8c5b 100644
--- 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/instance/ComputeNodeInstanceContext.java
+++ 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/instance/ComputeNodeInstanceContext.java
@@ -48,7 +48,6 @@ public final class ComputeNodeInstanceContext {
     @Getter(AccessLevel.NONE)
     private final AtomicReference<WorkerIdGenerator> workerIdGenerator;
     
-    @Getter(AccessLevel.NONE)
     private final AtomicReference<LockContext> lockContext;
     
     private final ClusterInstanceRegistry clusterInstanceRegistry;
diff --git 
a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/job/api/PipelineAPIFactory.java
 
b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/job/api/PipelineAPIFactory.java
index 19097dc4a69..a941c8a3cc7 100644
--- 
a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/job/api/PipelineAPIFactory.java
+++ 
b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/job/api/PipelineAPIFactory.java
@@ -64,7 +64,7 @@ public final class PipelineAPIFactory {
             @Override
             protected PipelineGovernanceFacade initialize() {
                 ContextManager contextManager = 
PipelineContextManager.getContext(contextKey).getContextManager();
-                return new PipelineGovernanceFacade((ClusterPersistRepository) 
contextManager.getPersistServiceFacade().getMetaDataPersistService().getRepository());
+                return new PipelineGovernanceFacade((ClusterPersistRepository) 
contextManager.getPersistServiceFacade().getRepository());
             }
         }).get();
     }
diff --git 
a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/util/PipelineDistributedBarrier.java
 
b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/util/PipelineDistributedBarrier.java
index 88ddf2a1757..9b34b6f920b 100644
--- 
a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/util/PipelineDistributedBarrier.java
+++ 
b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/util/PipelineDistributedBarrier.java
@@ -163,7 +163,7 @@ public final class PipelineDistributedBarrier {
         
         @Override
         protected ClusterPersistRepository initialize() {
-            return (ClusterPersistRepository) 
PipelineContextManager.getContext(contextKey).getContextManager().getPersistServiceFacade().getMetaDataPersistService().getRepository();
+            return (ClusterPersistRepository) 
PipelineContextManager.getContext(contextKey).getContextManager().getPersistServiceFacade().getRepository();
         }
     }
 }
diff --git 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/MetaDataContextManager.java
 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/MetaDataContextManager.java
index 261ca5735a2..9d225b52ac5 100644
--- 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/MetaDataContextManager.java
+++ 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/MetaDataContextManager.java
@@ -27,6 +27,7 @@ import 
org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
 import 
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
 import org.apache.shardingsphere.infra.metadata.database.rule.RuleMetaData;
 import 
org.apache.shardingsphere.infra.metadata.database.schema.manager.GenericSchemaManager;
+import 
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereSchema;
 import 
org.apache.shardingsphere.infra.metadata.statistics.builder.ShardingSphereStatisticsFactory;
 import org.apache.shardingsphere.infra.rule.builder.global.GlobalRulesBuilder;
 import org.apache.shardingsphere.mode.metadata.factory.MetaDataContextsFactory;
@@ -104,13 +105,12 @@ public class MetaDataContextManager {
     public void forceRefreshDatabaseMetaData(final ShardingSphereDatabase 
database) {
         try {
             metaDataContexts.update(createMetaDataContexts(database));
-            
metaDataContexts.getMetaData().getDatabase(database.getName()).getAllSchemas()
-                    .forEach(each -> {
-                        if (each.isEmpty()) {
-                            
metaDataPersistService.getDatabaseMetaDataFacade().getSchema().add(database.getName(),
 each.getName());
-                        }
-                        
metaDataPersistService.getDatabaseMetaDataFacade().getTable().persist(database.getName(),
 each.getName(), each.getAllTables());
-                    });
+            for (ShardingSphereSchema each : 
metaDataContexts.getMetaData().getDatabase(database.getName()).getAllSchemas()) 
{
+                if (each.isEmpty()) {
+                    
metaDataPersistService.getDatabaseMetaDataFacade().getSchema().add(database.getName(),
 each.getName());
+                }
+                
metaDataPersistService.getDatabaseMetaDataFacade().getTable().persist(database.getName(),
 each.getName(), each.getAllTables());
+            }
         } catch (final SQLException ex) {
             log.error("Refresh database meta data: {} failed", 
database.getName(), ex);
         }
diff --git 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/MetaDataContexts.java
 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/MetaDataContexts.java
index 7c0e7d315af..4eb560c5401 100644
--- 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/MetaDataContexts.java
+++ 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/MetaDataContexts.java
@@ -52,7 +52,7 @@ public final class MetaDataContexts {
     /**
      * Get ShardingSphere statistics.
      *
-     * @return got meta data statistics
+     * @return got statistics
      */
     public ShardingSphereStatistics getStatistics() {
         return statistics.get();
diff --git 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/manager/RuleItemManager.java
 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/manager/RuleItemManager.java
index 8a03e9391d7..f7a971b72d0 100644
--- 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/manager/RuleItemManager.java
+++ 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/manager/RuleItemManager.java
@@ -50,10 +50,9 @@ public final class RuleItemManager {
     @SuppressWarnings({"rawtypes", "unchecked"})
     public void alterRuleItem(final AlterRuleItem alterRuleItem) throws 
SQLException {
         
Preconditions.checkArgument(alterRuleItem.getActiveVersion().equals(metaDataPersistService.getRepository().query(alterRuleItem.getActiveVersionKey())),
-                "Invalid active version: {} of key: {}", 
alterRuleItem.getActiveVersion(), alterRuleItem.getActiveVersionKey());
+                "Invalid active version: %s of key: %s", 
alterRuleItem.getActiveVersion(), alterRuleItem.getActiveVersionKey());
         RuleItemConfigurationChangedProcessor processor = 
TypedSPILoader.getService(RuleItemConfigurationChangedProcessor.class, 
alterRuleItem.getType());
-        String yamlContent = 
metaDataPersistService.getMetaDataVersionPersistService()
-                
.getVersionPathByActiveVersion(alterRuleItem.getActiveVersionKey(), 
alterRuleItem.getActiveVersion());
+        String yamlContent = 
metaDataPersistService.getMetaDataVersionPersistService().getVersionPathByActiveVersion(alterRuleItem.getActiveVersionKey(),
 alterRuleItem.getActiveVersion());
         String databaseName = alterRuleItem.getDatabaseName();
         RuleConfiguration currentRuleConfig = 
processor.findRuleConfiguration(metaDataContexts.getMetaData().getDatabase(databaseName));
         synchronized (this) {
diff --git 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/MetaDataPersistService.java
 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/MetaDataPersistService.java
index bf8cf057374..e01bf1a99e1 100644
--- 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/MetaDataPersistService.java
+++ 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/MetaDataPersistService.java
@@ -30,7 +30,6 @@ import 
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSp
 import org.apache.shardingsphere.infra.rule.ShardingSphereRule;
 import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
 import 
org.apache.shardingsphere.mode.metadata.persist.data.ShardingSphereDataPersistService;
-import 
org.apache.shardingsphere.mode.metadata.persist.service.config.database.DataSourceNodePersistService;
 import 
org.apache.shardingsphere.mode.metadata.persist.service.config.database.DataSourceUnitPersistService;
 import 
org.apache.shardingsphere.mode.metadata.persist.service.config.database.DatabaseRulePersistService;
 import 
org.apache.shardingsphere.mode.metadata.persist.service.config.global.GlobalRulePersistService;
@@ -61,8 +60,6 @@ public final class MetaDataPersistService {
     
     private final DataSourceUnitPersistService dataSourceUnitService;
     
-    private final DataSourceNodePersistService dataSourceNodeService;
-    
     private final DatabaseMetaDataPersistFacade databaseMetaDataFacade;
     
     private final DatabaseRulePersistService databaseRulePersistService;
@@ -77,7 +74,6 @@ public final class MetaDataPersistService {
         this.repository = repository;
         metaDataVersionPersistService = new 
MetaDataVersionPersistService(repository);
         dataSourceUnitService = new DataSourceUnitPersistService(repository);
-        dataSourceNodeService = new DataSourceNodePersistService(repository);
         databaseMetaDataFacade = new DatabaseMetaDataPersistFacade(repository, 
metaDataVersionPersistService);
         databaseRulePersistService = new 
DatabaseRulePersistService(repository);
         globalRuleService = new GlobalRulePersistService(repository, 
metaDataVersionPersistService);
diff --git 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/service/config/database/DataSourceNodePersistService.java
 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/service/config/database/DataSourceNodePersistService.java
deleted file mode 100644
index 9fe12a60217..00000000000
--- 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/service/config/database/DataSourceNodePersistService.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- * 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.mode.metadata.persist.service.config.database;
-
-import com.google.common.base.Strings;
-import 
org.apache.shardingsphere.infra.datasource.pool.props.domain.DataSourcePoolProperties;
-import org.apache.shardingsphere.infra.metadata.version.MetaDataVersion;
-import org.apache.shardingsphere.infra.util.yaml.YamlEngine;
-import 
org.apache.shardingsphere.infra.yaml.config.swapper.resource.YamlDataSourceConfigurationSwapper;
-import 
org.apache.shardingsphere.mode.node.path.metadata.DataSourceMetaDataNodePath;
-import 
org.apache.shardingsphere.mode.metadata.persist.service.version.MetaDataVersionPersistService;
-import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
-
-import java.util.Collection;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-
-/**
- * Data source node persist service.
- */
-public final class DataSourceNodePersistService {
-    
-    private final PersistRepository repository;
-    
-    private final MetaDataVersionPersistService metaDataVersionPersistService;
-    
-    public DataSourceNodePersistService(final PersistRepository repository) {
-        this.repository = repository;
-        metaDataVersionPersistService = new 
MetaDataVersionPersistService(repository);
-    }
-    
-    /**
-     * Load data source pool properties map.
-     *
-     * @param databaseName database name
-     * @return data source pool properties map
-     */
-    @SuppressWarnings("unchecked")
-    public Map<String, DataSourcePoolProperties> load(final String 
databaseName) {
-        Collection<String> childrenKeys = 
repository.getChildrenKeys(DataSourceMetaDataNodePath.getStorageNodesPath(databaseName));
-        Map<String, DataSourcePoolProperties> result = new 
LinkedHashMap<>(childrenKeys.size(), 1F);
-        for (String each : childrenKeys) {
-            String dataSourceValue = 
repository.query(DataSourceMetaDataNodePath.getStorageNodeVersionPath(databaseName,
 each, getDataSourceActiveVersion(databaseName, each)));
-            if (!Strings.isNullOrEmpty(dataSourceValue)) {
-                result.put(each, new 
YamlDataSourceConfigurationSwapper().swapToDataSourcePoolProperties(YamlEngine.unmarshal(dataSourceValue,
 Map.class)));
-            }
-        }
-        return result;
-    }
-    
-    /**
-     * Load data source pool properties.
-     *
-     * @param databaseName database name
-     * @param dataSourceName data source name
-     * @return data source pool properties
-     */
-    @SuppressWarnings("unchecked")
-    public DataSourcePoolProperties load(final String databaseName, final 
String dataSourceName) {
-        String dataSourceValue = 
repository.query(DataSourceMetaDataNodePath.getStorageNodeVersionPath(databaseName,
 dataSourceName, getDataSourceActiveVersion(databaseName, dataSourceName)));
-        return new 
YamlDataSourceConfigurationSwapper().swapToDataSourcePoolProperties(YamlEngine.unmarshal(dataSourceValue,
 Map.class));
-    }
-    
-    /**
-     * Persist data source pool configurations.
-     *
-     * @param databaseName database name
-     * @param dataSourceConfigs data source pool configurations
-     */
-    public void persist(final String databaseName, final Map<String, 
DataSourcePoolProperties> dataSourceConfigs) {
-        for (Entry<String, DataSourcePoolProperties> entry : 
dataSourceConfigs.entrySet()) {
-            String activeVersion = getDataSourceActiveVersion(databaseName, 
entry.getKey());
-            List<String> versions = 
metaDataVersionPersistService.getVersions(DataSourceMetaDataNodePath.getStorageNodeVersionsPath(databaseName,
 entry.getKey()));
-            
repository.persist(DataSourceMetaDataNodePath.getStorageNodeVersionPath(databaseName,
 entry.getKey(), versions.isEmpty()
-                    ? MetaDataVersion.DEFAULT_VERSION
-                    : String.valueOf(Integer.parseInt(versions.get(0)) + 1)), 
YamlEngine.marshal(new 
YamlDataSourceConfigurationSwapper().swapToMap(entry.getValue())));
-            if (Strings.isNullOrEmpty(activeVersion)) {
-                
repository.persist(DataSourceMetaDataNodePath.getStorageNodeActiveVersionPath(databaseName,
 entry.getKey()), MetaDataVersion.DEFAULT_VERSION);
-            }
-        }
-    }
-    
-    private String getDataSourceActiveVersion(final String databaseName, final 
String dataSourceName) {
-        return 
repository.query(DataSourceMetaDataNodePath.getStorageNodeActiveVersionPath(databaseName,
 dataSourceName));
-    }
-    
-    /**
-     * Delete data source pool configuration.
-     *
-     * @param databaseName database name
-     * @param dataSourceName data source name
-     */
-    public void delete(final String databaseName, final String dataSourceName) 
{
-        
repository.delete(DataSourceMetaDataNodePath.getStorageNodePath(databaseName, 
dataSourceName));
-    }
-}
diff --git 
a/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/service/config/database/DataSourceNodePersistServiceTest.java
 
b/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/service/config/database/DataSourceNodePersistServiceTest.java
deleted file mode 100644
index cac42490947..00000000000
--- 
a/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/service/config/database/DataSourceNodePersistServiceTest.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- * 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.mode.metadata.persist.service.config.database;
-
-import 
org.apache.shardingsphere.infra.datasource.pool.props.domain.DataSourcePoolProperties;
-import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.extension.ExtendWith;
-import org.mockito.Mock;
-import org.mockito.junit.jupiter.MockitoExtension;
-
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.LinkedHashMap;
-import java.util.Map;
-
-import static org.hamcrest.CoreMatchers.is;
-import static org.hamcrest.MatcherAssert.assertThat;
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-@ExtendWith(MockitoExtension.class)
-class DataSourceNodePersistServiceTest {
-    
-    private DataSourceNodePersistService dataSourceNodePersistService;
-    
-    @Mock
-    private PersistRepository repository;
-    
-    @BeforeEach
-    void setUp() {
-        dataSourceNodePersistService = new 
DataSourceNodePersistService(repository);
-    }
-    
-    @Test
-    void assertLoad() {
-        
when(repository.getChildrenKeys("/metadata/foo_db/data_sources/nodes")).thenReturn(Arrays.asList("foo_ds",
 "bar_ds"));
-        
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");
-        assertThat(actual.size(), is(1));
-        assertThat(actual.get("foo_ds").getPoolClassName(), 
is("org.apache.shardingsphere.test.fixture.jdbc.MockedDataSource"));
-    }
-    
-    @Test
-    void assertLoadWithDataSourceName() {
-        
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}");
-        DataSourcePoolProperties actual = 
dataSourceNodePersistService.load("foo_db", "foo_ds");
-        assertThat(actual.getPoolClassName(), 
is("org.apache.shardingsphere.test.fixture.jdbc.MockedDataSource"));
-    }
-    
-    @Test
-    void assertPersist() {
-        Map<String, DataSourcePoolProperties> dataSourceConfigs = new 
LinkedHashMap<>(2, 1F);
-        dataSourceConfigs.put("foo_ds", new 
DataSourcePoolProperties("org.apache.shardingsphere.test.fixture.jdbc.MockedDataSource",
 Collections.emptyMap()));
-        dataSourceConfigs.put("bar_ds", new 
DataSourcePoolProperties("org.apache.shardingsphere.test.fixture.jdbc.MockedDataSource",
 Collections.emptyMap()));
-        
when(repository.query("/metadata/foo_db/data_sources/nodes/foo_ds/active_version")).thenReturn("10");
-        
when(repository.getChildrenKeys("/metadata/foo_db/data_sources/nodes/foo_ds/versions")).thenReturn(Collections.singletonList("10"));
-        dataSourceNodePersistService.persist("foo_db", dataSourceConfigs);
-        
verify(repository).persist(eq("/metadata/foo_db/data_sources/nodes/foo_ds/versions/11"),
 any());
-        
verify(repository).persist(eq("/metadata/foo_db/data_sources/nodes/bar_ds/versions/0"),
 any());
-    }
-    
-    @Test
-    void assertDelete() {
-        dataSourceNodePersistService.delete("foo_db", "foo_ds");
-        
verify(repository).delete("/metadata/foo_db/data_sources/nodes/foo_ds");
-    }
-}

Reply via email to