This is an automated email from the ASF dual-hosted git repository.
panjuan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere-ui.git
The following commit(s) were added to refs/heads/master by this push:
new 320de47 Refactor referenced API (#90)
320de47 is described below
commit 320de4783cbb0a289e904e4c6663192aa424b481
Author: Haoran Meng <[email protected]>
AuthorDate: Thu Jun 17 21:46:14 2021 +0800
Refactor referenced API (#90)
---
pom.xml | 22 ++++++-
shardingsphere-ui-backend/pom.xml | 18 +++++-
.../ui/servcie/RegistryCenterService.java | 12 +---
.../ui/servcie/impl/GovernanceServiceImpl.java | 71 +++++++++++++---------
.../impl/ProxyAuthenticationServiceImpl.java | 14 +++--
.../ui/servcie/impl/RegistryCenterServiceImpl.java | 14 +----
.../impl/ShardingPropertiesServiceImpl.java | 9 +--
.../ui/servcie/impl/ShardingSchemaServiceImpl.java | 50 +++++++--------
.../ui/util/CenterRepositoryFactory.java | 23 ++++---
shardingsphere-ui-distribution/pom.xml | 2 +-
.../shardingsphere-ui-bin-distribution/pom.xml | 2 +-
.../shardingsphere-ui-src-distribution/pom.xml | 2 +-
shardingsphere-ui-frontend/pom.xml | 2 +-
13 files changed, 136 insertions(+), 105 deletions(-)
diff --git a/pom.xml b/pom.xml
index eacaddc..67b066c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -25,7 +25,7 @@
</parent>
<groupId>org.apache.shardingsphere</groupId>
<artifactId>shardingsphere-ui</artifactId>
- <version>5.0.0-beta-SNAPSHOT</version>
+ <version>5.0.0-RC1-SNAPSHOT</version>
<packaging>pom</packaging>
<name>${project.artifactId}</name>
@@ -83,6 +83,26 @@
<artifactId>shardingsphere-governance-repository-etcd</artifactId>
<version>${shardingsphere.version}</version>
</dependency>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+
<artifactId>shardingsphere-readwrite-splitting-core</artifactId>
+ <version>${shardingsphere.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+ <artifactId>shardingsphere-encrypt-core</artifactId>
+ <version>${shardingsphere.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+ <artifactId>shardingsphere-db-discovery-core</artifactId>
+ <version>${shardingsphere.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+ <artifactId>shardingsphere-shadow-core</artifactId>
+ <version>${shardingsphere.version}</version>
+ </dependency>
</dependencies>
</dependencyManagement>
diff --git a/shardingsphere-ui-backend/pom.xml
b/shardingsphere-ui-backend/pom.xml
index 6436ba4..4639c38 100644
--- a/shardingsphere-ui-backend/pom.xml
+++ b/shardingsphere-ui-backend/pom.xml
@@ -21,7 +21,7 @@
<parent>
<groupId>org.apache.shardingsphere</groupId>
<artifactId>shardingsphere-ui</artifactId>
- <version>5.0.0-beta-SNAPSHOT</version>
+ <version>5.0.0-RC1-SNAPSHOT</version>
</parent>
<artifactId>shardingsphere-ui-backend</artifactId>
<name>${project.artifactId}</name>
@@ -47,6 +47,22 @@
</dependency>
<dependency>
<groupId>org.apache.shardingsphere</groupId>
+ <artifactId>shardingsphere-readwrite-splitting-core</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+ <artifactId>shardingsphere-encrypt-core</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+ <artifactId>shardingsphere-db-discovery-core</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+ <artifactId>shardingsphere-shadow-core</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
<artifactId>shardingsphere-governance-core</artifactId>
</dependency>
<dependency>
diff --git
a/shardingsphere-ui-backend/src/main/java/org/apache/shardingsphere/ui/servcie/RegistryCenterService.java
b/shardingsphere-ui-backend/src/main/java/org/apache/shardingsphere/ui/servcie/RegistryCenterService.java
index 460e0d6..6b64207 100644
---
a/shardingsphere-ui-backend/src/main/java/org/apache/shardingsphere/ui/servcie/RegistryCenterService.java
+++
b/shardingsphere-ui-backend/src/main/java/org/apache/shardingsphere/ui/servcie/RegistryCenterService.java
@@ -17,8 +17,7 @@
package org.apache.shardingsphere.ui.servcie;
-import org.apache.shardingsphere.governance.core.registry.RegistryCenterNode;
-import org.apache.shardingsphere.governance.repository.api.RegistryRepository;
+import
org.apache.shardingsphere.governance.repository.spi.RegistryCenterRepository;
/**
* Registry center service.
@@ -30,12 +29,5 @@ public interface RegistryCenterService {
*
* @return registry center
*/
- RegistryRepository getActivatedRegistryCenter();
-
- /**
- * Get activated state node.
- *
- * @return state node
- */
- RegistryCenterNode getActivatedStateNode();
+ RegistryCenterRepository getActivatedRegistryCenter();
}
diff --git
a/shardingsphere-ui-backend/src/main/java/org/apache/shardingsphere/ui/servcie/impl/GovernanceServiceImpl.java
b/shardingsphere-ui-backend/src/main/java/org/apache/shardingsphere/ui/servcie/impl/GovernanceServiceImpl.java
index 8284ca9..12d2eb9 100644
---
a/shardingsphere-ui-backend/src/main/java/org/apache/shardingsphere/ui/servcie/impl/GovernanceServiceImpl.java
+++
b/shardingsphere-ui-backend/src/main/java/org/apache/shardingsphere/ui/servcie/impl/GovernanceServiceImpl.java
@@ -19,11 +19,15 @@ package org.apache.shardingsphere.ui.servcie.impl;
import com.google.common.base.Joiner;
import com.google.common.base.Preconditions;
-import
org.apache.shardingsphere.governance.core.registry.RegistryCenterNodeStatus;
-import
org.apache.shardingsphere.governance.core.yaml.config.YamlConfigurationConverter;
+import com.google.common.base.Strings;
+import org.apache.shardingsphere.governance.core.registry.state.ResourceState;
+import
org.apache.shardingsphere.governance.core.registry.state.node.StatesNode;
import org.apache.shardingsphere.infra.config.RuleConfiguration;
-import
org.apache.shardingsphere.readwrite.splitting.api.ReadWriteSplittingRuleConfiguration;
-import
org.apache.shardingsphere.readwrite.splitting.api.rule.ReadWriteSplittingDataSourceRuleConfiguration;
+import org.apache.shardingsphere.infra.yaml.config.YamlRuleConfiguration;
+import org.apache.shardingsphere.infra.yaml.engine.YamlEngine;
+import
org.apache.shardingsphere.infra.yaml.swapper.YamlRuleConfigurationSwapperEngine;
+import
org.apache.shardingsphere.readwritesplitting.api.ReadwriteSplittingRuleConfiguration;
+import
org.apache.shardingsphere.readwritesplitting.api.rule.ReadwriteSplittingDataSourceRuleConfiguration;
import org.apache.shardingsphere.ui.common.dto.InstanceDTO;
import org.apache.shardingsphere.ui.common.dto.ReadDataSourceDTO;
import org.apache.shardingsphere.ui.servcie.GovernanceService;
@@ -57,16 +61,16 @@ public final class GovernanceServiceImpl implements
GovernanceService {
List<String> instanceIds =
registryCenterService.getActivatedRegistryCenter().getChildrenKeys(getInstancesNodeFullRootPath());
Collection<InstanceDTO> result = new ArrayList<>(instanceIds.size());
for (String instanceId : instanceIds) {
- String value =
registryCenterService.getActivatedRegistryCenter().get(registryCenterService.getActivatedStateNode().getProxyNodePath(instanceId));
- result.add(new InstanceDTO(instanceId,
!RegistryCenterNodeStatus.DISABLED.toString().equalsIgnoreCase(value)));
+ String value =
registryCenterService.getActivatedRegistryCenter().get(StatesNode.getProxyNodePath(instanceId));
+ result.add(new InstanceDTO(instanceId,
!ResourceState.DISABLED.toString().equalsIgnoreCase(value)));
}
return result;
}
@Override
public void updateInstanceStatus(final String instanceId, final boolean
enabled) {
- String value = enabled ? "" :
RegistryCenterNodeStatus.DISABLED.toString();
-
registryCenterService.getActivatedRegistryCenter().persist(registryCenterService.getActivatedStateNode().getProxyNodePath(instanceId),
value);
+ String value = enabled ? "" : ResourceState.DISABLED.toString();
+
registryCenterService.getActivatedRegistryCenter().persist(StatesNode.getProxyNodePath(instanceId),
value);
}
@Override
@@ -79,7 +83,7 @@ public final class GovernanceServiceImpl implements
GovernanceService {
}
if (configData.contains("!SHARDING")) {
handleShardingRuleConfiguration(result, configData,
schemaName);
- } else if (configData.contains("!READ_WRITE_SPLITTING")) {
+ } else if (configData.contains("!READWRITE_SPLITTING")) {
handleMasterSlaveRuleConfiguration(result, configData,
schemaName);
}
}
@@ -88,60 +92,67 @@ public final class GovernanceServiceImpl implements
GovernanceService {
@Override
public void updateReadDataSourceStatus(final String schemaNames, final
String readDataSourceName, final boolean enabled) {
- String value = enabled ? "" :
RegistryCenterNodeStatus.DISABLED.toString();
-
registryCenterService.getActivatedRegistryCenter().persist(registryCenterService.getActivatedStateNode().getDataSourcePath(schemaNames,
readDataSourceName), value);
+ String value = enabled ? "" : ResourceState.DISABLED.toString();
+
registryCenterService.getActivatedRegistryCenter().persist(StatesNode.getDataSourcePath(schemaNames,
readDataSourceName), value);
}
private String getInstancesNodeFullRootPath() {
- String result =
registryCenterService.getActivatedStateNode().getProxyNodePath("");
+ String result = StatesNode.getProxyNodePath("");
return result.substring(0, result.length() - 1);
}
private void handleShardingRuleConfiguration(final
Collection<ReadDataSourceDTO> readDataSourceDTOS, final String configData,
final String schemaName) {
- Collection<RuleConfiguration> configurations =
YamlConfigurationConverter.convertRuleConfigurations(configData);
- Collection<ReadWriteSplittingRuleConfiguration>
readWriteSplittingRuleConfigurations = configurations.stream().filter(
- config -> config instanceof
ReadWriteSplittingRuleConfiguration).map(config ->
(ReadWriteSplittingRuleConfiguration) config).collect(Collectors.toList());
- for (ReadWriteSplittingRuleConfiguration
readWriteSplittingRuleConfiguration : readWriteSplittingRuleConfigurations) {
- addSlaveDataSource(readDataSourceDTOS,
readWriteSplittingRuleConfiguration, schemaName);
+ Collection<RuleConfiguration> configurations =
getRuleConfigurations(configData);
+ Collection<ReadwriteSplittingRuleConfiguration>
readWriteSplittingRuleConfigurations = configurations.stream().filter(
+ config -> config instanceof
ReadwriteSplittingRuleConfiguration).map(config ->
(ReadwriteSplittingRuleConfiguration) config).collect(Collectors.toList());
+ for (ReadwriteSplittingRuleConfiguration
readwriteSplittingRuleConfiguration : readWriteSplittingRuleConfigurations) {
+ addSlaveDataSource(readDataSourceDTOS,
readwriteSplittingRuleConfiguration, schemaName);
}
}
private void handleMasterSlaveRuleConfiguration(final
Collection<ReadDataSourceDTO> readDataSourceDTOS, final String configData,
final String schemaName) {
- ReadWriteSplittingRuleConfiguration
readWriteSplittingRuleConfiguration =
loadPrimaryReadRuleConfiguration(configData);
- addSlaveDataSource(readDataSourceDTOS,
readWriteSplittingRuleConfiguration, schemaName);
+ ReadwriteSplittingRuleConfiguration
readwriteSplittingRuleConfiguration =
loadReadwriteSplittingRuleConfiguration(configData);
+ addSlaveDataSource(readDataSourceDTOS,
readwriteSplittingRuleConfiguration, schemaName);
}
- private ReadWriteSplittingRuleConfiguration
loadPrimaryReadRuleConfiguration(final String configData) {
- Collection<RuleConfiguration> ruleConfigurations =
YamlConfigurationConverter.convertRuleConfigurations(configData);
- Optional<ReadWriteSplittingRuleConfiguration> result =
ruleConfigurations.stream().filter(
- each -> each instanceof
ReadWriteSplittingRuleConfiguration).map(ruleConfiguration ->
(ReadWriteSplittingRuleConfiguration) ruleConfiguration).findFirst();
+ private ReadwriteSplittingRuleConfiguration
loadReadwriteSplittingRuleConfiguration(final String configData) {
+ Collection<RuleConfiguration> ruleConfigurations =
getRuleConfigurations(configData);
+ Optional<ReadwriteSplittingRuleConfiguration> result =
ruleConfigurations.stream().filter(
+ each -> each instanceof
ReadwriteSplittingRuleConfiguration).map(ruleConfiguration ->
(ReadwriteSplittingRuleConfiguration) ruleConfiguration).findFirst();
Preconditions.checkState(result.isPresent());
return result.get();
}
- private void addSlaveDataSource(final Collection<ReadDataSourceDTO>
readDataSourceDTOS, final ReadWriteSplittingRuleConfiguration
readWriteSplittingRuleConfiguration, final String schemaName) {
+ private void addSlaveDataSource(final Collection<ReadDataSourceDTO>
readDataSourceDTOS, final ReadwriteSplittingRuleConfiguration
readwriteSplittingRuleConfiguration, final String schemaName) {
Collection<String> disabledSchemaDataSourceNames =
getDisabledSchemaDataSourceNames();
- for (ReadWriteSplittingDataSourceRuleConfiguration each :
readWriteSplittingRuleConfiguration.getDataSources()) {
+ for (ReadwriteSplittingDataSourceRuleConfiguration each :
readwriteSplittingRuleConfiguration.getDataSources()) {
readDataSourceDTOS.addAll(getReadDataSourceDTOS(schemaName,
disabledSchemaDataSourceNames, each));
}
}
- private Collection<ReadDataSourceDTO> getReadDataSourceDTOS(final String
schemaName, final Collection<String> disabledSchemaDataSourceNames, final
ReadWriteSplittingDataSourceRuleConfiguration group) {
+ private Collection<ReadDataSourceDTO> getReadDataSourceDTOS(final String
schemaName, final Collection<String> disabledSchemaDataSourceNames,
+ final
ReadwriteSplittingDataSourceRuleConfiguration group) {
Collection<ReadDataSourceDTO> result = new LinkedList<>();
for (String each : group.getReadDataSourceNames()) {
result.add(new ReadDataSourceDTO(schemaName,
group.getWriteDataSourceName(), each,
!disabledSchemaDataSourceNames.contains(schemaName + "." + each)));
}
return result;
}
+
+ private Collection<RuleConfiguration> getRuleConfigurations(final String
yamlContent) {
+ Collection<YamlRuleConfiguration> rules =
Strings.isNullOrEmpty(yamlContent)
+ ? new LinkedList<>() : YamlEngine.unmarshal(yamlContent,
Collection.class);
+ return new
YamlRuleConfigurationSwapperEngine().swapToRuleConfigurations(rules);
+ }
private Collection<String> getDisabledSchemaDataSourceNames() {
List<String> result = new ArrayList<>();
- List<String> schemaNames =
registryCenterService.getActivatedRegistryCenter().getChildrenKeys(registryCenterService.getActivatedStateNode().getDataNodesPath());
+ List<String> schemaNames =
registryCenterService.getActivatedRegistryCenter().getChildrenKeys(StatesNode.getDataNodesPath());
for (String schemaName : schemaNames) {
- List<String> dataSourceNames =
registryCenterService.getActivatedRegistryCenter().getChildrenKeys(registryCenterService.getActivatedStateNode().getSchemaPath(schemaName));
+ List<String> dataSourceNames =
registryCenterService.getActivatedRegistryCenter().getChildrenKeys(StatesNode.getSchemaPath(schemaName));
for (String dataSourceName : dataSourceNames) {
- String value =
registryCenterService.getActivatedRegistryCenter().get(registryCenterService.getActivatedStateNode().getDataSourcePath(schemaName,
dataSourceName));
- if
(RegistryCenterNodeStatus.DISABLED.toString().equalsIgnoreCase(value)) {
+ String value =
registryCenterService.getActivatedRegistryCenter().get(StatesNode.getDataSourcePath(schemaName,
dataSourceName));
+ if (ResourceState.DISABLED.toString().equalsIgnoreCase(value))
{
result.add(Joiner.on(".").join(schemaName,
dataSourceName));
}
}
diff --git
a/shardingsphere-ui-backend/src/main/java/org/apache/shardingsphere/ui/servcie/impl/ProxyAuthenticationServiceImpl.java
b/shardingsphere-ui-backend/src/main/java/org/apache/shardingsphere/ui/servcie/impl/ProxyAuthenticationServiceImpl.java
index 4543759..2307808 100644
---
a/shardingsphere-ui-backend/src/main/java/org/apache/shardingsphere/ui/servcie/impl/ProxyAuthenticationServiceImpl.java
+++
b/shardingsphere-ui-backend/src/main/java/org/apache/shardingsphere/ui/servcie/impl/ProxyAuthenticationServiceImpl.java
@@ -17,12 +17,17 @@
package org.apache.shardingsphere.ui.servcie.impl;
-import
org.apache.shardingsphere.governance.core.yaml.config.YamlConfigurationConverter;
+import com.google.common.base.Preconditions;
+import
org.apache.shardingsphere.governance.core.registry.config.node.GlobalNode;
+import org.apache.shardingsphere.infra.yaml.config.YamlRuleConfiguration;
+import org.apache.shardingsphere.infra.yaml.engine.YamlEngine;
import org.apache.shardingsphere.ui.servcie.ProxyAuthenticationService;
import org.apache.shardingsphere.ui.servcie.RegistryCenterService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import java.util.Collection;
+
/**
* Implementation of sharding proxy authentication service.
*/
@@ -34,19 +39,20 @@ public final class ProxyAuthenticationServiceImpl
implements ProxyAuthentication
@Override
public String getAuthentication() {
- return
registryCenterService.getActivatedRegistryCenter().get(registryCenterService.getActivatedStateNode().getAuthenticationPath());
+ return
registryCenterService.getActivatedRegistryCenter().get(GlobalNode.getGlobalRuleNode());
}
@Override
public void updateAuthentication(final String authentication) {
checkAuthenticationConfiguration(authentication);
registryCenterService.getActivatedRegistryCenter()
-
.persist(registryCenterService.getActivatedStateNode().getAuthenticationPath(),
authentication);
+ .persist(GlobalNode.getGlobalRuleNode(), authentication);
}
private void checkAuthenticationConfiguration(final String data) {
try {
- YamlConfigurationConverter.convertUserRule(data);
+ Collection<YamlRuleConfiguration> globalRuleConfigs =
YamlEngine.unmarshal(data, Collection.class);
+ Preconditions.checkState(!globalRuleConfigs.isEmpty());
// CHECKSTYLE:OFF
} catch (final Exception ex) {
// CHECKSTYLE:ON
diff --git
a/shardingsphere-ui-backend/src/main/java/org/apache/shardingsphere/ui/servcie/impl/RegistryCenterServiceImpl.java
b/shardingsphere-ui-backend/src/main/java/org/apache/shardingsphere/ui/servcie/impl/RegistryCenterServiceImpl.java
index 02aad71..ac56fed 100644
---
a/shardingsphere-ui-backend/src/main/java/org/apache/shardingsphere/ui/servcie/impl/RegistryCenterServiceImpl.java
+++
b/shardingsphere-ui-backend/src/main/java/org/apache/shardingsphere/ui/servcie/impl/RegistryCenterServiceImpl.java
@@ -17,8 +17,7 @@
package org.apache.shardingsphere.ui.servcie.impl;
-import org.apache.shardingsphere.governance.core.registry.RegistryCenterNode;
-import org.apache.shardingsphere.governance.repository.api.RegistryRepository;
+import
org.apache.shardingsphere.governance.repository.spi.RegistryCenterRepository;
import org.apache.shardingsphere.ui.common.domain.CenterConfig;
import org.apache.shardingsphere.ui.common.exception.ShardingSphereUIException;
import org.apache.shardingsphere.ui.servcie.CenterConfigService;
@@ -39,20 +38,11 @@ public final class RegistryCenterServiceImpl implements
RegistryCenterService {
private CenterConfigService centerConfigService;
@Override
- public RegistryRepository getActivatedRegistryCenter() {
+ public RegistryCenterRepository getActivatedRegistryCenter() {
Optional<CenterConfig> optional = centerConfigService.loadActivated();
if (optional.isPresent()) {
return
CenterRepositoryFactory.createRegistryRepository(optional.get());
}
throw new
ShardingSphereUIException(ShardingSphereUIException.SERVER_ERROR, "No activated
registry center!");
}
-
- @Override
- public RegistryCenterNode getActivatedStateNode() {
- Optional<CenterConfig> optional = centerConfigService.loadActivated();
- if (optional.isPresent()) {
- return new RegistryCenterNode();
- }
- throw new
ShardingSphereUIException(ShardingSphereUIException.SERVER_ERROR, "No activated
registry center!");
- }
}
diff --git
a/shardingsphere-ui-backend/src/main/java/org/apache/shardingsphere/ui/servcie/impl/ShardingPropertiesServiceImpl.java
b/shardingsphere-ui-backend/src/main/java/org/apache/shardingsphere/ui/servcie/impl/ShardingPropertiesServiceImpl.java
index 62edefe..9073e2b 100644
---
a/shardingsphere-ui-backend/src/main/java/org/apache/shardingsphere/ui/servcie/impl/ShardingPropertiesServiceImpl.java
+++
b/shardingsphere-ui-backend/src/main/java/org/apache/shardingsphere/ui/servcie/impl/ShardingPropertiesServiceImpl.java
@@ -17,8 +17,9 @@
package org.apache.shardingsphere.ui.servcie.impl;
-import
org.apache.shardingsphere.governance.core.yaml.config.YamlConfigurationConverter;
+import
org.apache.shardingsphere.governance.core.registry.config.node.GlobalNode;
import
org.apache.shardingsphere.infra.config.properties.ConfigurationProperties;
+import org.apache.shardingsphere.infra.yaml.engine.YamlEngine;
import org.apache.shardingsphere.ui.servcie.RegistryCenterService;
import org.apache.shardingsphere.ui.servcie.ShardingPropertiesService;
import org.springframework.stereotype.Service;
@@ -37,18 +38,18 @@ public final class ShardingPropertiesServiceImpl implements
ShardingPropertiesSe
@Override
public String loadShardingProperties() {
- return
registryCenterService.getActivatedRegistryCenter().get(registryCenterService.getActivatedStateNode().getPropsPath());
+ return
registryCenterService.getActivatedRegistryCenter().get(GlobalNode.getPropsPath());
}
@Override
public void updateShardingProperties(final String configData) {
checkShardingProperties(configData);
-
registryCenterService.getActivatedRegistryCenter().persist(registryCenterService.getActivatedStateNode().getPropsPath(),
configData);
+
registryCenterService.getActivatedRegistryCenter().persist(GlobalNode.getPropsPath(),
configData);
}
private void checkShardingProperties(final String configData) {
try {
- Properties props =
YamlConfigurationConverter.convertProperties(configData);
+ Properties props = YamlEngine.unmarshal(configData,
Properties.class);
new ConfigurationProperties(props);
// CHECKSTYLE:OFF
} catch (final Exception ex) {
diff --git
a/shardingsphere-ui-backend/src/main/java/org/apache/shardingsphere/ui/servcie/impl/ShardingSchemaServiceImpl.java
b/shardingsphere-ui-backend/src/main/java/org/apache/shardingsphere/ui/servcie/impl/ShardingSchemaServiceImpl.java
index 7ebba13..c903677 100644
---
a/shardingsphere-ui-backend/src/main/java/org/apache/shardingsphere/ui/servcie/impl/ShardingSchemaServiceImpl.java
+++
b/shardingsphere-ui-backend/src/main/java/org/apache/shardingsphere/ui/servcie/impl/ShardingSchemaServiceImpl.java
@@ -21,9 +21,11 @@ import com.google.common.base.Joiner;
import com.google.common.base.Preconditions;
import com.google.common.base.Splitter;
import com.google.common.base.Strings;
-import
org.apache.shardingsphere.governance.core.yaml.config.YamlConfigurationConverter;
-import org.apache.shardingsphere.governance.repository.api.RegistryRepository;
+import
org.apache.shardingsphere.governance.core.registry.config.node.SchemaMetadataNode;
+import
org.apache.shardingsphere.governance.repository.spi.RegistryCenterRepository;
import
org.apache.shardingsphere.infra.config.datasource.DataSourceConfiguration;
+import org.apache.shardingsphere.infra.yaml.engine.YamlEngine;
+import
org.apache.shardingsphere.infra.yaml.swapper.YamlDataSourceConfigurationSwapper;
import org.apache.shardingsphere.ui.servcie.RegistryCenterService;
import org.apache.shardingsphere.ui.servcie.ShardingSchemaService;
import org.springframework.stereotype.Service;
@@ -31,8 +33,11 @@ import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Collection;
+import java.util.HashMap;
+import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
+import java.util.stream.Collectors;
/**
* Implementation of sharding schema service.
@@ -45,17 +50,17 @@ public final class ShardingSchemaServiceImpl implements
ShardingSchemaService {
@Override
public Collection<String> getAllSchemaNames() {
- return
registryCenterService.getActivatedRegistryCenter().getChildrenKeys(registryCenterService.getActivatedStateNode().getMetadataNodePath());
+ return
registryCenterService.getActivatedRegistryCenter().getChildrenKeys(SchemaMetadataNode.getMetadataNodePath());
}
@Override
public String getRuleConfiguration(final String schemaName) {
- return
registryCenterService.getActivatedRegistryCenter().get(registryCenterService.getActivatedStateNode().getRulePath(schemaName));
+ return
registryCenterService.getActivatedRegistryCenter().get(SchemaMetadataNode.getRulePath(schemaName));
}
@Override
public String getDataSourceConfiguration(final String schemaName) {
- return
registryCenterService.getActivatedRegistryCenter().get(registryCenterService.getActivatedStateNode().getMetadataDataSourcePath(schemaName));
+ return
registryCenterService.getActivatedRegistryCenter().get(SchemaMetadataNode.getMetadataDataSourcePath(schemaName));
}
@Override
@@ -77,29 +82,28 @@ public final class ShardingSchemaServiceImpl implements
ShardingSchemaService {
checkDataSourceConfiguration(dataSourceConfiguration);
persistRuleConfiguration(schemaName, ruleConfiguration);
persistDataSourceConfiguration(schemaName, dataSourceConfiguration);
- persistSchemaName(schemaName);
}
@Override
public void deleteSchemaConfiguration(final String schemaName) {
- RegistryRepository registryRepository =
registryCenterService.getActivatedRegistryCenter();
- String schemaNamePath =
registryCenterService.getActivatedStateNode().getSchemaNamePath(schemaName);
+ RegistryCenterRepository registryRepository =
registryCenterService.getActivatedRegistryCenter();
+ String schemaNamePath =
SchemaMetadataNode.getSchemaNamePath(schemaName);
registryRepository.delete(schemaNamePath);
- String schemaNames =
registryCenterService.getActivatedRegistryCenter().get(registryCenterService.getActivatedStateNode().getMetadataNodePath());
+ String schemaNames =
registryCenterService.getActivatedRegistryCenter().get(SchemaMetadataNode.getMetadataNodePath());
List<String> schemaNameList = new
ArrayList<>(Splitter.on(",").splitToList(schemaNames));
schemaNameList.remove(schemaName);
-
registryRepository.persist(registryCenterService.getActivatedStateNode().getMetadataNodePath(),
Joiner.on(",").join(schemaNameList));
+ registryRepository.persist(SchemaMetadataNode.getMetadataNodePath(),
Joiner.on(",").join(schemaNameList));
}
@Override
public String getMetadataConfiguration(final String schemaName) {
return registryCenterService.getActivatedRegistryCenter().get(
-
registryCenterService.getActivatedStateNode().getSchemaPath(schemaName));
+ SchemaMetadataNode.getMetadataSchemaPath(schemaName));
}
private void checkRuleConfiguration(final String configData) {
try {
- YamlConfigurationConverter.convertRuleConfigurations(configData);
+ YamlEngine.unmarshal(configData, Collection.class);
// CHECKSTYLE:OFF
} catch (final Exception ex) {
// CHECKSTYLE:ON
@@ -108,13 +112,16 @@ public final class ShardingSchemaServiceImpl implements
ShardingSchemaService {
}
private void persistRuleConfiguration(final String schemaName, final
String ruleConfiguration) {
-
registryCenterService.getActivatedRegistryCenter().persist(registryCenterService.getActivatedStateNode().getRulePath(schemaName),
ruleConfiguration);
+
registryCenterService.getActivatedRegistryCenter().persist(SchemaMetadataNode.getRulePath(schemaName),
ruleConfiguration);
}
private void checkDataSourceConfiguration(final String configData) {
try {
- Map<String, DataSourceConfiguration> dataSourceConfigs =
YamlConfigurationConverter.convertDataSourceConfigurations(configData);
- Preconditions.checkState(!dataSourceConfigs.isEmpty(), "data
source configuration is invalid.");
+ Map<String, Map<String, Object>> yamlDataSources =
YamlEngine.unmarshal(configData, Map.class);
+ Map<String, DataSourceConfiguration> dataSourceConfigs =
yamlDataSources.isEmpty() ? new HashMap<>()
+ :
yamlDataSources.entrySet().stream().collect(Collectors.toMap(
+ Map.Entry::getKey, entry -> new
YamlDataSourceConfigurationSwapper().swapToDataSourceConfiguration(entry.getValue()),
(oldValue, currentValue) -> oldValue, LinkedHashMap::new));
+ Preconditions.checkState(!dataSourceConfigs.isEmpty());
// CHECKSTYLE:OFF
} catch (final Exception ex) {
// CHECKSTYLE:ON
@@ -123,22 +130,11 @@ public final class ShardingSchemaServiceImpl implements
ShardingSchemaService {
}
private void persistDataSourceConfiguration(final String schemaName, final
String dataSourceConfiguration) {
-
registryCenterService.getActivatedRegistryCenter().persist(registryCenterService.getActivatedStateNode().getMetadataDataSourcePath(schemaName),
dataSourceConfiguration);
+
registryCenterService.getActivatedRegistryCenter().persist(SchemaMetadataNode.getMetadataDataSourcePath(schemaName),
dataSourceConfiguration);
}
private void checkSchemaName(final String schemaName, final
Collection<String> existedSchemaNames) {
Preconditions.checkArgument(!Strings.isNullOrEmpty(schemaName),
"schema name is invalid.");
Preconditions.checkArgument(!existedSchemaNames.contains(schemaName),
"schema name already exists.");
}
-
- private void persistSchemaName(final String schemaName) {
- RegistryRepository registryRepository =
registryCenterService.getActivatedRegistryCenter();
- String schemaPath =
registryCenterService.getActivatedStateNode().getMetadataNodePath();
- String schemaNames = registryRepository.get(schemaPath);
- List<String> schemaNameList = Strings.isNullOrEmpty(schemaNames) ? new
ArrayList<>() : new ArrayList<>(Splitter.on(",").splitToList(schemaNames));
- if (!schemaNameList.contains(schemaName)) {
- schemaNameList.add(schemaName);
- registryRepository.persist(schemaPath,
Joiner.on(",").join(schemaNameList));
- }
- }
}
diff --git
a/shardingsphere-ui-backend/src/main/java/org/apache/shardingsphere/ui/util/CenterRepositoryFactory.java
b/shardingsphere-ui-backend/src/main/java/org/apache/shardingsphere/ui/util/CenterRepositoryFactory.java
index 2cb67d1..93ba50d 100644
---
a/shardingsphere-ui-backend/src/main/java/org/apache/shardingsphere/ui/util/CenterRepositoryFactory.java
+++
b/shardingsphere-ui-backend/src/main/java/org/apache/shardingsphere/ui/util/CenterRepositoryFactory.java
@@ -19,10 +19,9 @@ package org.apache.shardingsphere.ui.util;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
-import
org.apache.shardingsphere.governance.repository.api.GovernanceRepository;
-import org.apache.shardingsphere.governance.repository.api.RegistryRepository;
-import
org.apache.shardingsphere.governance.repository.api.config.GovernanceCenterConfiguration;
+import
org.apache.shardingsphere.governance.repository.api.config.RegistryCenterConfiguration;
import org.apache.shardingsphere.governance.repository.etcd.EtcdRepository;
+import
org.apache.shardingsphere.governance.repository.spi.RegistryCenterRepository;
import
org.apache.shardingsphere.governance.repository.zookeeper.CuratorZookeeperRepository;
import org.apache.shardingsphere.ui.common.constant.InstanceType;
import org.apache.shardingsphere.ui.common.domain.CenterConfig;
@@ -36,33 +35,33 @@ import java.util.concurrent.ConcurrentHashMap;
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public final class CenterRepositoryFactory {
- private static final ConcurrentHashMap<String, RegistryRepository>
REGISTRY_REPOSITORY_MAP = new ConcurrentHashMap<>();
+ private static final ConcurrentHashMap<String, RegistryCenterRepository>
REGISTRY_REPOSITORY_MAP = new ConcurrentHashMap<>();
/**
- * Create registry repository.
+ * Create registry center repository.
*
* @param config center config
* @return registry repository
*/
- public static RegistryRepository createRegistryRepository(final
CenterConfig config) {
- RegistryRepository result =
REGISTRY_REPOSITORY_MAP.get(config.getName());
+ public static RegistryCenterRepository createRegistryRepository(final
CenterConfig config) {
+ RegistryCenterRepository result =
REGISTRY_REPOSITORY_MAP.get(config.getName());
if (null != result) {
return result;
}
- result = (RegistryRepository)
createGovernanceRepository(config.getInstanceType());
+ result = createGovernanceRepository(config.getInstanceType());
result.init(config.getGovernanceName(), convert(config));
REGISTRY_REPOSITORY_MAP.put(config.getName(), result);
return result;
}
- private static GovernanceCenterConfiguration convert(final CenterConfig
config) {
- GovernanceCenterConfiguration result = new
GovernanceCenterConfiguration(config.getInstanceType(),
config.getServerLists(), new Properties());
+ private static RegistryCenterConfiguration convert(final CenterConfig
config) {
+ RegistryCenterConfiguration result = new
RegistryCenterConfiguration(config.getInstanceType(), config.getServerLists(),
new Properties());
result.getProps().put("digest", config.getDigest());
return result;
}
- private static GovernanceRepository createGovernanceRepository(final
String instanceType) {
- RegistryRepository result;
+ private static RegistryCenterRepository createGovernanceRepository(final
String instanceType) {
+ RegistryCenterRepository result;
InstanceType type = InstanceType.nameOf(instanceType);
switch (type) {
case ZOOKEEPER:
diff --git a/shardingsphere-ui-distribution/pom.xml
b/shardingsphere-ui-distribution/pom.xml
index c16f37c..b25d5be 100644
--- a/shardingsphere-ui-distribution/pom.xml
+++ b/shardingsphere-ui-distribution/pom.xml
@@ -21,7 +21,7 @@
<parent>
<groupId>org.apache.shardingsphere</groupId>
<artifactId>shardingsphere-ui</artifactId>
- <version>5.0.0-beta-SNAPSHOT</version>
+ <version>5.0.0-RC1-SNAPSHOT</version>
</parent>
<artifactId>shardingsphere-ui-distribution</artifactId>
<name>${project.artifactId}</name>
diff --git
a/shardingsphere-ui-distribution/shardingsphere-ui-bin-distribution/pom.xml
b/shardingsphere-ui-distribution/shardingsphere-ui-bin-distribution/pom.xml
index ad964c6..8a57590 100644
--- a/shardingsphere-ui-distribution/shardingsphere-ui-bin-distribution/pom.xml
+++ b/shardingsphere-ui-distribution/shardingsphere-ui-bin-distribution/pom.xml
@@ -21,7 +21,7 @@
<parent>
<groupId>org.apache.shardingsphere</groupId>
<artifactId>shardingsphere-ui-distribution</artifactId>
- <version>5.0.0-beta-SNAPSHOT</version>
+ <version>5.0.0-RC1-SNAPSHOT</version>
</parent>
<artifactId>shardingsphere-ui-bin-distribution</artifactId>
<name>${project.artifactId}</name>
diff --git
a/shardingsphere-ui-distribution/shardingsphere-ui-src-distribution/pom.xml
b/shardingsphere-ui-distribution/shardingsphere-ui-src-distribution/pom.xml
index 6b4bfdc..c623a42 100644
--- a/shardingsphere-ui-distribution/shardingsphere-ui-src-distribution/pom.xml
+++ b/shardingsphere-ui-distribution/shardingsphere-ui-src-distribution/pom.xml
@@ -21,7 +21,7 @@
<parent>
<groupId>org.apache.shardingsphere</groupId>
<artifactId>shardingsphere-ui-distribution</artifactId>
- <version>5.0.0-beta-SNAPSHOT</version>
+ <version>5.0.0-RC1-SNAPSHOT</version>
</parent>
<artifactId>shardingsphere-ui-src-distribution</artifactId>
<name>${project.artifactId}</name>
diff --git a/shardingsphere-ui-frontend/pom.xml
b/shardingsphere-ui-frontend/pom.xml
index 51fa4d3..0d29091 100644
--- a/shardingsphere-ui-frontend/pom.xml
+++ b/shardingsphere-ui-frontend/pom.xml
@@ -21,7 +21,7 @@
<parent>
<groupId>org.apache.shardingsphere</groupId>
<artifactId>shardingsphere-ui</artifactId>
- <version>5.0.0-beta-SNAPSHOT</version>
+ <version>5.0.0-RC1-SNAPSHOT</version>
</parent>
<artifactId>shardingsphere-ui-frontend</artifactId>
<name>${project.artifactId}</name>