You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by wu...@apache.org on 2021/06/01 12:36:15 UTC

[shardingsphere] branch master updated: Merge DataSourceChangedEvent and DataSourceAlteredEvent (#10608)

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

wuweijie 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 7fef4f0  Merge DataSourceChangedEvent and DataSourceAlteredEvent (#10608)
7fef4f0 is described below

commit 7fef4f0c45ee16e690a68c72dc7732598c94752e
Author: Liang Zhang <te...@163.com>
AuthorDate: Tue Jun 1 20:35:29 2021 +0800

    Merge DataSourceChangedEvent and DataSourceAlteredEvent (#10608)
    
    * Refactor Watcher
    
    * Merge DataSourceChangedEvent and DataSourceAlteredEvent
    
    * For code format
    
    * For code format
    
    * For code format
---
 .../listener/PrivilegeNodeChangedWatcher.java      |  7 ++-
 .../metadata/GovernanceMetaDataContexts.java       |  9 ++--
 .../listener/PrivilegeNodeChangedListenerTest.java |  5 +-
 .../metadata/GovernanceMetaDataContextsTest.java   |  6 +--
 .../event/datasource/DataSourceAddedEvent.java     |  3 +-
 .../event/datasource/DataSourceAlteredEvent.java   |  5 +-
 .../event/datasource/DataSourceChangedEvent.java   | 37 --------------
 .../watcher/impl/GlobalRuleChangedWatcher.java     |  7 ++-
 .../watcher/impl/MetaDataChangedWatcher.java       | 57 ++++++++++++----------
 .../watcher/impl/PropertiesChangedWatcher.java     |  7 ++-
 .../watcher/impl/GlobalRuleChangedWatcherTest.java |  3 +-
 .../watcher/impl/PropertiesChangedWatcherTest.java |  5 +-
 .../api/listener/DataChangedEventListener.java     |  2 +-
 .../GovernanceShardingSphereDataSourceTest.java    | 10 ++--
 .../rdl/impl/DropResourceBackendHandler.java       | 18 +++----
 15 files changed, 71 insertions(+), 110 deletions(-)

diff --git a/shardingsphere-governance/shardingsphere-governance-context/src/main/java/org/apache/shardingsphere/governance/context/authority/listener/PrivilegeNodeChangedWatcher.java b/shardingsphere-governance/shardingsphere-governance-context/src/main/java/org/apache/shardingsphere/governance/context/authority/listener/PrivilegeNodeChangedWatcher.java
index f290f19..f4028c6 100644
--- a/shardingsphere-governance/shardingsphere-governance-context/src/main/java/org/apache/shardingsphere/governance/context/authority/listener/PrivilegeNodeChangedWatcher.java
+++ b/shardingsphere-governance/shardingsphere-governance-context/src/main/java/org/apache/shardingsphere/governance/context/authority/listener/PrivilegeNodeChangedWatcher.java
@@ -18,9 +18,8 @@
 package org.apache.shardingsphere.governance.context.authority.listener;
 
 import org.apache.shardingsphere.governance.context.authority.listener.event.AuthorityChangedEvent;
-import org.apache.shardingsphere.governance.core.registry.watcher.GovernanceWatcher;
-import org.apache.shardingsphere.governance.core.registry.watcher.event.GovernanceEvent;
 import org.apache.shardingsphere.governance.core.registry.service.state.StatesNode;
+import org.apache.shardingsphere.governance.core.registry.watcher.GovernanceWatcher;
 import org.apache.shardingsphere.governance.repository.api.listener.DataChangedEvent;
 import org.apache.shardingsphere.governance.repository.api.listener.DataChangedEvent.Type;
 import org.apache.shardingsphere.infra.metadata.user.yaml.config.YamlUsersConfigurationConverter;
@@ -33,7 +32,7 @@ import java.util.Optional;
 /**
  * Privilege changed watcher.
  */
-public final class PrivilegeNodeChangedWatcher implements GovernanceWatcher<GovernanceEvent> {
+public final class PrivilegeNodeChangedWatcher implements GovernanceWatcher<AuthorityChangedEvent> {
     
     @Override
     public Collection<String> getWatchingKeys(final Collection<String> schemaNames) {
@@ -46,7 +45,7 @@ public final class PrivilegeNodeChangedWatcher implements GovernanceWatcher<Gove
     }
     
     @Override
-    public Optional<GovernanceEvent> createGovernanceEvent(final DataChangedEvent event) {
+    public Optional<AuthorityChangedEvent> createGovernanceEvent(final DataChangedEvent event) {
         return Optional.of(new AuthorityChangedEvent(YamlUsersConfigurationConverter.convertShardingSphereUser(YamlEngine.unmarshal(event.getValue(), Collection.class))));
     }
 }
diff --git a/shardingsphere-governance/shardingsphere-governance-context/src/main/java/org/apache/shardingsphere/governance/context/metadata/GovernanceMetaDataContexts.java b/shardingsphere-governance/shardingsphere-governance-context/src/main/java/org/apache/shardingsphere/governance/context/metadata/GovernanceMetaDataContexts.java
index bf89f7d1..9cfebfe 100644
--- a/shardingsphere-governance/shardingsphere-governance-context/src/main/java/org/apache/shardingsphere/governance/context/metadata/GovernanceMetaDataContexts.java
+++ b/shardingsphere-governance/shardingsphere-governance-context/src/main/java/org/apache/shardingsphere/governance/context/metadata/GovernanceMetaDataContexts.java
@@ -23,8 +23,9 @@ import org.apache.shardingsphere.authority.api.config.AuthorityRuleConfiguration
 import org.apache.shardingsphere.governance.context.authority.listener.event.AuthorityChangedEvent;
 import org.apache.shardingsphere.governance.core.GovernanceFacade;
 import org.apache.shardingsphere.governance.core.lock.ShardingSphereDistributeLock;
+import org.apache.shardingsphere.governance.core.registry.schema.GovernanceSchema;
+import org.apache.shardingsphere.governance.core.registry.watcher.event.datasource.DataSourceAlteredEvent;
 import org.apache.shardingsphere.governance.core.registry.watcher.event.datasource.DataSourceChangeCompletedEvent;
-import org.apache.shardingsphere.governance.core.registry.watcher.event.datasource.DataSourceChangedEvent;
 import org.apache.shardingsphere.governance.core.registry.watcher.event.metadata.MetaDataChangedEvent;
 import org.apache.shardingsphere.governance.core.registry.watcher.event.metadata.SchemaAddedEvent;
 import org.apache.shardingsphere.governance.core.registry.watcher.event.metadata.SchemaDeletedEvent;
@@ -34,7 +35,6 @@ import org.apache.shardingsphere.governance.core.registry.watcher.event.readwrit
 import org.apache.shardingsphere.governance.core.registry.watcher.event.rule.GlobalRuleConfigurationsChangedEvent;
 import org.apache.shardingsphere.governance.core.registry.watcher.event.rule.RuleConfigurationsChangedEvent;
 import org.apache.shardingsphere.governance.core.registry.watcher.event.schema.SchemaChangedEvent;
-import org.apache.shardingsphere.governance.core.registry.schema.GovernanceSchema;
 import org.apache.shardingsphere.infra.config.RuleConfiguration;
 import org.apache.shardingsphere.infra.config.datasource.DataSourceConfiguration;
 import org.apache.shardingsphere.infra.config.datasource.DataSourceConverter;
@@ -184,8 +184,7 @@ public final class GovernanceMetaDataContexts implements MetaDataContexts {
     public synchronized void renew(final SchemaAddedEvent event) throws SQLException {
         Map<String, ShardingSphereMetaData> metaDataMap = new HashMap<>(metaDataContexts.getMetaDataMap());
         metaDataMap.put(event.getSchemaName(), buildMetaData(event));
-        metaDataContexts = new StandardMetaDataContexts(
-                metaDataMap, metaDataContexts.getGlobalRuleMetaData(), metaDataContexts.getExecutorEngine(), metaDataContexts.getProps());
+        metaDataContexts = new StandardMetaDataContexts(metaDataMap, metaDataContexts.getGlobalRuleMetaData(), metaDataContexts.getExecutorEngine(), metaDataContexts.getProps());
         governanceFacade.getRegistryCenter().getSchemaService().persist(event.getSchemaName(), metaDataContexts.getMetaDataMap().get(event.getSchemaName()).getSchema());
         ShardingSphereEventBus.getInstance().post(new DataSourceChangeCompletedEvent(event.getSchemaName(), 
                 metaDataContexts.getMetaDataMap().get(event.getSchemaName()).getResource().getDatabaseType(), metaDataMap.get(event.getSchemaName()).getResource().getDataSources()));
@@ -274,7 +273,7 @@ public final class GovernanceMetaDataContexts implements MetaDataContexts {
      * @throws SQLException SQL exception
      */
     @Subscribe
-    public synchronized void renew(final DataSourceChangedEvent event) throws SQLException {
+    public synchronized void renew(final DataSourceAlteredEvent event) throws SQLException {
         String schemaName = event.getSchemaName();
         Map<String, ShardingSphereMetaData> newMetaDataMap = new HashMap<>(metaDataContexts.getMetaDataMap());
         newMetaDataMap.remove(schemaName);
diff --git a/shardingsphere-governance/shardingsphere-governance-context/src/test/java/org/apache/shardingsphere/governance/context/authority/listener/PrivilegeNodeChangedListenerTest.java b/shardingsphere-governance/shardingsphere-governance-context/src/test/java/org/apache/shardingsphere/governance/context/authority/listener/PrivilegeNodeChangedListenerTest.java
index 315bf35..6c3a10e 100644
--- a/shardingsphere-governance/shardingsphere-governance-context/src/test/java/org/apache/shardingsphere/governance/context/authority/listener/PrivilegeNodeChangedListenerTest.java
+++ b/shardingsphere-governance/shardingsphere-governance-context/src/test/java/org/apache/shardingsphere/governance/context/authority/listener/PrivilegeNodeChangedListenerTest.java
@@ -18,7 +18,6 @@
 package org.apache.shardingsphere.governance.context.authority.listener;
 
 import org.apache.shardingsphere.governance.context.authority.listener.event.AuthorityChangedEvent;
-import org.apache.shardingsphere.governance.core.registry.watcher.event.GovernanceEvent;
 import org.apache.shardingsphere.governance.repository.api.listener.DataChangedEvent;
 import org.apache.shardingsphere.governance.repository.api.listener.DataChangedEvent.Type;
 import org.apache.shardingsphere.infra.metadata.user.Grantee;
@@ -37,9 +36,9 @@ public final class PrivilegeNodeChangedListenerTest {
     
     @Test
     public void assertCreateEvent() {
-        Optional<GovernanceEvent> actual = new PrivilegeNodeChangedWatcher().createGovernanceEvent(new DataChangedEvent("test", AUTHENTICATION_YAML, Type.UPDATED));
+        Optional<AuthorityChangedEvent> actual = new PrivilegeNodeChangedWatcher().createGovernanceEvent(new DataChangedEvent("test", AUTHENTICATION_YAML, Type.UPDATED));
         assertTrue(actual.isPresent());
-        Optional<ShardingSphereUser> user = ((AuthorityChangedEvent) actual.get()).getUsers().stream().filter(each -> each.getGrantee().equals(new Grantee("root1", ""))).findFirst();
+        Optional<ShardingSphereUser> user = actual.get().getUsers().stream().filter(each -> each.getGrantee().equals(new Grantee("root1", ""))).findFirst();
         assertTrue(user.isPresent());
         assertThat(user.get().getPassword(), is("root1"));
     }
diff --git a/shardingsphere-governance/shardingsphere-governance-context/src/test/java/org/apache/shardingsphere/governance/context/metadata/GovernanceMetaDataContextsTest.java b/shardingsphere-governance/shardingsphere-governance-context/src/test/java/org/apache/shardingsphere/governance/context/metadata/GovernanceMetaDataContextsTest.java
index c44b5cc..a43cbd5 100644
--- a/shardingsphere-governance/shardingsphere-governance-context/src/test/java/org/apache/shardingsphere/governance/context/metadata/GovernanceMetaDataContextsTest.java
+++ b/shardingsphere-governance/shardingsphere-governance-context/src/test/java/org/apache/shardingsphere/governance/context/metadata/GovernanceMetaDataContextsTest.java
@@ -21,7 +21,8 @@ import org.apache.shardingsphere.authority.api.config.AuthorityRuleConfiguration
 import org.apache.shardingsphere.governance.context.authority.listener.event.AuthorityChangedEvent;
 import org.apache.shardingsphere.governance.core.GovernanceFacade;
 import org.apache.shardingsphere.governance.core.registry.RegistryCenter;
-import org.apache.shardingsphere.governance.core.registry.watcher.event.datasource.DataSourceChangedEvent;
+import org.apache.shardingsphere.governance.core.registry.schema.GovernanceSchema;
+import org.apache.shardingsphere.governance.core.registry.watcher.event.datasource.DataSourceAlteredEvent;
 import org.apache.shardingsphere.governance.core.registry.watcher.event.metadata.SchemaAddedEvent;
 import org.apache.shardingsphere.governance.core.registry.watcher.event.metadata.SchemaDeletedEvent;
 import org.apache.shardingsphere.governance.core.registry.watcher.event.props.PropertiesChangedEvent;
@@ -29,7 +30,6 @@ import org.apache.shardingsphere.governance.core.registry.watcher.event.readwrit
 import org.apache.shardingsphere.governance.core.registry.watcher.event.rule.GlobalRuleConfigurationsChangedEvent;
 import org.apache.shardingsphere.governance.core.registry.watcher.event.rule.RuleConfigurationsChangedEvent;
 import org.apache.shardingsphere.governance.core.registry.watcher.event.schema.SchemaChangedEvent;
-import org.apache.shardingsphere.governance.core.registry.schema.GovernanceSchema;
 import org.apache.shardingsphere.infra.config.RuleConfiguration;
 import org.apache.shardingsphere.infra.config.algorithm.ShardingSphereAlgorithmConfiguration;
 import org.apache.shardingsphere.infra.config.datasource.DataSourceConfiguration;
@@ -186,7 +186,7 @@ public final class GovernanceMetaDataContextsTest {
     
     @Test
     public void assertDataSourceChanged() throws SQLException {
-        DataSourceChangedEvent event = new DataSourceChangedEvent("schema", getChangedDataSourceConfigurations());
+        DataSourceAlteredEvent event = new DataSourceAlteredEvent("schema", getChangedDataSourceConfigurations());
         governanceMetaDataContexts.renew(event);
         assertTrue(governanceMetaDataContexts.getMetaData("schema").getResource().getDataSources().containsKey("ds_2"));
     }
diff --git a/shardingsphere-governance/shardingsphere-governance-core/src/main/java/org/apache/shardingsphere/governance/core/registry/watcher/event/datasource/DataSourceAddedEvent.java b/shardingsphere-governance/shardingsphere-governance-core/src/main/java/org/apache/shardingsphere/governance/core/registry/watcher/event/datasource/DataSourceAddedEvent.java
index 6640547..ec8b5a7 100644
--- a/shardingsphere-governance/shardingsphere-governance-core/src/main/java/org/apache/shardingsphere/governance/core/registry/watcher/event/datasource/DataSourceAddedEvent.java
+++ b/shardingsphere-governance/shardingsphere-governance-core/src/main/java/org/apache/shardingsphere/governance/core/registry/watcher/event/datasource/DataSourceAddedEvent.java
@@ -19,6 +19,7 @@ package org.apache.shardingsphere.governance.core.registry.watcher.event.datasou
 
 import lombok.Getter;
 import lombok.RequiredArgsConstructor;
+import org.apache.shardingsphere.governance.core.registry.watcher.event.GovernanceEvent;
 import org.apache.shardingsphere.infra.config.datasource.DataSourceConfiguration;
 
 import java.util.Map;
@@ -28,7 +29,7 @@ import java.util.Map;
  */
 @RequiredArgsConstructor
 @Getter
-public final class DataSourceAddedEvent {
+public final class DataSourceAddedEvent implements GovernanceEvent {
     
     private final String schemaName;
     
diff --git a/shardingsphere-governance/shardingsphere-governance-core/src/main/java/org/apache/shardingsphere/governance/core/registry/watcher/event/datasource/DataSourceAlteredEvent.java b/shardingsphere-governance/shardingsphere-governance-core/src/main/java/org/apache/shardingsphere/governance/core/registry/watcher/event/datasource/DataSourceAlteredEvent.java
index 2596124..73b305b 100644
--- a/shardingsphere-governance/shardingsphere-governance-core/src/main/java/org/apache/shardingsphere/governance/core/registry/watcher/event/datasource/DataSourceAlteredEvent.java
+++ b/shardingsphere-governance/shardingsphere-governance-core/src/main/java/org/apache/shardingsphere/governance/core/registry/watcher/event/datasource/DataSourceAlteredEvent.java
@@ -19,8 +19,9 @@ package org.apache.shardingsphere.governance.core.registry.watcher.event.datasou
 
 import lombok.Getter;
 import lombok.RequiredArgsConstructor;
-
+import org.apache.shardingsphere.governance.core.registry.watcher.event.GovernanceEvent;
 import org.apache.shardingsphere.infra.config.datasource.DataSourceConfiguration;
+
 import java.util.Map;
 
 /**
@@ -28,7 +29,7 @@ import java.util.Map;
  */
 @RequiredArgsConstructor
 @Getter
-public final class DataSourceAlteredEvent {
+public final class DataSourceAlteredEvent implements GovernanceEvent {
     
     private final String schemaName;
     
diff --git a/shardingsphere-governance/shardingsphere-governance-core/src/main/java/org/apache/shardingsphere/governance/core/registry/watcher/event/datasource/DataSourceChangedEvent.java b/shardingsphere-governance/shardingsphere-governance-core/src/main/java/org/apache/shardingsphere/governance/core/registry/watcher/event/datasource/DataSourceChangedEvent.java
deleted file mode 100644
index dac9f60..0000000
--- a/shardingsphere-governance/shardingsphere-governance-core/src/main/java/org/apache/shardingsphere/governance/core/registry/watcher/event/datasource/DataSourceChangedEvent.java
+++ /dev/null
@@ -1,37 +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.governance.core.registry.watcher.event.datasource;
-
-import lombok.Getter;
-import lombok.RequiredArgsConstructor;
-import org.apache.shardingsphere.governance.core.registry.watcher.event.GovernanceEvent;
-import org.apache.shardingsphere.infra.config.datasource.DataSourceConfiguration;
-
-import java.util.Map;
-
-/**
- * Data source changed event.
- */
-@RequiredArgsConstructor
-@Getter
-public final class DataSourceChangedEvent implements GovernanceEvent {
-    
-    private final String schemaName;
-    
-    private final Map<String, DataSourceConfiguration> dataSourceConfigurations;
-}
diff --git a/shardingsphere-governance/shardingsphere-governance-core/src/main/java/org/apache/shardingsphere/governance/core/registry/watcher/impl/GlobalRuleChangedWatcher.java b/shardingsphere-governance/shardingsphere-governance-core/src/main/java/org/apache/shardingsphere/governance/core/registry/watcher/impl/GlobalRuleChangedWatcher.java
index fb1d187..bfbb2db 100644
--- a/shardingsphere-governance/shardingsphere-governance-core/src/main/java/org/apache/shardingsphere/governance/core/registry/watcher/impl/GlobalRuleChangedWatcher.java
+++ b/shardingsphere-governance/shardingsphere-governance-core/src/main/java/org/apache/shardingsphere/governance/core/registry/watcher/impl/GlobalRuleChangedWatcher.java
@@ -18,10 +18,9 @@
 package org.apache.shardingsphere.governance.core.registry.watcher.impl;
 
 import com.google.common.base.Preconditions;
+import org.apache.shardingsphere.governance.core.registry.service.config.node.GlobalNode;
 import org.apache.shardingsphere.governance.core.registry.watcher.GovernanceWatcher;
-import org.apache.shardingsphere.governance.core.registry.watcher.event.GovernanceEvent;
 import org.apache.shardingsphere.governance.core.registry.watcher.event.rule.GlobalRuleConfigurationsChangedEvent;
-import org.apache.shardingsphere.governance.core.registry.service.config.node.GlobalNode;
 import org.apache.shardingsphere.governance.repository.api.listener.DataChangedEvent;
 import org.apache.shardingsphere.governance.repository.api.listener.DataChangedEvent.Type;
 import org.apache.shardingsphere.infra.config.RuleConfiguration;
@@ -36,7 +35,7 @@ import java.util.Optional;
 /**
  * Global rule changed watcher.
  */
-public final class GlobalRuleChangedWatcher implements GovernanceWatcher<GovernanceEvent> {
+public final class GlobalRuleChangedWatcher implements GovernanceWatcher<GlobalRuleConfigurationsChangedEvent> {
     
     @Override
     public Collection<String> getWatchingKeys(final Collection<String> schemaNames) {
@@ -49,7 +48,7 @@ public final class GlobalRuleChangedWatcher implements GovernanceWatcher<Governa
     }
     
     @Override
-    public Optional<GovernanceEvent> createGovernanceEvent(final DataChangedEvent event) {
+    public Optional<GlobalRuleConfigurationsChangedEvent> createGovernanceEvent(final DataChangedEvent event) {
         return Optional.of(new GlobalRuleConfigurationsChangedEvent("", getGlobalRuleConfigurations(event)));
     }
     
diff --git a/shardingsphere-governance/shardingsphere-governance-core/src/main/java/org/apache/shardingsphere/governance/core/registry/watcher/impl/MetaDataChangedWatcher.java b/shardingsphere-governance/shardingsphere-governance-core/src/main/java/org/apache/shardingsphere/governance/core/registry/watcher/impl/MetaDataChangedWatcher.java
index 91b9c44..946293c 100644
--- a/shardingsphere-governance/shardingsphere-governance-core/src/main/java/org/apache/shardingsphere/governance/core/registry/watcher/impl/MetaDataChangedWatcher.java
+++ b/shardingsphere-governance/shardingsphere-governance-core/src/main/java/org/apache/shardingsphere/governance/core/registry/watcher/impl/MetaDataChangedWatcher.java
@@ -20,20 +20,21 @@ package org.apache.shardingsphere.governance.core.registry.watcher.impl;
 import com.google.common.base.Preconditions;
 import com.google.common.base.Strings;
 import org.apache.shardingsphere.governance.core.registry.cache.CacheNode;
+import org.apache.shardingsphere.governance.core.registry.service.config.node.SchemaMetadataNode;
 import org.apache.shardingsphere.governance.core.registry.watcher.GovernanceWatcher;
 import org.apache.shardingsphere.governance.core.registry.watcher.event.GovernanceEvent;
-import org.apache.shardingsphere.governance.core.registry.watcher.event.datasource.DataSourceChangedEvent;
+import org.apache.shardingsphere.governance.core.registry.watcher.event.datasource.DataSourceAlteredEvent;
 import org.apache.shardingsphere.governance.core.registry.watcher.event.metadata.SchemaAddedEvent;
 import org.apache.shardingsphere.governance.core.registry.watcher.event.metadata.SchemaDeletedEvent;
 import org.apache.shardingsphere.governance.core.registry.watcher.event.rule.RuleConfigurationCachedEvent;
 import org.apache.shardingsphere.governance.core.registry.watcher.event.rule.RuleConfigurationsChangedEvent;
 import org.apache.shardingsphere.governance.core.registry.watcher.event.schema.SchemaChangedEvent;
-import org.apache.shardingsphere.governance.core.registry.service.config.node.SchemaMetadataNode;
 import org.apache.shardingsphere.governance.core.yaml.schema.pojo.YamlSchema;
 import org.apache.shardingsphere.governance.core.yaml.schema.swapper.SchemaYamlSwapper;
 import org.apache.shardingsphere.governance.repository.api.listener.DataChangedEvent;
 import org.apache.shardingsphere.governance.repository.api.listener.DataChangedEvent.Type;
 import org.apache.shardingsphere.infra.config.RuleConfiguration;
+import org.apache.shardingsphere.infra.config.datasource.DataSourceConfiguration;
 import org.apache.shardingsphere.infra.yaml.config.YamlRuleConfiguration;
 import org.apache.shardingsphere.infra.yaml.engine.YamlEngine;
 import org.apache.shardingsphere.infra.yaml.swapper.YamlDataSourceConfigurationSwapper;
@@ -45,6 +46,7 @@ import java.util.Collections;
 import java.util.HashMap;
 import java.util.LinkedHashMap;
 import java.util.Map;
+import java.util.Map.Entry;
 import java.util.Optional;
 import java.util.stream.Collectors;
 
@@ -67,35 +69,39 @@ public final class MetaDataChangedWatcher implements GovernanceWatcher<Governanc
     public Optional<GovernanceEvent> createGovernanceEvent(final DataChangedEvent event) {
         String schemaName = SchemaMetadataNode.getSchemaNameBySchemaPath(event.getKey());
         if (!Strings.isNullOrEmpty(schemaName)) {
-            return buildSchemaEvent(schemaName, event);
+            return buildGovernanceEvent(schemaName, event);
         }
         if (event.getType() != DataChangedEvent.Type.UPDATED) {
             return Optional.empty();
         }
-        return buildSchemaConfigEvent(event);
+        return buildGovernanceEvent(event);
     }
     
-    private Optional<GovernanceEvent> buildSchemaEvent(final String schemaName, final DataChangedEvent event) {
+    private Optional<GovernanceEvent> buildGovernanceEvent(final String schemaName, final DataChangedEvent event) {
         if (event.getType() == DataChangedEvent.Type.ADDED || event.getType() == DataChangedEvent.Type.UPDATED) {
             return Optional.of(new SchemaAddedEvent(schemaName));
-        } else if (event.getType() == DataChangedEvent.Type.DELETED) {
+        }
+        if (event.getType() == DataChangedEvent.Type.DELETED) {
             return Optional.of(new SchemaDeletedEvent(schemaName));
         }
         return Optional.empty();
     }
-
-    private Optional<GovernanceEvent> buildSchemaConfigEvent(final DataChangedEvent event) {
+    
+    private Optional<GovernanceEvent> buildGovernanceEvent(final DataChangedEvent event) {
         String schemaName = SchemaMetadataNode.getSchemaName(event.getKey());
         if (Strings.isNullOrEmpty(schemaName) || Strings.isNullOrEmpty(event.getValue())) {
             return Optional.empty();
         }
         if (isDataSourceChangedEvent(schemaName, event.getKey())) {
-            return Optional.of(createDataSourceChangedEvent(schemaName, event));
-        } else if (isRuleChangedEvent(schemaName, event.getKey())) {
+            return Optional.of(createDataSourceAlteredEvent(schemaName, event));
+        }
+        if (isRuleChangedEvent(schemaName, event.getKey())) {
             return Optional.of(createRuleChangedEvent(schemaName, event));
-        } else if (isRuleCachedEvent(schemaName, event.getKey())) {
+        }
+        if (isRuleCachedEvent(schemaName, event.getKey())) {
             return Optional.of(new RuleConfigurationCachedEvent(event.getValue(), schemaName));
-        } else if (isSchemaChangedEvent(schemaName, event.getKey())) {
+        }
+        if (isSchemaChangedEvent(schemaName, event.getKey())) {
             return Optional.of(createSchemaChangedEvent(schemaName, event));
         }
         return Optional.empty();
@@ -104,41 +110,40 @@ public final class MetaDataChangedWatcher implements GovernanceWatcher<Governanc
     private boolean isDataSourceChangedEvent(final String schemaName, final String eventPath) {
         return SchemaMetadataNode.getMetadataDataSourcePath(schemaName).equals(eventPath);
     }
-
+    
     @SuppressWarnings("unchecked")
-    private DataSourceChangedEvent createDataSourceChangedEvent(final String schemaName, final DataChangedEvent event) {
+    private DataSourceAlteredEvent createDataSourceAlteredEvent(final String schemaName, final DataChangedEvent event) {
         Map<String, Map<String, Object>> yamlDataSources = YamlEngine.unmarshal(event.getValue(), Map.class);
-        return yamlDataSources.isEmpty() ? new DataSourceChangedEvent(schemaName, new HashMap<>())
-                : new DataSourceChangedEvent(schemaName, yamlDataSources.entrySet().stream()
-                .collect(Collectors.toMap(Map.Entry::getKey, entry -> new YamlDataSourceConfigurationSwapper()
-                        .swapToDataSourceConfiguration(entry.getValue()), (oldValue, currentValue) -> oldValue, LinkedHashMap::new)));
+        Map<String, DataSourceConfiguration> dataSourceConfigs = yamlDataSources.isEmpty() ? new HashMap<>()
+                : yamlDataSources.entrySet().stream().collect(Collectors.toMap(
+                    Entry::getKey, entry -> new YamlDataSourceConfigurationSwapper().swapToDataSourceConfiguration(entry.getValue()), (oldValue, currentValue) -> oldValue, LinkedHashMap::new));
+        return new DataSourceAlteredEvent(schemaName, dataSourceConfigs);
     }
-
+    
     private boolean isRuleChangedEvent(final String schemaName, final String eventPath) {
         return SchemaMetadataNode.getRulePath(schemaName).equals(eventPath);
     }
-
+    
     private boolean isRuleCachedEvent(final String schemaName, final String key) {
         return CacheNode.getCachePath(SchemaMetadataNode.getRulePath(schemaName)).equals(key);
     }
-
+    
     private GovernanceEvent createRuleChangedEvent(final String schemaName, final DataChangedEvent event) {
         return new RuleConfigurationsChangedEvent(schemaName, getRuleConfigurations(event.getValue()));
     }
-
+    
     @SuppressWarnings("unchecked")
     private Collection<RuleConfiguration> getRuleConfigurations(final String yamlContent) {
         Collection<YamlRuleConfiguration> rules = YamlEngine.unmarshal(yamlContent, Collection.class);
         Preconditions.checkState(!rules.isEmpty(), "No available rule to load for governance.");
         return new YamlRuleConfigurationSwapperEngine().swapToRuleConfigurations(rules);
     }
-
+    
     private boolean isSchemaChangedEvent(final String schemaName, final String key) {
         return SchemaMetadataNode.getMetadataSchemaPath(schemaName).equals(key);
     }
-
+    
     private GovernanceEvent createSchemaChangedEvent(final String schemaName, final DataChangedEvent event) {
-        return new SchemaChangedEvent(schemaName, new SchemaYamlSwapper()
-                .swapToObject(YamlEngine.unmarshal(event.getValue(), YamlSchema.class)));
+        return new SchemaChangedEvent(schemaName, new SchemaYamlSwapper().swapToObject(YamlEngine.unmarshal(event.getValue(), YamlSchema.class)));
     }
 }
diff --git a/shardingsphere-governance/shardingsphere-governance-core/src/main/java/org/apache/shardingsphere/governance/core/registry/watcher/impl/PropertiesChangedWatcher.java b/shardingsphere-governance/shardingsphere-governance-core/src/main/java/org/apache/shardingsphere/governance/core/registry/watcher/impl/PropertiesChangedWatcher.java
index aefd81b..41bac42 100644
--- a/shardingsphere-governance/shardingsphere-governance-core/src/main/java/org/apache/shardingsphere/governance/core/registry/watcher/impl/PropertiesChangedWatcher.java
+++ b/shardingsphere-governance/shardingsphere-governance-core/src/main/java/org/apache/shardingsphere/governance/core/registry/watcher/impl/PropertiesChangedWatcher.java
@@ -17,10 +17,9 @@
 
 package org.apache.shardingsphere.governance.core.registry.watcher.impl;
 
+import org.apache.shardingsphere.governance.core.registry.service.config.node.GlobalNode;
 import org.apache.shardingsphere.governance.core.registry.watcher.GovernanceWatcher;
-import org.apache.shardingsphere.governance.core.registry.watcher.event.GovernanceEvent;
 import org.apache.shardingsphere.governance.core.registry.watcher.event.props.PropertiesChangedEvent;
-import org.apache.shardingsphere.governance.core.registry.service.config.node.GlobalNode;
 import org.apache.shardingsphere.governance.repository.api.listener.DataChangedEvent;
 import org.apache.shardingsphere.governance.repository.api.listener.DataChangedEvent.Type;
 import org.apache.shardingsphere.infra.yaml.engine.YamlEngine;
@@ -33,7 +32,7 @@ import java.util.Properties;
 /**
  * Properties changed watcher.
  */
-public final class PropertiesChangedWatcher implements GovernanceWatcher<GovernanceEvent> {
+public final class PropertiesChangedWatcher implements GovernanceWatcher<PropertiesChangedEvent> {
     
     @Override
     public Collection<String> getWatchingKeys(final Collection<String> schemaNames) {
@@ -46,7 +45,7 @@ public final class PropertiesChangedWatcher implements GovernanceWatcher<Governa
     }
     
     @Override
-    public Optional<GovernanceEvent> createGovernanceEvent(final DataChangedEvent event) {
+    public Optional<PropertiesChangedEvent> createGovernanceEvent(final DataChangedEvent event) {
         return Optional.of(new PropertiesChangedEvent(YamlEngine.unmarshal(event.getValue(), Properties.class)));
     }
 }
diff --git a/shardingsphere-governance/shardingsphere-governance-core/src/test/java/org/apache/shardingsphere/governance/core/registry/watcher/impl/GlobalRuleChangedWatcherTest.java b/shardingsphere-governance/shardingsphere-governance-core/src/test/java/org/apache/shardingsphere/governance/core/registry/watcher/impl/GlobalRuleChangedWatcherTest.java
index 2b56822..8e9147b 100644
--- a/shardingsphere-governance/shardingsphere-governance-core/src/test/java/org/apache/shardingsphere/governance/core/registry/watcher/impl/GlobalRuleChangedWatcherTest.java
+++ b/shardingsphere-governance/shardingsphere-governance-core/src/test/java/org/apache/shardingsphere/governance/core/registry/watcher/impl/GlobalRuleChangedWatcherTest.java
@@ -18,7 +18,6 @@
 package org.apache.shardingsphere.governance.core.registry.watcher.impl;
 
 import lombok.SneakyThrows;
-import org.apache.shardingsphere.governance.core.registry.watcher.event.GovernanceEvent;
 import org.apache.shardingsphere.governance.core.registry.watcher.event.rule.GlobalRuleConfigurationsChangedEvent;
 import org.apache.shardingsphere.governance.repository.api.listener.DataChangedEvent;
 import org.apache.shardingsphere.governance.repository.api.listener.DataChangedEvent.Type;
@@ -39,7 +38,7 @@ public final class GlobalRuleChangedWatcherTest {
     
     @Test
     public void assertCreateEvent() {
-        Optional<GovernanceEvent> event = new GlobalRuleChangedWatcher().createGovernanceEvent(new DataChangedEvent("rule", readYAML("yaml/authority-rule.yaml"), Type.UPDATED));
+        Optional<GlobalRuleConfigurationsChangedEvent> event = new GlobalRuleChangedWatcher().createGovernanceEvent(new DataChangedEvent("rule", readYAML("yaml/authority-rule.yaml"), Type.UPDATED));
         assertTrue(event.isPresent());
         assertThat(event.get(), instanceOf(GlobalRuleConfigurationsChangedEvent.class));
     }
diff --git a/shardingsphere-governance/shardingsphere-governance-core/src/test/java/org/apache/shardingsphere/governance/core/registry/watcher/impl/PropertiesChangedWatcherTest.java b/shardingsphere-governance/shardingsphere-governance-core/src/test/java/org/apache/shardingsphere/governance/core/registry/watcher/impl/PropertiesChangedWatcherTest.java
index 5514101..2fa1932 100644
--- a/shardingsphere-governance/shardingsphere-governance-core/src/test/java/org/apache/shardingsphere/governance/core/registry/watcher/impl/PropertiesChangedWatcherTest.java
+++ b/shardingsphere-governance/shardingsphere-governance-core/src/test/java/org/apache/shardingsphere/governance/core/registry/watcher/impl/PropertiesChangedWatcherTest.java
@@ -17,7 +17,6 @@
 
 package org.apache.shardingsphere.governance.core.registry.watcher.impl;
 
-import org.apache.shardingsphere.governance.core.registry.watcher.event.GovernanceEvent;
 import org.apache.shardingsphere.governance.core.registry.watcher.event.props.PropertiesChangedEvent;
 import org.apache.shardingsphere.governance.repository.api.listener.DataChangedEvent;
 import org.apache.shardingsphere.governance.repository.api.listener.DataChangedEvent.Type;
@@ -36,8 +35,8 @@ public final class PropertiesChangedWatcherTest {
     
     @Test
     public void assertCreateEvent() {
-        Optional<GovernanceEvent> actual = new PropertiesChangedWatcher().createGovernanceEvent(new DataChangedEvent("test", PROPERTIES_YAML, Type.UPDATED));
+        Optional<PropertiesChangedEvent> actual = new PropertiesChangedWatcher().createGovernanceEvent(new DataChangedEvent("test", PROPERTIES_YAML, Type.UPDATED));
         assertTrue(actual.isPresent());
-        assertThat(((PropertiesChangedEvent) actual.get()).getProps().get(ConfigurationPropertyKey.SQL_SHOW.getKey()), is(true));
+        assertThat(actual.get().getProps().get(ConfigurationPropertyKey.SQL_SHOW.getKey()), is(true));
     }
 }
diff --git a/shardingsphere-governance/shardingsphere-governance-repository/shardingsphere-governance-repository-api/src/main/java/org/apache/shardingsphere/governance/repository/api/listener/DataChangedEventListener.java b/shardingsphere-governance/shardingsphere-governance-repository/shardingsphere-governance-repository-api/src/main/java/org/apache/shardingsphere/governance/repository/api/listener/DataChangedEventListener.java
index 8742933..5034997 100644
--- a/shardingsphere-governance/shardingsphere-governance-repository/shardingsphere-governance-repository-api/src/main/java/org/apache/shardingsphere/governance/repository/api/listener/DataChangedEventListener.java
+++ b/shardingsphere-governance/shardingsphere-governance-repository/shardingsphere-governance-repository-api/src/main/java/org/apache/shardingsphere/governance/repository/api/listener/DataChangedEventListener.java
@@ -18,7 +18,7 @@
 package org.apache.shardingsphere.governance.repository.api.listener;
 
 /**
- * Listener for data changed.
+ * Data changed listener.
  */
 public interface DataChangedEventListener {
     
diff --git a/shardingsphere-jdbc/shardingsphere-jdbc-governance/src/test/java/org/apache/shardingsphere/driver/governance/internal/datasource/GovernanceShardingSphereDataSourceTest.java b/shardingsphere-jdbc/shardingsphere-jdbc-governance/src/test/java/org/apache/shardingsphere/driver/governance/internal/datasource/GovernanceShardingSphereDataSourceTest.java
index dff2835..14b2a1d 100644
--- a/shardingsphere-jdbc/shardingsphere-jdbc-governance/src/test/java/org/apache/shardingsphere/driver/governance/internal/datasource/GovernanceShardingSphereDataSourceTest.java
+++ b/shardingsphere-jdbc/shardingsphere-jdbc-governance/src/test/java/org/apache/shardingsphere/driver/governance/internal/datasource/GovernanceShardingSphereDataSourceTest.java
@@ -21,13 +21,13 @@ import com.google.common.collect.ImmutableMap;
 import org.apache.commons.dbcp2.BasicDataSource;
 import org.apache.shardingsphere.driver.governance.api.yaml.YamlGovernanceShardingSphereDataSourceFactory;
 import org.apache.shardingsphere.governance.context.metadata.GovernanceMetaDataContexts;
-import org.apache.shardingsphere.governance.core.registry.watcher.event.datasource.DataSourceChangedEvent;
+import org.apache.shardingsphere.governance.core.registry.schema.GovernanceSchema;
+import org.apache.shardingsphere.governance.core.registry.watcher.event.datasource.DataSourceAlteredEvent;
 import org.apache.shardingsphere.governance.core.registry.watcher.event.props.PropertiesChangedEvent;
-import org.apache.shardingsphere.governance.core.registry.watcher.event.rule.RuleConfigurationsChangedEvent;
 import org.apache.shardingsphere.governance.core.registry.watcher.event.readwritesplitting.DisabledStateChangedEvent;
-import org.apache.shardingsphere.governance.core.registry.schema.GovernanceSchema;
-import org.apache.shardingsphere.governance.repository.api.config.RegistryCenterConfiguration;
+import org.apache.shardingsphere.governance.core.registry.watcher.event.rule.RuleConfigurationsChangedEvent;
 import org.apache.shardingsphere.governance.repository.api.config.GovernanceConfiguration;
+import org.apache.shardingsphere.governance.repository.api.config.RegistryCenterConfiguration;
 import org.apache.shardingsphere.infra.config.algorithm.ShardingSphereAlgorithmConfiguration;
 import org.apache.shardingsphere.infra.config.datasource.DataSourceConfiguration;
 import org.apache.shardingsphere.infra.config.properties.ConfigurationPropertyKey;
@@ -105,7 +105,7 @@ public final class GovernanceShardingSphereDataSourceTest {
     
     @Test
     public void assertRenewDataSource() throws SQLException {
-        metaDataContexts.renew(new DataSourceChangedEvent(DefaultSchema.LOGIC_NAME, getDataSourceConfigurations()));
+        metaDataContexts.renew(new DataSourceAlteredEvent(DefaultSchema.LOGIC_NAME, getDataSourceConfigurations()));
         assertThat(metaDataContexts.getDefaultMetaData().getResource().getDataSources().size(), is(3));
     }
     
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/DropResourceBackendHandler.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/DropResourceBackendHandler.java
index 2176c3f..b10c0f6 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/DropResourceBackendHandler.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/DropResourceBackendHandler.java
@@ -19,7 +19,6 @@ package org.apache.shardingsphere.proxy.backend.text.distsql.rdl.impl;
 
 import org.apache.shardingsphere.distsql.parser.statement.rdl.drop.impl.DropResourceStatement;
 import org.apache.shardingsphere.governance.core.registry.watcher.event.datasource.DataSourceAlteredEvent;
-import org.apache.shardingsphere.infra.config.datasource.DataSourceConfiguration;
 import org.apache.shardingsphere.infra.config.datasource.DataSourceConverter;
 import org.apache.shardingsphere.infra.datanode.DataNode;
 import org.apache.shardingsphere.infra.eventbus.ShardingSphereEventBus;
@@ -46,7 +45,7 @@ import java.util.stream.Collectors;
  * Drop resource backend handler.
  */
 public final class DropResourceBackendHandler extends SchemaRequiredBackendHandler<DropResourceStatement> {
-
+    
     public DropResourceBackendHandler(final DropResourceStatement sqlStatement, final BackendConnection backendConnection) {
         super(sqlStatement, backendConnection);
     }
@@ -55,8 +54,8 @@ public final class DropResourceBackendHandler extends SchemaRequiredBackendHandl
     public ResponseHeader execute(final String schemaName, final DropResourceStatement sqlStatement) {
         Collection<String> resourceNames = sqlStatement.getResourceNames();
         check(schemaName, resourceNames);
-        Map<String, DataSource> resourceMap = drop(schemaName, resourceNames);
-        post(schemaName, resourceMap);
+        Map<String, DataSource> dataSources = drop(schemaName, resourceNames);
+        post(schemaName, dataSources);
         return new UpdateResponseHeader(sqlStatement);
     }
     
@@ -88,7 +87,7 @@ public final class DropResourceBackendHandler extends SchemaRequiredBackendHandl
             throw new ResourceInUsedException(conflictResources);
         }
     }
-
+    
     private Set<String> getResources(final DataSourceContainedRule rule) {
         Set<String> result = new HashSet<>();
         for (Collection<String> each : rule.getDataSourceMapper().values()) {
@@ -96,7 +95,7 @@ public final class DropResourceBackendHandler extends SchemaRequiredBackendHandl
         }
         return result;
     }
-
+    
     private Set<String> getResources(final DataNodeContainedRule rule) {
         Set<String> result = new HashSet<>();
         for (Collection<DataNode> each : rule.getAllDataNodes().values()) {
@@ -104,7 +103,7 @@ public final class DropResourceBackendHandler extends SchemaRequiredBackendHandl
         }
         return result;
     }
-
+    
     private Map<String, DataSource> drop(final String schemaName, final Collection<String> resourceNames) {
         Map<String, DataSource> result = ProxyContext.getInstance().getMetaData(schemaName).getResource().getDataSources();
         for (String each : resourceNames) {
@@ -113,8 +112,7 @@ public final class DropResourceBackendHandler extends SchemaRequiredBackendHandl
         return result;
     }
     
-    private void post(final String schemaName, final Map<String, DataSource> resourceMap) {
-        Map<String, DataSourceConfiguration> datasourceMap = DataSourceConverter.getDataSourceConfigurationMap(resourceMap);
-        ShardingSphereEventBus.getInstance().post(new DataSourceAlteredEvent(schemaName, datasourceMap));
+    private void post(final String schemaName, final Map<String, DataSource> dataSources) {
+        ShardingSphereEventBus.getInstance().post(new DataSourceAlteredEvent(schemaName, DataSourceConverter.getDataSourceConfigurationMap(dataSources)));
     }
 }