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

zhonghongsheng 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 33dde6f4ead Refactor impls of RuleChangedEventCreator (#26799)
33dde6f4ead is described below

commit 33dde6f4ead22206a4e13ca4877ab2d07d3a6a2e
Author: Liang Zhang <[email protected]>
AuthorDate: Thu Jul 6 21:16:05 2023 +0800

    Refactor impls of RuleChangedEventCreator (#26799)
---
 .../event/BroadcastRuleChangedEventCreator.java    | 10 +---
 .../nodepath/BroadcastRuleNodePathProvider.java    |  4 +-
 .../subscriber/BroadcastTableChangedGenerator.java |  5 +-
 .../CompatibleEncryptRuleChangedEventCreator.java  | 17 +------
 .../event/EncryptRuleChangedEventCreator.java      | 15 +-----
 .../CompatibleEncryptRuleNodePathProvider.java     |  4 +-
 .../nodepath/EncryptRuleNodePathProvider.java      |  4 +-
 .../subscriber/EncryptTableChangedGenerator.java   |  5 +-
 .../subscriber/EncryptorChangedGenerator.java      |  5 +-
 .../CompatibleEncryptTableChangedGenerator.java    |  5 +-
 .../CompatibleEncryptorChangedGenerator.java       |  5 +-
 .../mask/event/MaskRuleChangedEventCreator.java    | 15 +-----
 .../nodepath/MaskRuleNodePathProvider.java         |  4 +-
 .../subscriber/MaskAlgorithmChangedGenerator.java  |  5 +-
 .../mask/subscriber/MaskTableChangedGenerator.java |  5 +-
 .../ReadwriteSplittingRuleChangedEventCreator.java | 15 +-----
 .../ReadwriteSplittingRuleNodePathProvider.java    |  4 +-
 ...adwriteSplittingDataSourceChangedGenerator.java |  5 +-
 ...writeSplittingLoadBalancerChangedGenerator.java |  5 +-
 .../event/ShadowRuleChangedEventCreator.java       | 28 +----------
 .../nodepath/ShadowRuleNodePathProvider.java       |  4 +-
 ...DefaultShadowAlgorithmNameChangedGenerator.java |  3 +-
 .../ShadowAlgorithmChangedGenerator.java           |  3 +-
 .../ShadowDataSourceChangedGenerator.java          |  5 +-
 .../subscriber/ShadowTableChangedGenerator.java    |  5 +-
 .../event/ShardingRuleChangedEventCreator.java     | 54 +---------------------
 .../nodepath/ShardingRuleNodePathProvider.java     |  4 +-
 ...ltDatabaseShardingStrategyChangedGenerator.java |  5 +-
 ...DefaultKeyGenerateStrategyChangedGenerator.java |  5 +-
 ...ultShardingAuditorStrategyChangedGenerator.java |  5 +-
 .../DefaultShardingColumnChangedGenerator.java     |  5 +-
 ...faultTableShardingStrategyChangedGenerator.java |  5 +-
 .../subscriber/KeyGeneratorChangedGenerator.java   |  5 +-
 .../ShardingAlgorithmChangedGenerator.java         |  5 +-
 .../ShardingAuditorChangedGenerator.java           |  5 +-
 .../ShardingAutoTableChangedGenerator.java         |  5 +-
 .../subscriber/ShardingCacheChangedGenerator.java  |  5 +-
 .../subscriber/ShardingTableChangedGenerator.java  |  5 +-
 .../ShardingTableReferenceChangedGenerator.java    |  5 +-
 .../event/SingleRuleChangedEventCreator.java       | 10 +---
 .../nodepath/SingleRuleNodePathProvider.java       |  4 +-
 .../subscriber/SingleTableChangedGenerator.java    |  5 +-
 42 files changed, 87 insertions(+), 235 deletions(-)

diff --git 
a/features/broadcast/core/src/main/java/org/apache/shardingsphere/broadcast/event/BroadcastRuleChangedEventCreator.java
 
b/features/broadcast/core/src/main/java/org/apache/shardingsphere/broadcast/event/BroadcastRuleChangedEventCreator.java
index 01c6ff67bce..bee55ea9653 100644
--- 
a/features/broadcast/core/src/main/java/org/apache/shardingsphere/broadcast/event/BroadcastRuleChangedEventCreator.java
+++ 
b/features/broadcast/core/src/main/java/org/apache/shardingsphere/broadcast/event/BroadcastRuleChangedEventCreator.java
@@ -18,7 +18,6 @@
 package org.apache.shardingsphere.broadcast.event;
 
 import 
org.apache.shardingsphere.broadcast.metadata.nodepath.BroadcastRuleNodePathProvider;
-import 
org.apache.shardingsphere.broadcast.subscriber.BroadcastTableChangedGenerator;
 import org.apache.shardingsphere.infra.rule.event.GovernanceEvent;
 import org.apache.shardingsphere.mode.event.DataChangedEvent;
 import org.apache.shardingsphere.mode.event.UniqueRuleItemChangedEventCreator;
@@ -31,14 +30,7 @@ public final class BroadcastRuleChangedEventCreator 
implements RuleChangedEventC
     
     @Override
     public GovernanceEvent create(final String databaseName, final 
DataChangedEvent event, final String itemType) {
-        return new UniqueRuleItemChangedEventCreator().create(databaseName, 
event, getRuleItemConfigurationChangedGeneratorType(itemType));
-    }
-    
-    private String getRuleItemConfigurationChangedGeneratorType(final String 
itemType) {
-        if (itemType.equals(BroadcastRuleNodePathProvider.TABLES)) {
-            return BroadcastTableChangedGenerator.TYPE;
-        }
-        throw new UnsupportedOperationException(itemType);
+        return new UniqueRuleItemChangedEventCreator().create(databaseName, 
event, BroadcastRuleNodePathProvider.RULE_TYPE + "." + itemType);
     }
     
     @Override
diff --git 
a/features/broadcast/core/src/main/java/org/apache/shardingsphere/broadcast/metadata/nodepath/BroadcastRuleNodePathProvider.java
 
b/features/broadcast/core/src/main/java/org/apache/shardingsphere/broadcast/metadata/nodepath/BroadcastRuleNodePathProvider.java
index c72dc5dfebd..9328ef7e6e7 100644
--- 
a/features/broadcast/core/src/main/java/org/apache/shardingsphere/broadcast/metadata/nodepath/BroadcastRuleNodePathProvider.java
+++ 
b/features/broadcast/core/src/main/java/org/apache/shardingsphere/broadcast/metadata/nodepath/BroadcastRuleNodePathProvider.java
@@ -27,9 +27,11 @@ import java.util.Collections;
  */
 public final class BroadcastRuleNodePathProvider implements 
RuleNodePathProvider {
     
+    public static final String RULE_TYPE = "broadcast";
+    
     public static final String TABLES = "tables";
     
-    private static final RuleNodePath INSTANCE = new RuleNodePath("broadcast", 
Collections.emptyList(), Collections.singleton(TABLES));
+    private static final RuleNodePath INSTANCE = new RuleNodePath(RULE_TYPE, 
Collections.emptyList(), Collections.singleton(TABLES));
     
     @Override
     public RuleNodePath getRuleNodePath() {
diff --git 
a/features/broadcast/core/src/main/java/org/apache/shardingsphere/broadcast/subscriber/BroadcastTableChangedGenerator.java
 
b/features/broadcast/core/src/main/java/org/apache/shardingsphere/broadcast/subscriber/BroadcastTableChangedGenerator.java
index dc4cdccfe35..8500bb05490 100644
--- 
a/features/broadcast/core/src/main/java/org/apache/shardingsphere/broadcast/subscriber/BroadcastTableChangedGenerator.java
+++ 
b/features/broadcast/core/src/main/java/org/apache/shardingsphere/broadcast/subscriber/BroadcastTableChangedGenerator.java
@@ -18,6 +18,7 @@
 package org.apache.shardingsphere.broadcast.subscriber;
 
 import 
org.apache.shardingsphere.broadcast.api.config.BroadcastRuleConfiguration;
+import 
org.apache.shardingsphere.broadcast.metadata.nodepath.BroadcastRuleNodePathProvider;
 import org.apache.shardingsphere.broadcast.rule.BroadcastRule;
 import 
org.apache.shardingsphere.broadcast.yaml.config.YamlBroadcastRuleConfiguration;
 import 
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
@@ -33,8 +34,6 @@ import java.util.LinkedList;
  */
 public final class BroadcastTableChangedGenerator implements 
RuleItemConfigurationChangedGenerator<BroadcastRuleConfiguration, 
BroadcastRuleConfiguration> {
     
-    public static final String TYPE = "Broadcast.Table";
-    
     @Override
     public BroadcastRuleConfiguration swapRuleItemConfigurationFromEvent(final 
AlterRuleItemEvent event, final String yamlContent) {
         return new 
BroadcastRuleConfiguration(YamlEngine.unmarshal(yamlContent, 
YamlBroadcastRuleConfiguration.class).getTables());
@@ -58,6 +57,6 @@ public final class BroadcastTableChangedGenerator implements 
RuleItemConfigurati
     
     @Override
     public String getType() {
-        return TYPE;
+        return BroadcastRuleNodePathProvider.RULE_TYPE + "." + 
BroadcastRuleNodePathProvider.TABLES;
     }
 }
diff --git 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/event/CompatibleEncryptRuleChangedEventCreator.java
 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/event/CompatibleEncryptRuleChangedEventCreator.java
index 1d71e758692..4acfcd2f9ed 100644
--- 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/event/CompatibleEncryptRuleChangedEventCreator.java
+++ 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/event/CompatibleEncryptRuleChangedEventCreator.java
@@ -17,9 +17,7 @@
 
 package org.apache.shardingsphere.encrypt.event;
 
-import 
org.apache.shardingsphere.encrypt.metadata.nodepath.EncryptRuleNodePathProvider;
-import 
org.apache.shardingsphere.encrypt.subscriber.compatible.CompatibleEncryptTableChangedGenerator;
-import 
org.apache.shardingsphere.encrypt.subscriber.compatible.CompatibleEncryptorChangedGenerator;
+import 
org.apache.shardingsphere.encrypt.metadata.nodepath.CompatibleEncryptRuleNodePathProvider;
 import org.apache.shardingsphere.infra.rule.event.GovernanceEvent;
 import org.apache.shardingsphere.mode.event.DataChangedEvent;
 import org.apache.shardingsphere.mode.event.NamedRuleItemChangedEventCreator;
@@ -34,18 +32,7 @@ public final class CompatibleEncryptRuleChangedEventCreator 
implements RuleChang
     
     @Override
     public GovernanceEvent create(final String databaseName, final 
DataChangedEvent event, final String itemType, final String itemName) {
-        return new NamedRuleItemChangedEventCreator().create(databaseName, 
itemName, event, getRuleItemConfigurationChangedGeneratorType(itemType));
-    }
-    
-    private String getRuleItemConfigurationChangedGeneratorType(final String 
itemType) {
-        switch (itemType) {
-            case EncryptRuleNodePathProvider.TABLES:
-                return CompatibleEncryptTableChangedGenerator.TYPE;
-            case EncryptRuleNodePathProvider.ENCRYPTORS:
-                return CompatibleEncryptorChangedGenerator.TYPE;
-            default:
-                throw new UnsupportedOperationException(itemType);
-        }
+        return new NamedRuleItemChangedEventCreator().create(databaseName, 
itemType, event, CompatibleEncryptRuleNodePathProvider.RULE_TYPE + "." + 
itemType);
     }
     
     @Override
diff --git 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/event/EncryptRuleChangedEventCreator.java
 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/event/EncryptRuleChangedEventCreator.java
index 4d1f9667197..7560fb5ac22 100644
--- 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/event/EncryptRuleChangedEventCreator.java
+++ 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/event/EncryptRuleChangedEventCreator.java
@@ -18,8 +18,6 @@
 package org.apache.shardingsphere.encrypt.event;
 
 import 
org.apache.shardingsphere.encrypt.metadata.nodepath.EncryptRuleNodePathProvider;
-import 
org.apache.shardingsphere.encrypt.subscriber.EncryptTableChangedGenerator;
-import org.apache.shardingsphere.encrypt.subscriber.EncryptorChangedGenerator;
 import org.apache.shardingsphere.infra.rule.event.GovernanceEvent;
 import org.apache.shardingsphere.mode.event.DataChangedEvent;
 import org.apache.shardingsphere.mode.event.NamedRuleItemChangedEventCreator;
@@ -32,18 +30,7 @@ public final class EncryptRuleChangedEventCreator implements 
RuleChangedEventCre
     
     @Override
     public GovernanceEvent create(final String databaseName, final 
DataChangedEvent event, final String itemType, final String itemName) {
-        return new NamedRuleItemChangedEventCreator().create(databaseName, 
itemName, event, getRuleItemConfigurationChangedGeneratorType(itemType));
-    }
-    
-    private String getRuleItemConfigurationChangedGeneratorType(final String 
itemType) {
-        switch (itemType) {
-            case EncryptRuleNodePathProvider.TABLES:
-                return EncryptTableChangedGenerator.TYPE;
-            case EncryptRuleNodePathProvider.ENCRYPTORS:
-                return EncryptorChangedGenerator.TYPE;
-            default:
-                throw new UnsupportedOperationException(itemType);
-        }
+        return new NamedRuleItemChangedEventCreator().create(databaseName, 
itemType, event, EncryptRuleNodePathProvider.RULE_TYPE + "." + itemType);
     }
     
     @Override
diff --git 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/metadata/nodepath/CompatibleEncryptRuleNodePathProvider.java
 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/metadata/nodepath/CompatibleEncryptRuleNodePathProvider.java
index d9b327ac062..15c957e0387 100644
--- 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/metadata/nodepath/CompatibleEncryptRuleNodePathProvider.java
+++ 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/metadata/nodepath/CompatibleEncryptRuleNodePathProvider.java
@@ -30,11 +30,13 @@ import java.util.Collections;
 @Deprecated
 public final class CompatibleEncryptRuleNodePathProvider implements 
RuleNodePathProvider {
     
+    public static final String RULE_TYPE = "compatible_encrypt";
+    
     public static final String TABLES = "tables";
     
     public static final String ENCRYPTORS = "encryptors";
     
-    private static final RuleNodePath INSTANCE = new 
RuleNodePath("compatible_encrypt", Arrays.asList(TABLES, ENCRYPTORS), 
Collections.emptyList());
+    private static final RuleNodePath INSTANCE = new RuleNodePath(RULE_TYPE, 
Arrays.asList(TABLES, ENCRYPTORS), Collections.emptyList());
     
     @Override
     public RuleNodePath getRuleNodePath() {
diff --git 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/metadata/nodepath/EncryptRuleNodePathProvider.java
 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/metadata/nodepath/EncryptRuleNodePathProvider.java
index 3a88e1f8e53..377df7ca220 100644
--- 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/metadata/nodepath/EncryptRuleNodePathProvider.java
+++ 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/metadata/nodepath/EncryptRuleNodePathProvider.java
@@ -28,11 +28,13 @@ import java.util.Collections;
  */
 public final class EncryptRuleNodePathProvider implements RuleNodePathProvider 
{
     
+    public static final String RULE_TYPE = "encrypt";
+    
     public static final String TABLES = "tables";
     
     public static final String ENCRYPTORS = "encryptors";
     
-    private static final RuleNodePath INSTANCE = new RuleNodePath("encrypt", 
Arrays.asList(TABLES, ENCRYPTORS), Collections.emptyList());
+    private static final RuleNodePath INSTANCE = new RuleNodePath(RULE_TYPE, 
Arrays.asList(TABLES, ENCRYPTORS), Collections.emptyList());
     
     @Override
     public RuleNodePath getRuleNodePath() {
diff --git 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/subscriber/EncryptTableChangedGenerator.java
 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/subscriber/EncryptTableChangedGenerator.java
index 69791447e00..1362a8485dd 100644
--- 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/subscriber/EncryptTableChangedGenerator.java
+++ 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/subscriber/EncryptTableChangedGenerator.java
@@ -19,6 +19,7 @@ package org.apache.shardingsphere.encrypt.subscriber;
 
 import org.apache.shardingsphere.encrypt.api.config.EncryptRuleConfiguration;
 import 
org.apache.shardingsphere.encrypt.api.config.rule.EncryptTableRuleConfiguration;
+import 
org.apache.shardingsphere.encrypt.metadata.nodepath.EncryptRuleNodePathProvider;
 import org.apache.shardingsphere.encrypt.rule.EncryptRule;
 import 
org.apache.shardingsphere.encrypt.yaml.config.rule.YamlEncryptTableRuleConfiguration;
 import 
org.apache.shardingsphere.encrypt.yaml.swapper.rule.YamlEncryptTableRuleConfigurationSwapper;
@@ -37,8 +38,6 @@ import java.util.LinkedList;
  */
 public final class EncryptTableChangedGenerator implements 
RuleItemConfigurationChangedGenerator<EncryptRuleConfiguration, 
EncryptTableRuleConfiguration> {
     
-    public static final String TYPE = "Encrypt.Table";
-    
     @Override
     public EncryptTableRuleConfiguration 
swapRuleItemConfigurationFromEvent(final AlterRuleItemEvent event, final String 
yamlContent) {
         return new 
YamlEncryptTableRuleConfigurationSwapper().swapToObject(YamlEngine.unmarshal(yamlContent,
 YamlEncryptTableRuleConfiguration.class));
@@ -69,6 +68,6 @@ public final class EncryptTableChangedGenerator implements 
RuleItemConfiguration
     
     @Override
     public String getType() {
-        return TYPE;
+        return EncryptRuleNodePathProvider.RULE_TYPE + "." + 
EncryptRuleNodePathProvider.TABLES;
     }
 }
diff --git 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/subscriber/EncryptorChangedGenerator.java
 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/subscriber/EncryptorChangedGenerator.java
index fad3834f35d..9edf9ad7ad7 100644
--- 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/subscriber/EncryptorChangedGenerator.java
+++ 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/subscriber/EncryptorChangedGenerator.java
@@ -18,6 +18,7 @@
 package org.apache.shardingsphere.encrypt.subscriber;
 
 import org.apache.shardingsphere.encrypt.api.config.EncryptRuleConfiguration;
+import 
org.apache.shardingsphere.encrypt.metadata.nodepath.EncryptRuleNodePathProvider;
 import org.apache.shardingsphere.encrypt.rule.EncryptRule;
 import org.apache.shardingsphere.infra.config.algorithm.AlgorithmConfiguration;
 import 
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
@@ -38,8 +39,6 @@ import java.util.LinkedList;
  */
 public final class EncryptorChangedGenerator implements 
RuleItemConfigurationChangedGenerator<EncryptRuleConfiguration, 
AlgorithmConfiguration> {
     
-    public static final String TYPE = "Encrypt.Encryptor";
-    
     @Override
     public AlgorithmConfiguration swapRuleItemConfigurationFromEvent(final 
AlterRuleItemEvent event, final String yamlContent) {
         return new 
YamlAlgorithmConfigurationSwapper().swapToObject(YamlEngine.unmarshal(yamlContent,
 YamlAlgorithmConfiguration.class));
@@ -68,6 +67,6 @@ public final class EncryptorChangedGenerator implements 
RuleItemConfigurationCha
     
     @Override
     public String getType() {
-        return TYPE;
+        return EncryptRuleNodePathProvider.RULE_TYPE + "." + 
EncryptRuleNodePathProvider.ENCRYPTORS;
     }
 }
diff --git 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/subscriber/compatible/CompatibleEncryptTableChangedGenerator.java
 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/subscriber/compatible/CompatibleEncryptTableChangedGenerator.java
index b463ced9033..e25912f65bd 100644
--- 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/subscriber/compatible/CompatibleEncryptTableChangedGenerator.java
+++ 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/subscriber/compatible/CompatibleEncryptTableChangedGenerator.java
@@ -19,6 +19,7 @@ package 
org.apache.shardingsphere.encrypt.subscriber.compatible;
 
 import 
org.apache.shardingsphere.encrypt.api.config.CompatibleEncryptRuleConfiguration;
 import 
org.apache.shardingsphere.encrypt.api.config.rule.EncryptTableRuleConfiguration;
+import 
org.apache.shardingsphere.encrypt.metadata.nodepath.CompatibleEncryptRuleNodePathProvider;
 import org.apache.shardingsphere.encrypt.rule.EncryptRule;
 import 
org.apache.shardingsphere.encrypt.yaml.config.rule.YamlEncryptTableRuleConfiguration;
 import 
org.apache.shardingsphere.encrypt.yaml.swapper.rule.YamlEncryptTableRuleConfigurationSwapper;
@@ -39,8 +40,6 @@ import java.util.LinkedList;
 @Deprecated
 public final class CompatibleEncryptTableChangedGenerator implements 
RuleItemConfigurationChangedGenerator<CompatibleEncryptRuleConfiguration, 
EncryptTableRuleConfiguration> {
     
-    public static final String TYPE = "Encrypt.CompatibleTable";
-    
     @Override
     public EncryptTableRuleConfiguration 
swapRuleItemConfigurationFromEvent(final AlterRuleItemEvent event, final String 
yamlContent) {
         return new 
YamlEncryptTableRuleConfigurationSwapper().swapToObject(YamlEngine.unmarshal(yamlContent,
 YamlEncryptTableRuleConfiguration.class));
@@ -71,6 +70,6 @@ public final class CompatibleEncryptTableChangedGenerator 
implements RuleItemCon
     
     @Override
     public String getType() {
-        return TYPE;
+        return CompatibleEncryptRuleNodePathProvider.RULE_TYPE + "." + 
CompatibleEncryptRuleNodePathProvider.TABLES;
     }
 }
diff --git 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/subscriber/compatible/CompatibleEncryptorChangedGenerator.java
 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/subscriber/compatible/CompatibleEncryptorChangedGenerator.java
index a49a546dbd9..dad9f5f9f33 100644
--- 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/subscriber/compatible/CompatibleEncryptorChangedGenerator.java
+++ 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/subscriber/compatible/CompatibleEncryptorChangedGenerator.java
@@ -18,6 +18,7 @@
 package org.apache.shardingsphere.encrypt.subscriber.compatible;
 
 import 
org.apache.shardingsphere.encrypt.api.config.CompatibleEncryptRuleConfiguration;
+import 
org.apache.shardingsphere.encrypt.metadata.nodepath.CompatibleEncryptRuleNodePathProvider;
 import org.apache.shardingsphere.encrypt.rule.EncryptRule;
 import org.apache.shardingsphere.infra.config.algorithm.AlgorithmConfiguration;
 import 
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
@@ -40,8 +41,6 @@ import java.util.LinkedList;
 @Deprecated
 public final class CompatibleEncryptorChangedGenerator implements 
RuleItemConfigurationChangedGenerator<CompatibleEncryptRuleConfiguration, 
AlgorithmConfiguration> {
     
-    public static final String TYPE = "Encrypt.CompatibleEncryptor";
-    
     @Override
     public AlgorithmConfiguration swapRuleItemConfigurationFromEvent(final 
AlterRuleItemEvent event, final String yamlContent) {
         return new 
YamlAlgorithmConfigurationSwapper().swapToObject(YamlEngine.unmarshal(yamlContent,
 YamlAlgorithmConfiguration.class));
@@ -70,6 +69,6 @@ public final class CompatibleEncryptorChangedGenerator 
implements RuleItemConfig
     
     @Override
     public String getType() {
-        return TYPE;
+        return CompatibleEncryptRuleNodePathProvider.RULE_TYPE + "." + 
CompatibleEncryptRuleNodePathProvider.ENCRYPTORS;
     }
 }
diff --git 
a/features/mask/core/src/main/java/org/apache/shardingsphere/mask/event/MaskRuleChangedEventCreator.java
 
b/features/mask/core/src/main/java/org/apache/shardingsphere/mask/event/MaskRuleChangedEventCreator.java
index 89cbf382fcb..84ee89abc74 100644
--- 
a/features/mask/core/src/main/java/org/apache/shardingsphere/mask/event/MaskRuleChangedEventCreator.java
+++ 
b/features/mask/core/src/main/java/org/apache/shardingsphere/mask/event/MaskRuleChangedEventCreator.java
@@ -19,8 +19,6 @@ package org.apache.shardingsphere.mask.event;
 
 import org.apache.shardingsphere.infra.rule.event.GovernanceEvent;
 import 
org.apache.shardingsphere.mask.metadata.nodepath.MaskRuleNodePathProvider;
-import org.apache.shardingsphere.mask.subscriber.MaskAlgorithmChangedGenerator;
-import org.apache.shardingsphere.mask.subscriber.MaskTableChangedGenerator;
 import org.apache.shardingsphere.mode.event.DataChangedEvent;
 import org.apache.shardingsphere.mode.event.NamedRuleItemChangedEventCreator;
 import org.apache.shardingsphere.mode.spi.RuleChangedEventCreator;
@@ -32,18 +30,7 @@ public final class MaskRuleChangedEventCreator implements 
RuleChangedEventCreato
     
     @Override
     public GovernanceEvent create(final String databaseName, final 
DataChangedEvent event, final String itemType, final String itemName) {
-        return new NamedRuleItemChangedEventCreator().create(databaseName, 
itemName, event, getRuleItemConfigurationChangedGeneratorType(itemType));
-    }
-    
-    private String getRuleItemConfigurationChangedGeneratorType(final String 
itemType) {
-        switch (itemType) {
-            case MaskRuleNodePathProvider.TABLES:
-                return MaskTableChangedGenerator.TYPE;
-            case MaskRuleNodePathProvider.ALGORITHMS:
-                return MaskAlgorithmChangedGenerator.TYPE;
-            default:
-                throw new UnsupportedOperationException(itemType);
-        }
+        return new NamedRuleItemChangedEventCreator().create(databaseName, 
itemType, event, MaskRuleNodePathProvider.RULE_TYPE + "." + itemType);
     }
     
     @Override
diff --git 
a/features/mask/core/src/main/java/org/apache/shardingsphere/mask/metadata/nodepath/MaskRuleNodePathProvider.java
 
b/features/mask/core/src/main/java/org/apache/shardingsphere/mask/metadata/nodepath/MaskRuleNodePathProvider.java
index b7136abafac..b2c99a23ecf 100644
--- 
a/features/mask/core/src/main/java/org/apache/shardingsphere/mask/metadata/nodepath/MaskRuleNodePathProvider.java
+++ 
b/features/mask/core/src/main/java/org/apache/shardingsphere/mask/metadata/nodepath/MaskRuleNodePathProvider.java
@@ -28,11 +28,13 @@ import java.util.Collections;
  */
 public final class MaskRuleNodePathProvider implements RuleNodePathProvider {
     
+    public static final String RULE_TYPE = "mask";
+    
     public static final String TABLES = "tables";
     
     public static final String ALGORITHMS = "algorithms";
     
-    private static final RuleNodePath INSTANCE = new RuleNodePath("mask", 
Arrays.asList(TABLES, ALGORITHMS), Collections.emptyList());
+    private static final RuleNodePath INSTANCE = new RuleNodePath(RULE_TYPE, 
Arrays.asList(TABLES, ALGORITHMS), Collections.emptyList());
     
     @Override
     public RuleNodePath getRuleNodePath() {
diff --git 
a/features/mask/core/src/main/java/org/apache/shardingsphere/mask/subscriber/MaskAlgorithmChangedGenerator.java
 
b/features/mask/core/src/main/java/org/apache/shardingsphere/mask/subscriber/MaskAlgorithmChangedGenerator.java
index 823d78c2206..a10a92049f0 100644
--- 
a/features/mask/core/src/main/java/org/apache/shardingsphere/mask/subscriber/MaskAlgorithmChangedGenerator.java
+++ 
b/features/mask/core/src/main/java/org/apache/shardingsphere/mask/subscriber/MaskAlgorithmChangedGenerator.java
@@ -27,6 +27,7 @@ import org.apache.shardingsphere.infra.util.yaml.YamlEngine;
 import 
org.apache.shardingsphere.infra.yaml.config.pojo.algorithm.YamlAlgorithmConfiguration;
 import 
org.apache.shardingsphere.infra.yaml.config.swapper.algorithm.YamlAlgorithmConfigurationSwapper;
 import org.apache.shardingsphere.mask.api.config.MaskRuleConfiguration;
+import 
org.apache.shardingsphere.mask.metadata.nodepath.MaskRuleNodePathProvider;
 import org.apache.shardingsphere.mask.rule.MaskRule;
 import 
org.apache.shardingsphere.mode.subsciber.RuleItemConfigurationChangedGenerator;
 
@@ -38,8 +39,6 @@ import java.util.LinkedList;
  */
 public final class MaskAlgorithmChangedGenerator implements 
RuleItemConfigurationChangedGenerator<MaskRuleConfiguration, 
AlgorithmConfiguration> {
     
-    public static final String TYPE = "Mask.Algorithm";
-    
     @Override
     public AlgorithmConfiguration swapRuleItemConfigurationFromEvent(final 
AlterRuleItemEvent event, final String yamlContent) {
         return new 
YamlAlgorithmConfigurationSwapper().swapToObject(YamlEngine.unmarshal(yamlContent,
 YamlAlgorithmConfiguration.class));
@@ -67,6 +66,6 @@ public final class MaskAlgorithmChangedGenerator implements 
RuleItemConfiguratio
     
     @Override
     public String getType() {
-        return TYPE;
+        return MaskRuleNodePathProvider.RULE_TYPE + "." + 
MaskRuleNodePathProvider.ALGORITHMS;
     }
 }
diff --git 
a/features/mask/core/src/main/java/org/apache/shardingsphere/mask/subscriber/MaskTableChangedGenerator.java
 
b/features/mask/core/src/main/java/org/apache/shardingsphere/mask/subscriber/MaskTableChangedGenerator.java
index a53c74b16ea..be8c9eca213 100644
--- 
a/features/mask/core/src/main/java/org/apache/shardingsphere/mask/subscriber/MaskTableChangedGenerator.java
+++ 
b/features/mask/core/src/main/java/org/apache/shardingsphere/mask/subscriber/MaskTableChangedGenerator.java
@@ -24,6 +24,7 @@ import 
org.apache.shardingsphere.infra.rule.event.rule.drop.DropRuleItemEvent;
 import org.apache.shardingsphere.infra.util.yaml.YamlEngine;
 import org.apache.shardingsphere.mask.api.config.MaskRuleConfiguration;
 import 
org.apache.shardingsphere.mask.api.config.rule.MaskTableRuleConfiguration;
+import 
org.apache.shardingsphere.mask.metadata.nodepath.MaskRuleNodePathProvider;
 import org.apache.shardingsphere.mask.rule.MaskRule;
 import 
org.apache.shardingsphere.mask.yaml.config.rule.YamlMaskTableRuleConfiguration;
 import 
org.apache.shardingsphere.mask.yaml.swapper.rule.YamlMaskTableRuleConfigurationSwapper;
@@ -37,8 +38,6 @@ import java.util.LinkedList;
  */
 public final class MaskTableChangedGenerator implements 
RuleItemConfigurationChangedGenerator<MaskRuleConfiguration, 
MaskTableRuleConfiguration> {
     
-    public static final String TYPE = "Mask.Table";
-    
     @Override
     public MaskTableRuleConfiguration swapRuleItemConfigurationFromEvent(final 
AlterRuleItemEvent event, final String yamlContent) {
         return new 
YamlMaskTableRuleConfigurationSwapper().swapToObject(YamlEngine.unmarshal(yamlContent,
 YamlMaskTableRuleConfiguration.class));
@@ -68,6 +67,6 @@ public final class MaskTableChangedGenerator implements 
RuleItemConfigurationCha
     
     @Override
     public String getType() {
-        return TYPE;
+        return MaskRuleNodePathProvider.RULE_TYPE + "." + 
MaskRuleNodePathProvider.TABLES;
     }
 }
diff --git 
a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/event/ReadwriteSplittingRuleChangedEventCreator.java
 
b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/event/ReadwriteSplittingRuleChangedEventCreator.java
index 575b545aa48..97b986e21ca 100644
--- 
a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/event/ReadwriteSplittingRuleChangedEventCreator.java
+++ 
b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/event/ReadwriteSplittingRuleChangedEventCreator.java
@@ -22,8 +22,6 @@ import org.apache.shardingsphere.mode.event.DataChangedEvent;
 import org.apache.shardingsphere.mode.event.NamedRuleItemChangedEventCreator;
 import org.apache.shardingsphere.mode.spi.RuleChangedEventCreator;
 import 
org.apache.shardingsphere.readwritesplitting.metadata.nodepath.ReadwriteSplittingRuleNodePathProvider;
-import 
org.apache.shardingsphere.readwritesplitting.subscriber.ReadwriteSplittingDataSourceChangedGenerator;
-import 
org.apache.shardingsphere.readwritesplitting.subscriber.ReadwriteSplittingLoadBalancerChangedGenerator;
 
 /**
  * Readwrite-splitting rule changed event creator.
@@ -32,18 +30,7 @@ public final class ReadwriteSplittingRuleChangedEventCreator 
implements RuleChan
     
     @Override
     public GovernanceEvent create(final String databaseName, final 
DataChangedEvent event, final String itemType, final String itemName) {
-        return new NamedRuleItemChangedEventCreator().create(databaseName, 
itemName, event, getRuleItemConfigurationChangedGeneratorType(itemType));
-    }
-    
-    private String getRuleItemConfigurationChangedGeneratorType(final String 
itemType) {
-        switch (itemType) {
-            case ReadwriteSplittingRuleNodePathProvider.DATA_SOURCES:
-                return ReadwriteSplittingDataSourceChangedGenerator.TYPE;
-            case ReadwriteSplittingRuleNodePathProvider.LOAD_BALANCERS:
-                return ReadwriteSplittingLoadBalancerChangedGenerator.TYPE;
-            default:
-                throw new UnsupportedOperationException(itemType);
-        }
+        return new NamedRuleItemChangedEventCreator().create(databaseName, 
itemType, event, ReadwriteSplittingRuleNodePathProvider.RULE_TYPE + "." + 
itemType);
     }
     
     @Override
diff --git 
a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/metadata/nodepath/ReadwriteSplittingRuleNodePathProvider.java
 
b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/metadata/nodepath/ReadwriteSplittingRuleNodePathProvider.java
index 467037c8b89..a3a42f15bbc 100644
--- 
a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/metadata/nodepath/ReadwriteSplittingRuleNodePathProvider.java
+++ 
b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/metadata/nodepath/ReadwriteSplittingRuleNodePathProvider.java
@@ -28,11 +28,13 @@ import java.util.Collections;
  */
 public final class ReadwriteSplittingRuleNodePathProvider implements 
RuleNodePathProvider {
     
+    public static final String RULE_TYPE = "readwrite_splitting";
+    
     public static final String DATA_SOURCES = "data_sources";
     
     public static final String LOAD_BALANCERS = "load_balancers";
     
-    private static final RuleNodePath INSTANCE = new 
RuleNodePath("readwrite_splitting", Arrays.asList(DATA_SOURCES, 
LOAD_BALANCERS), Collections.emptyList());
+    private static final RuleNodePath INSTANCE = new RuleNodePath(RULE_TYPE, 
Arrays.asList(DATA_SOURCES, LOAD_BALANCERS), Collections.emptyList());
     
     @Override
     public RuleNodePath getRuleNodePath() {
diff --git 
a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/subscriber/ReadwriteSplittingDataSourceChangedGenerator.java
 
b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/subscriber/ReadwriteSplittingDataSourceChangedGenerator.java
index d887d0b22b1..b2f9b28cb13 100644
--- 
a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/subscriber/ReadwriteSplittingDataSourceChangedGenerator.java
+++ 
b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/subscriber/ReadwriteSplittingDataSourceChangedGenerator.java
@@ -28,6 +28,7 @@ import 
org.apache.shardingsphere.mode.subsciber.RuleItemConfigurationChangedGene
 import 
org.apache.shardingsphere.readwritesplitting.api.ReadwriteSplittingRuleConfiguration;
 import 
org.apache.shardingsphere.readwritesplitting.api.rule.ReadwriteSplittingDataSourceRuleConfiguration;
 import 
org.apache.shardingsphere.readwritesplitting.api.transaction.TransactionalReadQueryStrategy;
+import 
org.apache.shardingsphere.readwritesplitting.metadata.nodepath.ReadwriteSplittingRuleNodePathProvider;
 import 
org.apache.shardingsphere.readwritesplitting.rule.ReadwriteSplittingRule;
 import 
org.apache.shardingsphere.readwritesplitting.yaml.config.rule.YamlReadwriteSplittingDataSourceRuleConfiguration;
 
@@ -40,8 +41,6 @@ import java.util.Optional;
  */
 public final class ReadwriteSplittingDataSourceChangedGenerator implements 
RuleItemConfigurationChangedGenerator<ReadwriteSplittingRuleConfiguration, 
ReadwriteSplittingDataSourceRuleConfiguration> {
     
-    public static final String TYPE = "ReadwriteSplitting.DataSource";
-    
     @Override
     public ReadwriteSplittingDataSourceRuleConfiguration 
swapRuleItemConfigurationFromEvent(final AlterRuleItemEvent event, final String 
yamlContent) {
         YamlReadwriteSplittingDataSourceRuleConfiguration 
yamlDataSourceRuleConfig = YamlEngine.unmarshal(yamlContent, 
YamlReadwriteSplittingDataSourceRuleConfiguration.class);
@@ -77,6 +76,6 @@ public final class 
ReadwriteSplittingDataSourceChangedGenerator implements RuleI
     
     @Override
     public String getType() {
-        return TYPE;
+        return ReadwriteSplittingRuleNodePathProvider.RULE_TYPE + "." + 
ReadwriteSplittingRuleNodePathProvider.DATA_SOURCES;
     }
 }
diff --git 
a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/subscriber/ReadwriteSplittingLoadBalancerChangedGenerator.java
 
b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/subscriber/ReadwriteSplittingLoadBalancerChangedGenerator.java
index 0e29bc0c606..64ec55a6d7d 100644
--- 
a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/subscriber/ReadwriteSplittingLoadBalancerChangedGenerator.java
+++ 
b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/subscriber/ReadwriteSplittingLoadBalancerChangedGenerator.java
@@ -28,6 +28,7 @@ import 
org.apache.shardingsphere.infra.yaml.config.pojo.algorithm.YamlAlgorithmC
 import 
org.apache.shardingsphere.infra.yaml.config.swapper.algorithm.YamlAlgorithmConfigurationSwapper;
 import 
org.apache.shardingsphere.mode.subsciber.RuleItemConfigurationChangedGenerator;
 import 
org.apache.shardingsphere.readwritesplitting.api.ReadwriteSplittingRuleConfiguration;
+import 
org.apache.shardingsphere.readwritesplitting.metadata.nodepath.ReadwriteSplittingRuleNodePathProvider;
 import 
org.apache.shardingsphere.readwritesplitting.rule.ReadwriteSplittingRule;
 
 import java.util.LinkedHashMap;
@@ -38,8 +39,6 @@ import java.util.LinkedList;
  */
 public final class ReadwriteSplittingLoadBalancerChangedGenerator implements 
RuleItemConfigurationChangedGenerator<ReadwriteSplittingRuleConfiguration, 
AlgorithmConfiguration> {
     
-    public static final String TYPE = "ReadwriteSplitting.LoadBalancer";
-    
     @Override
     public AlgorithmConfiguration swapRuleItemConfigurationFromEvent(final 
AlterRuleItemEvent event, final String yamlContent) {
         return new 
YamlAlgorithmConfigurationSwapper().swapToObject(YamlEngine.unmarshal(yamlContent,
 YamlAlgorithmConfiguration.class));
@@ -63,6 +62,6 @@ public final class 
ReadwriteSplittingLoadBalancerChangedGenerator implements Rul
     
     @Override
     public String getType() {
-        return TYPE;
+        return ReadwriteSplittingRuleNodePathProvider.RULE_TYPE + "." + 
ReadwriteSplittingRuleNodePathProvider.LOAD_BALANCERS;
     }
 }
diff --git 
a/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/event/ShadowRuleChangedEventCreator.java
 
b/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/event/ShadowRuleChangedEventCreator.java
index 5e25bf97434..35b8b394d6d 100644
--- 
a/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/event/ShadowRuleChangedEventCreator.java
+++ 
b/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/event/ShadowRuleChangedEventCreator.java
@@ -23,10 +23,6 @@ import 
org.apache.shardingsphere.mode.event.NamedRuleItemChangedEventCreator;
 import org.apache.shardingsphere.mode.event.UniqueRuleItemChangedEventCreator;
 import org.apache.shardingsphere.mode.spi.RuleChangedEventCreator;
 import 
org.apache.shardingsphere.shadow.metadata.nodepath.ShadowRuleNodePathProvider;
-import 
org.apache.shardingsphere.shadow.subscriber.DefaultShadowAlgorithmNameChangedGenerator;
-import 
org.apache.shardingsphere.shadow.subscriber.ShadowAlgorithmChangedGenerator;
-import 
org.apache.shardingsphere.shadow.subscriber.ShadowDataSourceChangedGenerator;
-import org.apache.shardingsphere.shadow.subscriber.ShadowTableChangedGenerator;
 
 /**
  * Shadow rule changed event creator.
@@ -35,32 +31,12 @@ public final class ShadowRuleChangedEventCreator implements 
RuleChangedEventCrea
     
     @Override
     public GovernanceEvent create(final String databaseName, final 
DataChangedEvent event, final String itemType, final String itemName) {
-        return new NamedRuleItemChangedEventCreator().create(databaseName, 
itemName, event, getNamedRuleItemConfigurationChangedGeneratorType(itemType));
+        return new NamedRuleItemChangedEventCreator().create(databaseName, 
itemType, event, ShadowRuleNodePathProvider.RULE_TYPE + "." + itemType);
     }
     
     @Override
     public GovernanceEvent create(final String databaseName, final 
DataChangedEvent event, final String itemType) {
-        return new UniqueRuleItemChangedEventCreator().create(databaseName, 
event, getUniqueRuleItemConfigurationChangedGeneratorType(itemType));
-    }
-    
-    private String getNamedRuleItemConfigurationChangedGeneratorType(final 
String itemType) {
-        switch (itemType) {
-            case ShadowRuleNodePathProvider.DATA_SOURCES:
-                return ShadowDataSourceChangedGenerator.TYPE;
-            case ShadowRuleNodePathProvider.TABLES:
-                return ShadowTableChangedGenerator.TYPE;
-            case ShadowRuleNodePathProvider.ALGORITHMS:
-                return ShadowAlgorithmChangedGenerator.TYPE;
-            default:
-                throw new UnsupportedOperationException(itemType);
-        }
-    }
-    
-    private String getUniqueRuleItemConfigurationChangedGeneratorType(final 
String itemType) {
-        if (itemType.equals(ShadowRuleNodePathProvider.DEFAULT_ALGORITHM)) {
-            return DefaultShadowAlgorithmNameChangedGenerator.TYPE;
-        }
-        throw new UnsupportedOperationException(itemType);
+        return new UniqueRuleItemChangedEventCreator().create(databaseName, 
event, ShadowRuleNodePathProvider.RULE_TYPE + "." + itemType);
     }
     
     @Override
diff --git 
a/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/metadata/nodepath/ShadowRuleNodePathProvider.java
 
b/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/metadata/nodepath/ShadowRuleNodePathProvider.java
index ae25ff72719..6d0f7a4e0ce 100644
--- 
a/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/metadata/nodepath/ShadowRuleNodePathProvider.java
+++ 
b/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/metadata/nodepath/ShadowRuleNodePathProvider.java
@@ -28,6 +28,8 @@ import java.util.Collections;
  */
 public final class ShadowRuleNodePathProvider implements RuleNodePathProvider {
     
+    public static final String RULE_TYPE = "shadow";
+    
     public static final String DATA_SOURCES = "data_sources";
     
     public static final String TABLES = "tables";
@@ -36,7 +38,7 @@ public final class ShadowRuleNodePathProvider implements 
RuleNodePathProvider {
     
     public static final String DEFAULT_ALGORITHM = "default_algorithm_name";
     
-    private static final RuleNodePath INSTANCE = new RuleNodePath("shadow", 
Arrays.asList(DATA_SOURCES, TABLES, ALGORITHMS), 
Collections.singleton(DEFAULT_ALGORITHM));
+    private static final RuleNodePath INSTANCE = new RuleNodePath(RULE_TYPE, 
Arrays.asList(DATA_SOURCES, TABLES, ALGORITHMS), 
Collections.singleton(DEFAULT_ALGORITHM));
     
     @Override
     public RuleNodePath getRuleNodePath() {
diff --git 
a/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/subscriber/DefaultShadowAlgorithmNameChangedGenerator.java
 
b/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/subscriber/DefaultShadowAlgorithmNameChangedGenerator.java
index 6f4b998bc27..4ce0c71494f 100644
--- 
a/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/subscriber/DefaultShadowAlgorithmNameChangedGenerator.java
+++ 
b/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/subscriber/DefaultShadowAlgorithmNameChangedGenerator.java
@@ -22,6 +22,7 @@ import 
org.apache.shardingsphere.infra.rule.event.rule.alter.AlterRuleItemEvent;
 import org.apache.shardingsphere.infra.rule.event.rule.drop.DropRuleItemEvent;
 import 
org.apache.shardingsphere.mode.subsciber.RuleItemConfigurationChangedGenerator;
 import org.apache.shardingsphere.shadow.api.config.ShadowRuleConfiguration;
+import 
org.apache.shardingsphere.shadow.metadata.nodepath.ShadowRuleNodePathProvider;
 import org.apache.shardingsphere.shadow.rule.ShadowRule;
 
 /**
@@ -53,6 +54,6 @@ public final class DefaultShadowAlgorithmNameChangedGenerator 
implements RuleIte
     
     @Override
     public String getType() {
-        return TYPE;
+        return ShadowRuleNodePathProvider.RULE_TYPE + "." + 
ShadowRuleNodePathProvider.DEFAULT_ALGORITHM;
     }
 }
diff --git 
a/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/subscriber/ShadowAlgorithmChangedGenerator.java
 
b/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/subscriber/ShadowAlgorithmChangedGenerator.java
index d74a3eb397e..e9f7ac63cb7 100644
--- 
a/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/subscriber/ShadowAlgorithmChangedGenerator.java
+++ 
b/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/subscriber/ShadowAlgorithmChangedGenerator.java
@@ -28,6 +28,7 @@ import 
org.apache.shardingsphere.infra.yaml.config.pojo.algorithm.YamlAlgorithmC
 import 
org.apache.shardingsphere.infra.yaml.config.swapper.algorithm.YamlAlgorithmConfigurationSwapper;
 import 
org.apache.shardingsphere.mode.subsciber.RuleItemConfigurationChangedGenerator;
 import org.apache.shardingsphere.shadow.api.config.ShadowRuleConfiguration;
+import 
org.apache.shardingsphere.shadow.metadata.nodepath.ShadowRuleNodePathProvider;
 import org.apache.shardingsphere.shadow.rule.ShadowRule;
 
 /**
@@ -59,6 +60,6 @@ public final class ShadowAlgorithmChangedGenerator implements 
RuleItemConfigurat
     
     @Override
     public String getType() {
-        return TYPE;
+        return ShadowRuleNodePathProvider.RULE_TYPE + "." + 
ShadowRuleNodePathProvider.ALGORITHMS;
     }
 }
diff --git 
a/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/subscriber/ShadowDataSourceChangedGenerator.java
 
b/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/subscriber/ShadowDataSourceChangedGenerator.java
index 741759bbfb1..92768834a17 100644
--- 
a/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/subscriber/ShadowDataSourceChangedGenerator.java
+++ 
b/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/subscriber/ShadowDataSourceChangedGenerator.java
@@ -26,6 +26,7 @@ import org.apache.shardingsphere.infra.util.yaml.YamlEngine;
 import 
org.apache.shardingsphere.mode.subsciber.RuleItemConfigurationChangedGenerator;
 import org.apache.shardingsphere.shadow.api.config.ShadowRuleConfiguration;
 import 
org.apache.shardingsphere.shadow.api.config.datasource.ShadowDataSourceConfiguration;
+import 
org.apache.shardingsphere.shadow.metadata.nodepath.ShadowRuleNodePathProvider;
 import org.apache.shardingsphere.shadow.rule.ShadowRule;
 import 
org.apache.shardingsphere.shadow.yaml.config.datasource.YamlShadowDataSourceConfiguration;
 
@@ -34,8 +35,6 @@ import 
org.apache.shardingsphere.shadow.yaml.config.datasource.YamlShadowDataSou
  */
 public final class ShadowDataSourceChangedGenerator implements 
RuleItemConfigurationChangedGenerator<ShadowRuleConfiguration, 
ShadowDataSourceConfiguration> {
     
-    public static final String TYPE = "Shadow.DataSource";
-    
     @Override
     public ShadowDataSourceConfiguration 
swapRuleItemConfigurationFromEvent(final AlterRuleItemEvent event, final String 
yamlContent) {
         YamlShadowDataSourceConfiguration yamlConfig = 
YamlEngine.unmarshal(yamlContent, YamlShadowDataSourceConfiguration.class);
@@ -61,6 +60,6 @@ public final class ShadowDataSourceChangedGenerator 
implements RuleItemConfigura
     
     @Override
     public String getType() {
-        return TYPE;
+        return ShadowRuleNodePathProvider.RULE_TYPE + "." + 
ShadowRuleNodePathProvider.DATA_SOURCES;
     }
 }
diff --git 
a/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/subscriber/ShadowTableChangedGenerator.java
 
b/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/subscriber/ShadowTableChangedGenerator.java
index 253eddb546b..d6d17624fb8 100644
--- 
a/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/subscriber/ShadowTableChangedGenerator.java
+++ 
b/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/subscriber/ShadowTableChangedGenerator.java
@@ -26,6 +26,7 @@ import org.apache.shardingsphere.infra.util.yaml.YamlEngine;
 import 
org.apache.shardingsphere.mode.subsciber.RuleItemConfigurationChangedGenerator;
 import org.apache.shardingsphere.shadow.api.config.ShadowRuleConfiguration;
 import 
org.apache.shardingsphere.shadow.api.config.table.ShadowTableConfiguration;
+import 
org.apache.shardingsphere.shadow.metadata.nodepath.ShadowRuleNodePathProvider;
 import org.apache.shardingsphere.shadow.rule.ShadowRule;
 import 
org.apache.shardingsphere.shadow.yaml.config.table.YamlShadowTableConfiguration;
 import 
org.apache.shardingsphere.shadow.yaml.swapper.table.YamlShadowTableConfigurationSwapper;
@@ -35,8 +36,6 @@ import 
org.apache.shardingsphere.shadow.yaml.swapper.table.YamlShadowTableConfig
  */
 public final class ShadowTableChangedGenerator implements 
RuleItemConfigurationChangedGenerator<ShadowRuleConfiguration, 
ShadowTableConfiguration> {
     
-    public static final String TYPE = "Shadow.Table";
-    
     @Override
     public ShadowTableConfiguration swapRuleItemConfigurationFromEvent(final 
AlterRuleItemEvent event, final String yamlContent) {
         return new 
YamlShadowTableConfigurationSwapper().swapToObject(YamlEngine.unmarshal(yamlContent,
 YamlShadowTableConfiguration.class));
@@ -59,6 +58,6 @@ public final class ShadowTableChangedGenerator implements 
RuleItemConfigurationC
     
     @Override
     public String getType() {
-        return TYPE;
+        return ShadowRuleNodePathProvider.RULE_TYPE + "." + 
ShadowRuleNodePathProvider.TABLES;
     }
 }
diff --git 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/event/ShardingRuleChangedEventCreator.java
 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/event/ShardingRuleChangedEventCreator.java
index 99fb271e375..c86182568cf 100644
--- 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/event/ShardingRuleChangedEventCreator.java
+++ 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/event/ShardingRuleChangedEventCreator.java
@@ -23,18 +23,6 @@ import 
org.apache.shardingsphere.mode.event.NamedRuleItemChangedEventCreator;
 import org.apache.shardingsphere.mode.event.UniqueRuleItemChangedEventCreator;
 import org.apache.shardingsphere.mode.spi.RuleChangedEventCreator;
 import 
org.apache.shardingsphere.sharding.metadata.nodepath.ShardingRuleNodePathProvider;
-import 
org.apache.shardingsphere.sharding.subscriber.DefaultDatabaseShardingStrategyChangedGenerator;
-import 
org.apache.shardingsphere.sharding.subscriber.DefaultKeyGenerateStrategyChangedGenerator;
-import 
org.apache.shardingsphere.sharding.subscriber.DefaultShardingAuditorStrategyChangedGenerator;
-import 
org.apache.shardingsphere.sharding.subscriber.DefaultShardingColumnChangedGenerator;
-import 
org.apache.shardingsphere.sharding.subscriber.DefaultTableShardingStrategyChangedGenerator;
-import 
org.apache.shardingsphere.sharding.subscriber.KeyGeneratorChangedGenerator;
-import 
org.apache.shardingsphere.sharding.subscriber.ShardingAlgorithmChangedGenerator;
-import 
org.apache.shardingsphere.sharding.subscriber.ShardingAuditorChangedGenerator;
-import 
org.apache.shardingsphere.sharding.subscriber.ShardingAutoTableChangedGenerator;
-import 
org.apache.shardingsphere.sharding.subscriber.ShardingCacheChangedGenerator;
-import 
org.apache.shardingsphere.sharding.subscriber.ShardingTableChangedGenerator;
-import 
org.apache.shardingsphere.sharding.subscriber.ShardingTableReferenceChangedGenerator;
 
 /**
  * Sharding rule changed event creator.
@@ -43,50 +31,12 @@ public final class ShardingRuleChangedEventCreator 
implements RuleChangedEventCr
     
     @Override
     public GovernanceEvent create(final String databaseName, final 
DataChangedEvent event, final String itemType, final String itemName) {
-        return new NamedRuleItemChangedEventCreator().create(databaseName, 
itemName, event, getNamedRuleItemConfigurationChangedGeneratorType(itemType));
+        return new NamedRuleItemChangedEventCreator().create(databaseName, 
itemName, event, ShardingRuleNodePathProvider.RULE_TYPE + "." + itemType);
     }
     
     @Override
     public GovernanceEvent create(final String databaseName, final 
DataChangedEvent event, final String itemType) {
-        return new UniqueRuleItemChangedEventCreator().create(databaseName, 
event, getUniqueRuleItemConfigurationChangedGeneratorType(itemType));
-    }
-    
-    private String getNamedRuleItemConfigurationChangedGeneratorType(final 
String itemType) {
-        switch (itemType) {
-            case ShardingRuleNodePathProvider.TABLES:
-                return ShardingTableChangedGenerator.TYPE;
-            case ShardingRuleNodePathProvider.AUTO_TABLES:
-                return ShardingAutoTableChangedGenerator.TYPE;
-            case ShardingRuleNodePathProvider.BINDING_TABLES:
-                return ShardingTableReferenceChangedGenerator.TYPE;
-            case ShardingRuleNodePathProvider.ALGORITHMS:
-                return ShardingAlgorithmChangedGenerator.TYPE;
-            case ShardingRuleNodePathProvider.KEY_GENERATORS:
-                return KeyGeneratorChangedGenerator.TYPE;
-            case ShardingRuleNodePathProvider.AUDITORS:
-                return ShardingAuditorChangedGenerator.TYPE;
-            default:
-                throw new UnsupportedOperationException(itemType);
-        }
-    }
-    
-    private String getUniqueRuleItemConfigurationChangedGeneratorType(final 
String itemType) {
-        switch (itemType) {
-            case ShardingRuleNodePathProvider.DEFAULT_DATABASE_STRATEGY:
-                return DefaultDatabaseShardingStrategyChangedGenerator.TYPE;
-            case ShardingRuleNodePathProvider.DEFAULT_TABLE_STRATEGY:
-                return DefaultTableShardingStrategyChangedGenerator.TYPE;
-            case ShardingRuleNodePathProvider.DEFAULT_KEY_GENERATE_STRATEGY:
-                return DefaultKeyGenerateStrategyChangedGenerator.TYPE;
-            case ShardingRuleNodePathProvider.DEFAULT_AUDIT_STRATEGY:
-                return DefaultShardingAuditorStrategyChangedGenerator.TYPE;
-            case ShardingRuleNodePathProvider.DEFAULT_SHARDING_COLUMN:
-                return DefaultShardingColumnChangedGenerator.TYPE;
-            case ShardingRuleNodePathProvider.SHARDING_CACHE:
-                return ShardingCacheChangedGenerator.TYPE;
-            default:
-                throw new UnsupportedOperationException(itemType);
-        }
+        return new UniqueRuleItemChangedEventCreator().create(databaseName, 
event, ShardingRuleNodePathProvider.RULE_TYPE + "." + itemType);
     }
     
     @Override
diff --git 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/metadata/nodepath/ShardingRuleNodePathProvider.java
 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/metadata/nodepath/ShardingRuleNodePathProvider.java
index a911d3d5e0c..8c3e97bf7a2 100644
--- 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/metadata/nodepath/ShardingRuleNodePathProvider.java
+++ 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/metadata/nodepath/ShardingRuleNodePathProvider.java
@@ -27,6 +27,8 @@ import java.util.Arrays;
  */
 public final class ShardingRuleNodePathProvider implements 
RuleNodePathProvider {
     
+    public static final String RULE_TYPE = "sharding";
+    
     public static final String TABLES = "tables";
     
     public static final String AUTO_TABLES = "auto_tables";
@@ -53,7 +55,7 @@ public final class ShardingRuleNodePathProvider implements 
RuleNodePathProvider
     
     private static final String DEFAULT_STRATEGIES_PREFIX = 
"default_strategies.";
     
-    private static final RuleNodePath INSTANCE = new RuleNodePath("sharding",
+    private static final RuleNodePath INSTANCE = new RuleNodePath(RULE_TYPE,
             Arrays.asList(TABLES, AUTO_TABLES, BINDING_TABLES, ALGORITHMS, 
KEY_GENERATORS, AUDITORS),
             Arrays.asList(DEFAULT_STRATEGIES_PREFIX + 
DEFAULT_DATABASE_STRATEGY, DEFAULT_STRATEGIES_PREFIX + DEFAULT_TABLE_STRATEGY,
                     DEFAULT_STRATEGIES_PREFIX + DEFAULT_KEY_GENERATE_STRATEGY, 
DEFAULT_STRATEGIES_PREFIX + DEFAULT_AUDIT_STRATEGY, DEFAULT_STRATEGIES_PREFIX + 
DEFAULT_SHARDING_COLUMN,
diff --git 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/DefaultDatabaseShardingStrategyChangedGenerator.java
 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/DefaultDatabaseShardingStrategyChangedGenerator.java
index d9a3c0e6b4e..61b0294628e 100644
--- 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/DefaultDatabaseShardingStrategyChangedGenerator.java
+++ 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/DefaultDatabaseShardingStrategyChangedGenerator.java
@@ -24,6 +24,7 @@ import org.apache.shardingsphere.infra.util.yaml.YamlEngine;
 import 
org.apache.shardingsphere.mode.subsciber.RuleItemConfigurationChangedGenerator;
 import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
 import 
org.apache.shardingsphere.sharding.api.config.strategy.sharding.ShardingStrategyConfiguration;
+import 
org.apache.shardingsphere.sharding.metadata.nodepath.ShardingRuleNodePathProvider;
 import org.apache.shardingsphere.sharding.rule.ShardingRule;
 import 
org.apache.shardingsphere.sharding.yaml.config.strategy.sharding.YamlShardingStrategyConfiguration;
 import 
org.apache.shardingsphere.sharding.yaml.swapper.strategy.YamlShardingStrategyConfigurationSwapper;
@@ -33,8 +34,6 @@ import 
org.apache.shardingsphere.sharding.yaml.swapper.strategy.YamlShardingStra
  */
 public final class DefaultDatabaseShardingStrategyChangedGenerator implements 
RuleItemConfigurationChangedGenerator<ShardingRuleConfiguration, 
ShardingStrategyConfiguration> {
     
-    public static final String TYPE = 
"Sharding.DefaultDatabaseShardingStrategy";
-    
     @Override
     public ShardingStrategyConfiguration 
swapRuleItemConfigurationFromEvent(final AlterRuleItemEvent event, final String 
yamlContent) {
         return new 
YamlShardingStrategyConfigurationSwapper().swapToObject(YamlEngine.unmarshal(yamlContent,
 YamlShardingStrategyConfiguration.class));
@@ -57,6 +56,6 @@ public final class 
DefaultDatabaseShardingStrategyChangedGenerator implements Ru
     
     @Override
     public String getType() {
-        return TYPE;
+        return ShardingRuleNodePathProvider.RULE_TYPE + "." + 
ShardingRuleNodePathProvider.DEFAULT_DATABASE_STRATEGY;
     }
 }
diff --git 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/DefaultKeyGenerateStrategyChangedGenerator.java
 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/DefaultKeyGenerateStrategyChangedGenerator.java
index c085484dfa0..f09d0111915 100644
--- 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/DefaultKeyGenerateStrategyChangedGenerator.java
+++ 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/DefaultKeyGenerateStrategyChangedGenerator.java
@@ -24,6 +24,7 @@ import org.apache.shardingsphere.infra.util.yaml.YamlEngine;
 import 
org.apache.shardingsphere.mode.subsciber.RuleItemConfigurationChangedGenerator;
 import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
 import 
org.apache.shardingsphere.sharding.api.config.strategy.keygen.KeyGenerateStrategyConfiguration;
+import 
org.apache.shardingsphere.sharding.metadata.nodepath.ShardingRuleNodePathProvider;
 import org.apache.shardingsphere.sharding.rule.ShardingRule;
 import 
org.apache.shardingsphere.sharding.yaml.config.strategy.keygen.YamlKeyGenerateStrategyConfiguration;
 import 
org.apache.shardingsphere.sharding.yaml.swapper.strategy.YamlKeyGenerateStrategyConfigurationSwapper;
@@ -33,8 +34,6 @@ import 
org.apache.shardingsphere.sharding.yaml.swapper.strategy.YamlKeyGenerateS
  */
 public final class DefaultKeyGenerateStrategyChangedGenerator implements 
RuleItemConfigurationChangedGenerator<ShardingRuleConfiguration, 
KeyGenerateStrategyConfiguration> {
     
-    public static final String TYPE = "Sharding.DefaultKeyGenerateStrategy";
-    
     @Override
     public KeyGenerateStrategyConfiguration 
swapRuleItemConfigurationFromEvent(final AlterRuleItemEvent event, final String 
yamlContent) {
         return new 
YamlKeyGenerateStrategyConfigurationSwapper().swapToObject(YamlEngine.unmarshal(yamlContent,
 YamlKeyGenerateStrategyConfiguration.class));
@@ -57,6 +56,6 @@ public final class DefaultKeyGenerateStrategyChangedGenerator 
implements RuleIte
     
     @Override
     public String getType() {
-        return TYPE;
+        return ShardingRuleNodePathProvider.RULE_TYPE + "." + 
ShardingRuleNodePathProvider.DEFAULT_KEY_GENERATE_STRATEGY;
     }
 }
diff --git 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/DefaultShardingAuditorStrategyChangedGenerator.java
 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/DefaultShardingAuditorStrategyChangedGenerator.java
index c8ce85dff4d..93c2666eda7 100644
--- 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/DefaultShardingAuditorStrategyChangedGenerator.java
+++ 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/DefaultShardingAuditorStrategyChangedGenerator.java
@@ -24,6 +24,7 @@ import org.apache.shardingsphere.infra.util.yaml.YamlEngine;
 import 
org.apache.shardingsphere.mode.subsciber.RuleItemConfigurationChangedGenerator;
 import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
 import 
org.apache.shardingsphere.sharding.api.config.strategy.audit.ShardingAuditStrategyConfiguration;
+import 
org.apache.shardingsphere.sharding.metadata.nodepath.ShardingRuleNodePathProvider;
 import org.apache.shardingsphere.sharding.rule.ShardingRule;
 import 
org.apache.shardingsphere.sharding.yaml.config.strategy.audit.YamlShardingAuditStrategyConfiguration;
 import 
org.apache.shardingsphere.sharding.yaml.swapper.strategy.YamlShardingAuditStrategyConfigurationSwapper;
@@ -33,8 +34,6 @@ import 
org.apache.shardingsphere.sharding.yaml.swapper.strategy.YamlShardingAudi
  */
 public final class DefaultShardingAuditorStrategyChangedGenerator implements 
RuleItemConfigurationChangedGenerator<ShardingRuleConfiguration, 
ShardingAuditStrategyConfiguration> {
     
-    public static final String TYPE = 
"Sharding.DefaultShardingAuditorStrategy";
-    
     @Override
     public ShardingAuditStrategyConfiguration 
swapRuleItemConfigurationFromEvent(final AlterRuleItemEvent event, final String 
yamlContent) {
         return new 
YamlShardingAuditStrategyConfigurationSwapper().swapToObject(YamlEngine.unmarshal(yamlContent,
 YamlShardingAuditStrategyConfiguration.class));
@@ -57,6 +56,6 @@ public final class 
DefaultShardingAuditorStrategyChangedGenerator implements Rul
     
     @Override
     public String getType() {
-        return TYPE;
+        return ShardingRuleNodePathProvider.RULE_TYPE + "." + 
ShardingRuleNodePathProvider.DEFAULT_AUDIT_STRATEGY;
     }
 }
diff --git 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/DefaultShardingColumnChangedGenerator.java
 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/DefaultShardingColumnChangedGenerator.java
index 33caa6fc4db..5f0c4ebfa1f 100644
--- 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/DefaultShardingColumnChangedGenerator.java
+++ 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/DefaultShardingColumnChangedGenerator.java
@@ -22,6 +22,7 @@ import 
org.apache.shardingsphere.infra.rule.event.rule.alter.AlterRuleItemEvent;
 import org.apache.shardingsphere.infra.rule.event.rule.drop.DropRuleItemEvent;
 import 
org.apache.shardingsphere.mode.subsciber.RuleItemConfigurationChangedGenerator;
 import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
+import 
org.apache.shardingsphere.sharding.metadata.nodepath.ShardingRuleNodePathProvider;
 import org.apache.shardingsphere.sharding.rule.ShardingRule;
 
 /**
@@ -29,8 +30,6 @@ import org.apache.shardingsphere.sharding.rule.ShardingRule;
  */
 public final class DefaultShardingColumnChangedGenerator implements 
RuleItemConfigurationChangedGenerator<ShardingRuleConfiguration, String> {
     
-    public static final String TYPE = "Sharding.DefaultShardingColumn";
-    
     @Override
     public String swapRuleItemConfigurationFromEvent(final AlterRuleItemEvent 
event, final String yamlContent) {
         return yamlContent;
@@ -53,6 +52,6 @@ public final class DefaultShardingColumnChangedGenerator 
implements RuleItemConf
     
     @Override
     public String getType() {
-        return TYPE;
+        return ShardingRuleNodePathProvider.RULE_TYPE + "." + 
ShardingRuleNodePathProvider.DEFAULT_SHARDING_COLUMN;
     }
 }
diff --git 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/DefaultTableShardingStrategyChangedGenerator.java
 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/DefaultTableShardingStrategyChangedGenerator.java
index 44c014538f4..dce02747e65 100644
--- 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/DefaultTableShardingStrategyChangedGenerator.java
+++ 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/DefaultTableShardingStrategyChangedGenerator.java
@@ -24,6 +24,7 @@ import org.apache.shardingsphere.infra.util.yaml.YamlEngine;
 import 
org.apache.shardingsphere.mode.subsciber.RuleItemConfigurationChangedGenerator;
 import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
 import 
org.apache.shardingsphere.sharding.api.config.strategy.sharding.ShardingStrategyConfiguration;
+import 
org.apache.shardingsphere.sharding.metadata.nodepath.ShardingRuleNodePathProvider;
 import org.apache.shardingsphere.sharding.rule.ShardingRule;
 import 
org.apache.shardingsphere.sharding.yaml.config.strategy.sharding.YamlShardingStrategyConfiguration;
 import 
org.apache.shardingsphere.sharding.yaml.swapper.strategy.YamlShardingStrategyConfigurationSwapper;
@@ -33,8 +34,6 @@ import 
org.apache.shardingsphere.sharding.yaml.swapper.strategy.YamlShardingStra
  */
 public final class DefaultTableShardingStrategyChangedGenerator implements 
RuleItemConfigurationChangedGenerator<ShardingRuleConfiguration, 
ShardingStrategyConfiguration> {
     
-    public static final String TYPE = "Sharding.DefaultTableShardingStrategy";
-    
     @Override
     public ShardingStrategyConfiguration 
swapRuleItemConfigurationFromEvent(final AlterRuleItemEvent event, final String 
yamlContent) {
         return new 
YamlShardingStrategyConfigurationSwapper().swapToObject(YamlEngine.unmarshal(yamlContent,
 YamlShardingStrategyConfiguration.class));
@@ -57,6 +56,6 @@ public final class 
DefaultTableShardingStrategyChangedGenerator implements RuleI
     
     @Override
     public String getType() {
-        return TYPE;
+        return ShardingRuleNodePathProvider.RULE_TYPE + "." + 
ShardingRuleNodePathProvider.DEFAULT_TABLE_STRATEGY;
     }
 }
diff --git 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/KeyGeneratorChangedGenerator.java
 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/KeyGeneratorChangedGenerator.java
index e01ef4e6f69..d014ea1daef 100644
--- 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/KeyGeneratorChangedGenerator.java
+++ 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/KeyGeneratorChangedGenerator.java
@@ -28,6 +28,7 @@ import 
org.apache.shardingsphere.infra.yaml.config.pojo.algorithm.YamlAlgorithmC
 import 
org.apache.shardingsphere.infra.yaml.config.swapper.algorithm.YamlAlgorithmConfigurationSwapper;
 import 
org.apache.shardingsphere.mode.subsciber.RuleItemConfigurationChangedGenerator;
 import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
+import 
org.apache.shardingsphere.sharding.metadata.nodepath.ShardingRuleNodePathProvider;
 import org.apache.shardingsphere.sharding.rule.ShardingRule;
 
 /**
@@ -35,8 +36,6 @@ import org.apache.shardingsphere.sharding.rule.ShardingRule;
  */
 public final class KeyGeneratorChangedGenerator implements 
RuleItemConfigurationChangedGenerator<ShardingRuleConfiguration, 
AlgorithmConfiguration> {
     
-    public static final String TYPE = "Sharding.KeyGenerator";
-    
     @Override
     public AlgorithmConfiguration swapRuleItemConfigurationFromEvent(final 
AlterRuleItemEvent event, final String yamlContent) {
         return new 
YamlAlgorithmConfigurationSwapper().swapToObject(YamlEngine.unmarshal(yamlContent,
 YamlAlgorithmConfiguration.class));
@@ -59,6 +58,6 @@ public final class KeyGeneratorChangedGenerator implements 
RuleItemConfiguration
     
     @Override
     public String getType() {
-        return TYPE;
+        return ShardingRuleNodePathProvider.RULE_TYPE + "." + 
ShardingRuleNodePathProvider.KEY_GENERATORS;
     }
 }
diff --git 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/ShardingAlgorithmChangedGenerator.java
 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/ShardingAlgorithmChangedGenerator.java
index 726d8e45b39..28c36b27b44 100644
--- 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/ShardingAlgorithmChangedGenerator.java
+++ 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/ShardingAlgorithmChangedGenerator.java
@@ -28,6 +28,7 @@ import 
org.apache.shardingsphere.infra.yaml.config.pojo.algorithm.YamlAlgorithmC
 import 
org.apache.shardingsphere.infra.yaml.config.swapper.algorithm.YamlAlgorithmConfigurationSwapper;
 import 
org.apache.shardingsphere.mode.subsciber.RuleItemConfigurationChangedGenerator;
 import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
+import 
org.apache.shardingsphere.sharding.metadata.nodepath.ShardingRuleNodePathProvider;
 import org.apache.shardingsphere.sharding.rule.ShardingRule;
 
 /**
@@ -35,8 +36,6 @@ import org.apache.shardingsphere.sharding.rule.ShardingRule;
  */
 public final class ShardingAlgorithmChangedGenerator implements 
RuleItemConfigurationChangedGenerator<ShardingRuleConfiguration, 
AlgorithmConfiguration> {
     
-    public static final String TYPE = "Sharding.Algorithm";
-    
     @Override
     public AlgorithmConfiguration swapRuleItemConfigurationFromEvent(final 
AlterRuleItemEvent event, final String yamlContent) {
         return new 
YamlAlgorithmConfigurationSwapper().swapToObject(YamlEngine.unmarshal(yamlContent,
 YamlAlgorithmConfiguration.class));
@@ -59,6 +58,6 @@ public final class ShardingAlgorithmChangedGenerator 
implements RuleItemConfigur
     
     @Override
     public String getType() {
-        return TYPE;
+        return ShardingRuleNodePathProvider.RULE_TYPE + "." + 
ShardingRuleNodePathProvider.ALGORITHMS;
     }
 }
diff --git 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/ShardingAuditorChangedGenerator.java
 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/ShardingAuditorChangedGenerator.java
index 9f8f4e8845d..281b342ddcd 100644
--- 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/ShardingAuditorChangedGenerator.java
+++ 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/ShardingAuditorChangedGenerator.java
@@ -28,6 +28,7 @@ import 
org.apache.shardingsphere.infra.yaml.config.pojo.algorithm.YamlAlgorithmC
 import 
org.apache.shardingsphere.infra.yaml.config.swapper.algorithm.YamlAlgorithmConfigurationSwapper;
 import 
org.apache.shardingsphere.mode.subsciber.RuleItemConfigurationChangedGenerator;
 import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
+import 
org.apache.shardingsphere.sharding.metadata.nodepath.ShardingRuleNodePathProvider;
 import org.apache.shardingsphere.sharding.rule.ShardingRule;
 
 /**
@@ -35,8 +36,6 @@ import org.apache.shardingsphere.sharding.rule.ShardingRule;
  */
 public final class ShardingAuditorChangedGenerator implements 
RuleItemConfigurationChangedGenerator<ShardingRuleConfiguration, 
AlgorithmConfiguration> {
     
-    public static final String TYPE = "Sharding.Auditor";
-    
     @Override
     public AlgorithmConfiguration swapRuleItemConfigurationFromEvent(final 
AlterRuleItemEvent event, final String yamlContent) {
         return new 
YamlAlgorithmConfigurationSwapper().swapToObject(YamlEngine.unmarshal(yamlContent,
 YamlAlgorithmConfiguration.class));
@@ -59,6 +58,6 @@ public final class ShardingAuditorChangedGenerator implements 
RuleItemConfigurat
     
     @Override
     public String getType() {
-        return TYPE;
+        return ShardingRuleNodePathProvider.RULE_TYPE + "." + 
ShardingRuleNodePathProvider.AUDITORS;
     }
 }
diff --git 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/ShardingAutoTableChangedGenerator.java
 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/ShardingAutoTableChangedGenerator.java
index f86ca3480ab..a750174c9c8 100644
--- 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/ShardingAutoTableChangedGenerator.java
+++ 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/ShardingAutoTableChangedGenerator.java
@@ -26,6 +26,7 @@ import org.apache.shardingsphere.infra.util.yaml.YamlEngine;
 import 
org.apache.shardingsphere.mode.subsciber.RuleItemConfigurationChangedGenerator;
 import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
 import 
org.apache.shardingsphere.sharding.api.config.rule.ShardingAutoTableRuleConfiguration;
+import 
org.apache.shardingsphere.sharding.metadata.nodepath.ShardingRuleNodePathProvider;
 import org.apache.shardingsphere.sharding.rule.ShardingRule;
 import 
org.apache.shardingsphere.sharding.yaml.config.rule.YamlShardingAutoTableRuleConfiguration;
 import 
org.apache.shardingsphere.sharding.yaml.swapper.rule.YamlShardingAutoTableRuleConfigurationSwapper;
@@ -35,8 +36,6 @@ import 
org.apache.shardingsphere.sharding.yaml.swapper.rule.YamlShardingAutoTabl
  */
 public final class ShardingAutoTableChangedGenerator implements 
RuleItemConfigurationChangedGenerator<ShardingRuleConfiguration, 
ShardingAutoTableRuleConfiguration> {
     
-    public static final String TYPE = "Sharding.AutoTable";
-    
     @Override
     public ShardingAutoTableRuleConfiguration 
swapRuleItemConfigurationFromEvent(final AlterRuleItemEvent event, final String 
yamlContent) {
         return new 
YamlShardingAutoTableRuleConfigurationSwapper().swapToObject(YamlEngine.unmarshal(yamlContent,
 YamlShardingAutoTableRuleConfiguration.class));
@@ -60,6 +59,6 @@ public final class ShardingAutoTableChangedGenerator 
implements RuleItemConfigur
     
     @Override
     public String getType() {
-        return TYPE;
+        return ShardingRuleNodePathProvider.RULE_TYPE + "." + 
ShardingRuleNodePathProvider.AUTO_TABLES;
     }
 }
diff --git 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/ShardingCacheChangedGenerator.java
 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/ShardingCacheChangedGenerator.java
index 2d038c5a98c..af0c4aef1d1 100644
--- 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/ShardingCacheChangedGenerator.java
+++ 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/ShardingCacheChangedGenerator.java
@@ -24,6 +24,7 @@ import org.apache.shardingsphere.infra.util.yaml.YamlEngine;
 import 
org.apache.shardingsphere.mode.subsciber.RuleItemConfigurationChangedGenerator;
 import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
 import 
org.apache.shardingsphere.sharding.api.config.cache.ShardingCacheConfiguration;
+import 
org.apache.shardingsphere.sharding.metadata.nodepath.ShardingRuleNodePathProvider;
 import org.apache.shardingsphere.sharding.rule.ShardingRule;
 import 
org.apache.shardingsphere.sharding.yaml.config.cache.YamlShardingCacheConfiguration;
 import 
org.apache.shardingsphere.sharding.yaml.swapper.cache.YamlShardingCacheConfigurationSwapper;
@@ -33,8 +34,6 @@ import 
org.apache.shardingsphere.sharding.yaml.swapper.cache.YamlShardingCacheCo
  */
 public final class ShardingCacheChangedGenerator implements 
RuleItemConfigurationChangedGenerator<ShardingRuleConfiguration, 
ShardingCacheConfiguration> {
     
-    public static final String TYPE = "Sharding.Cache";
-    
     @Override
     public ShardingCacheConfiguration swapRuleItemConfigurationFromEvent(final 
AlterRuleItemEvent event, final String yamlContent) {
         return new 
YamlShardingCacheConfigurationSwapper().swapToObject(YamlEngine.unmarshal(yamlContent,
 YamlShardingCacheConfiguration.class));
@@ -57,6 +56,6 @@ public final class ShardingCacheChangedGenerator implements 
RuleItemConfiguratio
     
     @Override
     public String getType() {
-        return TYPE;
+        return ShardingRuleNodePathProvider.RULE_TYPE + "." + 
ShardingRuleNodePathProvider.SHARDING_CACHE;
     }
 }
diff --git 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/ShardingTableChangedGenerator.java
 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/ShardingTableChangedGenerator.java
index 1c5dce08ba2..25820a5462e 100644
--- 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/ShardingTableChangedGenerator.java
+++ 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/ShardingTableChangedGenerator.java
@@ -26,6 +26,7 @@ import org.apache.shardingsphere.infra.util.yaml.YamlEngine;
 import 
org.apache.shardingsphere.mode.subsciber.RuleItemConfigurationChangedGenerator;
 import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
 import 
org.apache.shardingsphere.sharding.api.config.rule.ShardingTableRuleConfiguration;
+import 
org.apache.shardingsphere.sharding.metadata.nodepath.ShardingRuleNodePathProvider;
 import org.apache.shardingsphere.sharding.rule.ShardingRule;
 import 
org.apache.shardingsphere.sharding.yaml.config.rule.YamlTableRuleConfiguration;
 import 
org.apache.shardingsphere.sharding.yaml.swapper.rule.YamlShardingTableRuleConfigurationSwapper;
@@ -35,8 +36,6 @@ import 
org.apache.shardingsphere.sharding.yaml.swapper.rule.YamlShardingTableRul
  */
 public final class ShardingTableChangedGenerator implements 
RuleItemConfigurationChangedGenerator<ShardingRuleConfiguration, 
ShardingTableRuleConfiguration> {
     
-    public static final String TYPE = "Sharding.Table";
-    
     @Override
     public ShardingTableRuleConfiguration 
swapRuleItemConfigurationFromEvent(final AlterRuleItemEvent event, final String 
yamlContent) {
         return new 
YamlShardingTableRuleConfigurationSwapper().swapToObject(YamlEngine.unmarshal(yamlContent,
 YamlTableRuleConfiguration.class));
@@ -60,6 +59,6 @@ public final class ShardingTableChangedGenerator implements 
RuleItemConfiguratio
     
     @Override
     public String getType() {
-        return TYPE;
+        return ShardingRuleNodePathProvider.RULE_TYPE + "." + 
ShardingRuleNodePathProvider.TABLES;
     }
 }
diff --git 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/ShardingTableReferenceChangedGenerator.java
 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/ShardingTableReferenceChangedGenerator.java
index 40d59164754..9571bf4d9f2 100644
--- 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/ShardingTableReferenceChangedGenerator.java
+++ 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/ShardingTableReferenceChangedGenerator.java
@@ -25,6 +25,7 @@ import 
org.apache.shardingsphere.infra.rule.event.rule.drop.DropRuleItemEvent;
 import 
org.apache.shardingsphere.mode.subsciber.RuleItemConfigurationChangedGenerator;
 import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
 import 
org.apache.shardingsphere.sharding.api.config.rule.ShardingTableReferenceRuleConfiguration;
+import 
org.apache.shardingsphere.sharding.metadata.nodepath.ShardingRuleNodePathProvider;
 import org.apache.shardingsphere.sharding.rule.ShardingRule;
 import 
org.apache.shardingsphere.sharding.yaml.swapper.rule.YamlShardingTableReferenceRuleConfigurationConverter;
 
@@ -33,8 +34,6 @@ import 
org.apache.shardingsphere.sharding.yaml.swapper.rule.YamlShardingTableRef
  */
 public final class ShardingTableReferenceChangedGenerator implements 
RuleItemConfigurationChangedGenerator<ShardingRuleConfiguration, 
ShardingTableReferenceRuleConfiguration> {
     
-    public static final String TYPE = "Sharding.TableReference";
-    
     @Override
     public ShardingTableReferenceRuleConfiguration 
swapRuleItemConfigurationFromEvent(final AlterRuleItemEvent event, final String 
yamlContent) {
         return 
YamlShardingTableReferenceRuleConfigurationConverter.convertToObject(yamlContent);
@@ -58,6 +57,6 @@ public final class ShardingTableReferenceChangedGenerator 
implements RuleItemCon
     
     @Override
     public String getType() {
-        return TYPE;
+        return ShardingRuleNodePathProvider.RULE_TYPE + "." + 
ShardingRuleNodePathProvider.BINDING_TABLES;
     }
 }
diff --git 
a/kernel/single/core/src/main/java/org/apache/shardingsphere/single/event/SingleRuleChangedEventCreator.java
 
b/kernel/single/core/src/main/java/org/apache/shardingsphere/single/event/SingleRuleChangedEventCreator.java
index 15c48ec1aee..8e88e8de81d 100644
--- 
a/kernel/single/core/src/main/java/org/apache/shardingsphere/single/event/SingleRuleChangedEventCreator.java
+++ 
b/kernel/single/core/src/main/java/org/apache/shardingsphere/single/event/SingleRuleChangedEventCreator.java
@@ -22,7 +22,6 @@ import org.apache.shardingsphere.mode.event.DataChangedEvent;
 import org.apache.shardingsphere.mode.event.UniqueRuleItemChangedEventCreator;
 import org.apache.shardingsphere.mode.spi.RuleChangedEventCreator;
 import 
org.apache.shardingsphere.single.metadata.nodepath.SingleRuleNodePathProvider;
-import org.apache.shardingsphere.single.subscriber.SingleTableChangedGenerator;
 
 /**
  * Single rule changed event creator.
@@ -31,14 +30,7 @@ public final class SingleRuleChangedEventCreator implements 
RuleChangedEventCrea
     
     @Override
     public GovernanceEvent create(final String databaseName, final 
DataChangedEvent event, final String itemType) {
-        return new UniqueRuleItemChangedEventCreator().create(databaseName, 
event, getRuleItemConfigurationChangedGeneratorType(itemType));
-    }
-    
-    private String getRuleItemConfigurationChangedGeneratorType(final String 
itemType) {
-        if (itemType.equals(SingleRuleNodePathProvider.TABLES)) {
-            return SingleTableChangedGenerator.TYPE;
-        }
-        throw new UnsupportedOperationException(itemType);
+        return new UniqueRuleItemChangedEventCreator().create(databaseName, 
event, SingleRuleNodePathProvider.RULE_TYPE + "." + itemType);
     }
     
     @Override
diff --git 
a/kernel/single/core/src/main/java/org/apache/shardingsphere/single/metadata/nodepath/SingleRuleNodePathProvider.java
 
b/kernel/single/core/src/main/java/org/apache/shardingsphere/single/metadata/nodepath/SingleRuleNodePathProvider.java
index adbd2431028..2c2b50fd86c 100644
--- 
a/kernel/single/core/src/main/java/org/apache/shardingsphere/single/metadata/nodepath/SingleRuleNodePathProvider.java
+++ 
b/kernel/single/core/src/main/java/org/apache/shardingsphere/single/metadata/nodepath/SingleRuleNodePathProvider.java
@@ -27,9 +27,11 @@ import java.util.Collections;
  */
 public final class SingleRuleNodePathProvider implements RuleNodePathProvider {
     
+    public static final String RULE_TYPE = "single";
+    
     public static final String TABLES = "tables";
     
-    private static final RuleNodePath INSTANCE = new RuleNodePath("single", 
Collections.emptyList(), Collections.singleton(TABLES));
+    private static final RuleNodePath INSTANCE = new RuleNodePath(RULE_TYPE, 
Collections.emptyList(), Collections.singleton(TABLES));
     
     @Override
     public RuleNodePath getRuleNodePath() {
diff --git 
a/kernel/single/core/src/main/java/org/apache/shardingsphere/single/subscriber/SingleTableChangedGenerator.java
 
b/kernel/single/core/src/main/java/org/apache/shardingsphere/single/subscriber/SingleTableChangedGenerator.java
index bdf9e6d064a..72089f4b85e 100644
--- 
a/kernel/single/core/src/main/java/org/apache/shardingsphere/single/subscriber/SingleTableChangedGenerator.java
+++ 
b/kernel/single/core/src/main/java/org/apache/shardingsphere/single/subscriber/SingleTableChangedGenerator.java
@@ -23,6 +23,7 @@ import 
org.apache.shardingsphere.infra.rule.event.rule.drop.DropRuleItemEvent;
 import org.apache.shardingsphere.infra.util.yaml.YamlEngine;
 import 
org.apache.shardingsphere.mode.subsciber.RuleItemConfigurationChangedGenerator;
 import org.apache.shardingsphere.single.api.config.SingleRuleConfiguration;
+import 
org.apache.shardingsphere.single.metadata.nodepath.SingleRuleNodePathProvider;
 import org.apache.shardingsphere.single.rule.SingleRule;
 import 
org.apache.shardingsphere.single.yaml.config.pojo.YamlSingleRuleConfiguration;
 import 
org.apache.shardingsphere.single.yaml.config.swapper.YamlSingleRuleConfigurationSwapper;
@@ -32,8 +33,6 @@ import 
org.apache.shardingsphere.single.yaml.config.swapper.YamlSingleRuleConfig
  */
 public final class SingleTableChangedGenerator implements 
RuleItemConfigurationChangedGenerator<SingleRuleConfiguration, 
SingleRuleConfiguration> {
     
-    public static final String TYPE = "Single.Table";
-    
     @Override
     public SingleRuleConfiguration swapRuleItemConfigurationFromEvent(final 
AlterRuleItemEvent event, final String yamlContent) {
         return new 
YamlSingleRuleConfigurationSwapper().swapToObject(YamlEngine.unmarshal(yamlContent,
 YamlSingleRuleConfiguration.class));
@@ -59,6 +58,6 @@ public final class SingleTableChangedGenerator implements 
RuleItemConfigurationC
     
     @Override
     public String getType() {
-        return TYPE;
+        return SingleRuleNodePathProvider.RULE_TYPE + "." + 
SingleRuleNodePathProvider.TABLES;
     }
 }

Reply via email to