This is an automated email from the ASF dual-hosted git repository.
jianglongtao 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 2b9573ed650 Throw necessary exception for event subscribers (#32701)
2b9573ed650 is described below
commit 2b9573ed65060b787d62115713a7629f569a9762
Author: Haoran Meng <[email protected]>
AuthorDate: Tue Aug 27 13:32:59 2024 +0800
Throw necessary exception for event subscribers (#32701)
---
.../mode/metadata/manager/RuleItemManager.java | 11 ++++-------
.../GlobalRuleConfigurationEventSubscriber.java | 11 ++++-------
.../subscriber/dispatch/MetaDataChangedSubscriber.java | 13 +++++--------
.../subscriber/dispatch/PropertiesEventSubscriber.java | 7 +++----
.../dispatch/QualifiedDataSourceSubscriber.java | 6 +++---
.../dispatch/StorageUnitEventSubscriber.java | 18 +++++++-----------
6 files changed, 26 insertions(+), 40 deletions(-)
diff --git
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/manager/RuleItemManager.java
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/manager/RuleItemManager.java
index 0fd41820054..194d24bb026 100644
---
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/manager/RuleItemManager.java
+++
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/manager/RuleItemManager.java
@@ -17,6 +17,7 @@
package org.apache.shardingsphere.mode.metadata.manager;
+import com.google.common.base.Preconditions;
import org.apache.shardingsphere.infra.config.rule.RuleConfiguration;
import
org.apache.shardingsphere.mode.event.dispatch.rule.alter.AlterRuleItemEvent;
import
org.apache.shardingsphere.mode.event.dispatch.rule.drop.DropRuleItemEvent;
@@ -54,10 +55,8 @@ public class RuleItemManager {
*/
@SuppressWarnings({"rawtypes", "unchecked", "unused"})
public void alterRuleItem(final AlterRuleItemEvent event) throws
SQLException {
- if
(!event.getActiveVersion().equals(metaDataPersistService.getMetaDataVersionPersistService()
- .getActiveVersionByFullPath(event.getActiveVersionKey()))) {
- return;
- }
+
Preconditions.checkArgument(event.getActiveVersion().equals(metaDataPersistService.getMetaDataVersionPersistService()
+ .getActiveVersionByFullPath(event.getActiveVersionKey())),
"Invalid active version: {} of key: {}", event.getActiveVersion(),
event.getActiveVersionKey());
RuleItemConfigurationChangedProcessor processor =
TypedSPILoader.getService(RuleItemConfigurationChangedProcessor.class,
event.getType());
String yamlContent =
metaDataPersistService.getMetaDataVersionPersistService()
.getVersionPathByActiveVersion(event.getActiveVersionKey(),
event.getActiveVersion());
@@ -78,9 +77,7 @@ public class RuleItemManager {
@SuppressWarnings({"rawtypes", "unchecked", "unused"})
public void dropRuleItem(final DropRuleItemEvent event) throws
SQLException {
String databaseName = event.getDatabaseName();
- if
(!metaDataContexts.get().getMetaData().containsDatabase(databaseName)) {
- return;
- }
+
Preconditions.checkState(metaDataContexts.get().getMetaData().containsDatabase(databaseName),
"No database '%s' exists.", databaseName);
RuleItemConfigurationChangedProcessor processor =
TypedSPILoader.getService(RuleItemConfigurationChangedProcessor.class,
event.getType());
RuleConfiguration currentRuleConfig =
processor.findRuleConfiguration(metaDataContexts.get().getMetaData().getDatabase(databaseName));
synchronized (this) {
diff --git
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/subscriber/dispatch/GlobalRuleConfigurationEventSubscriber.java
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/subscriber/dispatch/GlobalRuleConfigurationEventSubscriber.java
index ac3efcca8f6..6e5c847b29b 100644
---
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/subscriber/dispatch/GlobalRuleConfigurationEventSubscriber.java
+++
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/subscriber/dispatch/GlobalRuleConfigurationEventSubscriber.java
@@ -17,6 +17,7 @@
package
org.apache.shardingsphere.mode.manager.cluster.event.subscriber.dispatch;
+import com.google.common.base.Preconditions;
import com.google.common.eventbus.Subscribe;
import lombok.RequiredArgsConstructor;
import org.apache.shardingsphere.infra.config.rule.RuleConfiguration;
@@ -44,14 +45,10 @@ public final class GlobalRuleConfigurationEventSubscriber
implements EventSubscr
@SuppressWarnings("unchecked")
@Subscribe
public synchronized void renew(final AlterGlobalRuleConfigurationEvent
event) {
- if (!event.getActiveVersion().equals(
-
contextManager.getPersistServiceFacade().getMetaDataPersistService().getMetaDataVersionPersistService().getActiveVersionByFullPath(event.getActiveVersionKey())))
{
- return;
- }
+
Preconditions.checkArgument(event.getActiveVersion().equals(contextManager.getPersistServiceFacade().getMetaDataPersistService().getMetaDataVersionPersistService()
+ .getActiveVersionByFullPath(event.getActiveVersionKey())),
"Invalid active version: %s of key: %s", event.getActiveVersion(),
event.getActiveVersionKey());
Optional<RuleConfiguration> ruleConfig =
contextManager.getPersistServiceFacade().getMetaDataPersistService().getGlobalRuleService().load(event.getRuleSimpleName());
- if (!ruleConfig.isPresent()) {
- return;
- }
+ Preconditions.checkArgument(ruleConfig.isPresent(), "Can not find rule
configuration with name: %s", event.getRuleSimpleName());
contextManager.getMetaDataContextManager().getGlobalConfigurationManager().alterGlobalRuleConfiguration(
TypedSPILoader.findService(RuleConfigurationPersistDecorator.class,
ruleConfig.getClass()).map(optional ->
optional.restore(ruleConfig.get())).orElse(ruleConfig.get()));
}
diff --git
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/subscriber/dispatch/MetaDataChangedSubscriber.java
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/subscriber/dispatch/MetaDataChangedSubscriber.java
index ddf48cc33d4..0c23fd7005f 100644
---
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/subscriber/dispatch/MetaDataChangedSubscriber.java
+++
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/subscriber/dispatch/MetaDataChangedSubscriber.java
@@ -17,6 +17,7 @@
package
org.apache.shardingsphere.mode.manager.cluster.event.subscriber.dispatch;
+import com.google.common.base.Preconditions;
import com.google.common.eventbus.Subscribe;
import lombok.RequiredArgsConstructor;
import org.apache.shardingsphere.infra.instance.metadata.InstanceType;
@@ -75,10 +76,8 @@ public final class MetaDataChangedSubscriber implements
EventSubscriber {
*/
@Subscribe
public synchronized void renew(final CreateOrAlterTableEvent event) {
- if
(!event.getActiveVersion().equals(contextManager.getPersistServiceFacade().getMetaDataPersistService().getMetaDataVersionPersistService()
- .getActiveVersionByFullPath(event.getActiveVersionKey()))) {
- return;
- }
+
Preconditions.checkArgument(event.getActiveVersion().equals(contextManager.getPersistServiceFacade().getMetaDataPersistService().getMetaDataVersionPersistService()
+ .getActiveVersionByFullPath(event.getActiveVersionKey())),
"Invalid active version: %s of key: %s", event.getActiveVersion(),
event.getActiveVersionKey());
Map<String, ShardingSphereTable> tables =
contextManager.getPersistServiceFacade().getMetaDataPersistService().getDatabaseMetaDataService()
.getTableMetaDataPersistService().load(event.getDatabaseName(),
event.getSchemaName(), event.getTableName());
contextManager.getMetaDataContextManager().getSchemaMetaDataManager().alterSchema(event.getDatabaseName(),
event.getSchemaName(),
@@ -104,10 +103,8 @@ public final class MetaDataChangedSubscriber implements
EventSubscriber {
*/
@Subscribe
public synchronized void renew(final CreateOrAlterViewEvent event) {
- if
(!event.getActiveVersion().equals(contextManager.getPersistServiceFacade().getMetaDataPersistService().getMetaDataVersionPersistService()
- .getActiveVersionByFullPath(event.getActiveVersionKey()))) {
- return;
- }
+
Preconditions.checkArgument(event.getActiveVersion().equals(contextManager.getPersistServiceFacade().getMetaDataPersistService().getMetaDataVersionPersistService()
+ .getActiveVersionByFullPath(event.getActiveVersionKey())),
"Invalid active version: %s of key: %s", event.getActiveVersion(),
event.getActiveVersionKey());
Map<String, ShardingSphereView> views =
contextManager.getPersistServiceFacade().getMetaDataPersistService().getDatabaseMetaDataService()
.getViewMetaDataPersistService().load(event.getDatabaseName(),
event.getSchemaName(), event.getViewName());
contextManager.getMetaDataContextManager().getSchemaMetaDataManager().alterSchema(event.getDatabaseName(),
event.getSchemaName(),
diff --git
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/subscriber/dispatch/PropertiesEventSubscriber.java
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/subscriber/dispatch/PropertiesEventSubscriber.java
index f728a981ed9..48ac41a8041 100644
---
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/subscriber/dispatch/PropertiesEventSubscriber.java
+++
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/subscriber/dispatch/PropertiesEventSubscriber.java
@@ -17,6 +17,7 @@
package
org.apache.shardingsphere.mode.manager.cluster.event.subscriber.dispatch;
+import com.google.common.base.Preconditions;
import com.google.common.eventbus.Subscribe;
import lombok.RequiredArgsConstructor;
import org.apache.shardingsphere.infra.util.eventbus.EventSubscriber;
@@ -38,10 +39,8 @@ public final class PropertiesEventSubscriber implements
EventSubscriber {
*/
@Subscribe
public synchronized void renew(final AlterPropertiesEvent event) {
- if
(!event.getActiveVersion().equals(contextManager.getPersistServiceFacade().getMetaDataPersistService().getMetaDataVersionPersistService()
- .getActiveVersionByFullPath(event.getActiveVersionKey()))) {
- return;
- }
+
Preconditions.checkArgument(event.getActiveVersion().equals(contextManager.getPersistServiceFacade().getMetaDataPersistService().getMetaDataVersionPersistService()
+ .getActiveVersionByFullPath(event.getActiveVersionKey())),
"Invalid active version: %s of key: %s", event.getActiveVersion(),
event.getActiveVersionKey());
contextManager.getMetaDataContextManager().getGlobalConfigurationManager().alterProperties(contextManager.getPersistServiceFacade().getMetaDataPersistService().getPropsService().load());
}
}
diff --git
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/subscriber/dispatch/QualifiedDataSourceSubscriber.java
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/subscriber/dispatch/QualifiedDataSourceSubscriber.java
index 51bde5900a2..8905f3407c5 100644
---
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/subscriber/dispatch/QualifiedDataSourceSubscriber.java
+++
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/subscriber/dispatch/QualifiedDataSourceSubscriber.java
@@ -17,6 +17,7 @@
package
org.apache.shardingsphere.mode.manager.cluster.event.subscriber.dispatch;
+import com.google.common.base.Preconditions;
import com.google.common.eventbus.Subscribe;
import lombok.RequiredArgsConstructor;
import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
@@ -42,9 +43,8 @@ public class QualifiedDataSourceSubscriber implements
EventSubscriber {
@Subscribe
public synchronized void renew(final QualifiedDataSourceStateEvent event) {
QualifiedDataSource qualifiedDataSource =
event.getQualifiedDataSource();
- if
(!contextManager.getMetaDataContexts().getMetaData().containsDatabase(qualifiedDataSource.getDatabaseName()))
{
- return;
- }
+
Preconditions.checkState(contextManager.getMetaDataContexts().getMetaData().containsDatabase(qualifiedDataSource.getDatabaseName()),
+ "No database '%s' exists.",
qualifiedDataSource.getDatabaseName());
ShardingSphereDatabase database =
contextManager.getMetaDataContexts().getMetaData().getDatabase(qualifiedDataSource.getDatabaseName());
for (StaticDataSourceRuleAttribute each :
database.getRuleMetaData().getAttributes(StaticDataSourceRuleAttribute.class)) {
each.updateStatus(qualifiedDataSource,
event.getStatus().getState());
diff --git
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/subscriber/dispatch/StorageUnitEventSubscriber.java
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/subscriber/dispatch/StorageUnitEventSubscriber.java
index ba45a28bfee..8b140fd2114 100644
---
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/subscriber/dispatch/StorageUnitEventSubscriber.java
+++
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/subscriber/dispatch/StorageUnitEventSubscriber.java
@@ -17,6 +17,7 @@
package
org.apache.shardingsphere.mode.manager.cluster.event.subscriber.dispatch;
+import com.google.common.base.Preconditions;
import com.google.common.eventbus.Subscribe;
import lombok.RequiredArgsConstructor;
import org.apache.shardingsphere.infra.util.eventbus.EventSubscriber;
@@ -40,10 +41,8 @@ public final class StorageUnitEventSubscriber implements
EventSubscriber {
*/
@Subscribe
public synchronized void renew(final RegisterStorageUnitEvent event) {
- if
(!event.getActiveVersion().equals(contextManager.getPersistServiceFacade().getMetaDataPersistService().getMetaDataVersionPersistService()
- .getActiveVersionByFullPath(event.getActiveVersionKey()))) {
- return;
- }
+
Preconditions.checkArgument(event.getActiveVersion().equals(contextManager.getPersistServiceFacade().getMetaDataPersistService().getMetaDataVersionPersistService()
+ .getActiveVersionByFullPath(event.getActiveVersionKey())),
"Invalid active version: %s of key: %s", event.getActiveVersion(),
event.getActiveVersionKey());
contextManager.getMetaDataContextManager().getStorageUnitManager().registerStorageUnit(event.getDatabaseName(),
contextManager.getPersistServiceFacade().getMetaDataPersistService().getDataSourceUnitService().load(event.getDatabaseName(),
event.getStorageUnitName()));
}
@@ -55,10 +54,8 @@ public final class StorageUnitEventSubscriber implements
EventSubscriber {
*/
@Subscribe
public synchronized void renew(final AlterStorageUnitEvent event) {
- if
(!event.getActiveVersion().equals(contextManager.getPersistServiceFacade().getMetaDataPersistService().getMetaDataVersionPersistService()
- .getActiveVersionByFullPath(event.getActiveVersionKey()))) {
- return;
- }
+
Preconditions.checkArgument(event.getActiveVersion().equals(contextManager.getPersistServiceFacade().getMetaDataPersistService().getMetaDataVersionPersistService()
+ .getActiveVersionByFullPath(event.getActiveVersionKey())),
"Invalid active version: %s of key: %s", event.getActiveVersion(),
event.getActiveVersionKey());
contextManager.getMetaDataContextManager().getStorageUnitManager().alterStorageUnit(
event.getDatabaseName(),
contextManager.getPersistServiceFacade().getMetaDataPersistService().getDataSourceUnitService().load(event.getDatabaseName(),
event.getStorageUnitName()));
}
@@ -70,9 +67,8 @@ public final class StorageUnitEventSubscriber implements
EventSubscriber {
*/
@Subscribe
public synchronized void renew(final UnregisterStorageUnitEvent event) {
- if
(!contextManager.getMetaDataContexts().getMetaData().containsDatabase(event.getDatabaseName()))
{
- return;
- }
+
Preconditions.checkState(contextManager.getMetaDataContexts().getMetaData().containsDatabase(event.getDatabaseName()),
+ "No database '%s' exists.", event.getDatabaseName());
contextManager.getMetaDataContextManager().getStorageUnitManager().unregisterStorageUnit(event.getDatabaseName(),
event.getStorageUnitName());
}
}