You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by pa...@apache.org on 2021/08/04 12:43:24 UTC

[shardingsphere] branch master updated: Minor refactor for proxy (#11646)

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.git


The following commit(s) were added to refs/heads/master by this push:
     new 652d098  Minor refactor for proxy (#11646)
652d098 is described below

commit 652d0989904ba01e166a84aa1b8195d8289e2b49
Author: Haoran Meng <me...@gmail.com>
AuthorDate: Wed Aug 4 20:42:55 2021 +0800

    Minor refactor for proxy (#11646)
---
 .../src/main/java/org/apache/shardingsphere/proxy/Bootstrap.java | 6 +++++-
 .../shardingsphere/proxy/initializer/BootstrapInitializer.java   | 7 +++----
 .../proxy/initializer/impl/AbstractBootstrapInitializer.java     | 7 +------
 .../proxy/initializer/impl/GovernanceBootstrapInitializer.java   | 2 +-
 .../proxy/initializer/impl/AbstractBootstrapInitializerTest.java | 9 +--------
 5 files changed, 11 insertions(+), 20 deletions(-)

diff --git a/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/main/java/org/apache/shardingsphere/proxy/Bootstrap.java b/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/main/java/org/apache/shardingsphere/proxy/Bootstrap.java
index 0346dc9..e29c8d3 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/main/java/org/apache/shardingsphere/proxy/Bootstrap.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/main/java/org/apache/shardingsphere/proxy/Bootstrap.java
@@ -29,6 +29,7 @@ import org.apache.shardingsphere.infra.yaml.config.swapper.YamlRuleConfiguration
 import org.apache.shardingsphere.proxy.arguments.BootstrapArguments;
 import org.apache.shardingsphere.proxy.config.ProxyConfigurationLoader;
 import org.apache.shardingsphere.proxy.config.YamlProxyConfiguration;
+import org.apache.shardingsphere.proxy.frontend.ShardingSphereProxy;
 import org.apache.shardingsphere.proxy.initializer.BootstrapInitializer;
 import org.apache.shardingsphere.proxy.initializer.impl.GovernanceBootstrapInitializer;
 import org.apache.shardingsphere.proxy.initializer.impl.StandardBootstrapInitializer;
@@ -54,7 +55,10 @@ public final class Bootstrap {
     public static void main(final String[] args) throws IOException, SQLException {
         BootstrapArguments bootstrapArgs = new BootstrapArguments(args);
         YamlProxyConfiguration yamlConfig = ProxyConfigurationLoader.load(bootstrapArgs.getConfigurationPath());
-        createBootstrapInitializer(yamlConfig).init(yamlConfig, bootstrapArgs.getPort());
+        BootstrapInitializer initializer = createBootstrapInitializer(yamlConfig);
+        initializer.init(yamlConfig);
+        initializer.afterInit(yamlConfig);
+        new ShardingSphereProxy().start(bootstrapArgs.getPort());
     }
     
     private static BootstrapInitializer createBootstrapInitializer(final YamlProxyConfiguration yamlConfig) {
diff --git a/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/main/java/org/apache/shardingsphere/proxy/initializer/BootstrapInitializer.java b/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/main/java/org/apache/shardingsphere/proxy/initializer/BootstrapInitializer.java
index b45e153..ee8499b 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/main/java/org/apache/shardingsphere/proxy/initializer/BootstrapInitializer.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/main/java/org/apache/shardingsphere/proxy/initializer/BootstrapInitializer.java
@@ -30,16 +30,15 @@ public interface BootstrapInitializer {
      * Initialize.
      * 
      * @param yamlConfig YAML proxy configuration
-     * @param port port
      * @throws SQLException SQL exception
      */
-    void init(YamlProxyConfiguration yamlConfig, int port) throws SQLException;
+    void init(YamlProxyConfiguration yamlConfig) throws SQLException;
     
     /**
-     * Called before proxy startup.
+     * Called after initialize.
      * 
      * @param yamlConfig YAML proxy configuration
      */
-    default void beforeStart(YamlProxyConfiguration yamlConfig) {
+    default void afterInit(YamlProxyConfiguration yamlConfig) {
     }
 }
diff --git a/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/main/java/org/apache/shardingsphere/proxy/initializer/impl/AbstractBootstrapInitializer.java b/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/main/java/org/apache/shardingsphere/proxy/initializer/impl/AbstractBootstrapInitializer.java
index 573a5a3..2434285 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/main/java/org/apache/shardingsphere/proxy/initializer/impl/AbstractBootstrapInitializer.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/main/java/org/apache/shardingsphere/proxy/initializer/impl/AbstractBootstrapInitializer.java
@@ -41,7 +41,6 @@ import org.apache.shardingsphere.proxy.config.yaml.YamlProxyRuleConfiguration;
 import org.apache.shardingsphere.proxy.config.yaml.YamlProxyServerConfiguration;
 import org.apache.shardingsphere.proxy.config.yaml.swapper.YamlProxyConfigurationSwapper;
 import org.apache.shardingsphere.proxy.database.DatabaseServerInfo;
-import org.apache.shardingsphere.proxy.frontend.ShardingSphereProxy;
 import org.apache.shardingsphere.proxy.initializer.BootstrapInitializer;
 import org.apache.shardingsphere.scaling.core.config.ServerConfiguration;
 import org.apache.shardingsphere.transaction.ShardingTransactionManagerEngine;
@@ -65,8 +64,6 @@ import java.util.stream.Collectors;
 @Slf4j
 public abstract class AbstractBootstrapInitializer implements BootstrapInitializer {
     
-    private final ShardingSphereProxy shardingSphereProxy = new ShardingSphereProxy();
-    
     @Getter
     private final DistMetaDataPersistService distMetaDataPersistService;
     
@@ -75,7 +72,7 @@ public abstract class AbstractBootstrapInitializer implements BootstrapInitializ
     }
     
     @Override
-    public final void init(final YamlProxyConfiguration yamlConfig, final int port) throws SQLException {
+    public final void init(final YamlProxyConfiguration yamlConfig) throws SQLException {
         ProxyConfiguration proxyConfig = getProxyConfiguration(yamlConfig);
         MetaDataContexts metaDataContexts = decorateMetaDataContexts(createMetaDataContexts(proxyConfig));
         String xaTransactionMangerType = metaDataContexts.getProps().getValue(ConfigurationPropertyKey.XA_TRANSACTION_MANAGER_TYPE);
@@ -83,8 +80,6 @@ public abstract class AbstractBootstrapInitializer implements BootstrapInitializ
         ProxyContext.getInstance().init(metaDataContexts, transactionContexts);
         setDatabaseServerInfo();
         initScalingWorker(yamlConfig);
-        beforeStart(yamlConfig);
-        shardingSphereProxy.start(port);
     }
     
     private ProxyConfiguration getProxyConfiguration(final YamlProxyConfiguration yamlConfig) {
diff --git a/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/main/java/org/apache/shardingsphere/proxy/initializer/impl/GovernanceBootstrapInitializer.java b/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/main/java/org/apache/shardingsphere/proxy/initializer/impl/GovernanceBootstrapInitializer.java
index 794c6eb..922873e 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/main/java/org/apache/shardingsphere/proxy/initializer/impl/GovernanceBootstrapInitializer.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/main/java/org/apache/shardingsphere/proxy/initializer/impl/GovernanceBootstrapInitializer.java
@@ -76,7 +76,7 @@ public final class GovernanceBootstrapInitializer extends AbstractBootstrapIniti
     }
     
     @Override
-    public void beforeStart(final YamlProxyConfiguration yamlConfig) {
+    public void afterInit(final YamlProxyConfiguration yamlConfig) {
         governanceRule.getRegistryCenter().onlineInstance(getSchemaNames(yamlConfig));
     }
     
diff --git a/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/test/java/org/apache/shardingsphere/proxy/initializer/impl/AbstractBootstrapInitializerTest.java b/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/test/java/org/apache/shardingsphere/proxy/initializer/impl/AbstractBootstrapInitializerTest.java
index 66163bc..4195909 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/test/java/org/apache/shardingsphere/proxy/initializer/impl/AbstractBootstrapInitializerTest.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/test/java/org/apache/shardingsphere/proxy/initializer/impl/AbstractBootstrapInitializerTest.java
@@ -26,7 +26,6 @@ import org.apache.shardingsphere.infra.config.properties.ConfigurationPropertyKe
 import org.apache.shardingsphere.infra.context.metadata.MetaDataContexts;
 import org.apache.shardingsphere.proxy.config.YamlProxyConfiguration;
 import org.apache.shardingsphere.proxy.config.yaml.YamlProxyServerConfiguration;
-import org.apache.shardingsphere.proxy.frontend.ShardingSphereProxy;
 import org.apache.shardingsphere.transaction.context.TransactionContexts;
 import org.junit.Before;
 import org.junit.Test;
@@ -38,13 +37,10 @@ import java.util.Collections;
 import java.util.Properties;
 
 import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.anyInt;
-import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.CALLS_REAL_METHODS;
 import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
 import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
 public abstract class AbstractBootstrapInitializerTest {
@@ -67,8 +63,6 @@ public abstract class AbstractBootstrapInitializerTest {
     @Test
     public final void assertInit() throws SQLException {
         AbstractBootstrapInitializer initializer = mock(AbstractBootstrapInitializer.class, CALLS_REAL_METHODS);
-        ShardingSphereProxy shardingSphereProxy = mock(ShardingSphereProxy.class);
-        setFieldValue(initializer, "shardingSphereProxy", shardingSphereProxy);
         DistMetaDataPersistService distMetaDataPersistService = mock(DistMetaDataPersistService.class, RETURNS_DEEP_STUBS);
         when(distMetaDataPersistService.getSchemaMetaDataService().loadAllNames()).thenReturn(Collections.emptyList());
         setFieldValue(initializer, "distMetaDataPersistService", distMetaDataPersistService);
@@ -82,8 +76,7 @@ public abstract class AbstractBootstrapInitializerTest {
         when(yamlConfig.getRuleConfigurations()).thenReturn(Collections.emptyMap());
         when(yamlConfig.getServerConfiguration()).thenReturn(mock(YamlProxyServerConfiguration.class));
         when(yamlConfig.getServerConfiguration().getProps()).thenReturn(new Properties());
-        initializer.init(yamlConfig, eq(anyInt()));
-        verify(shardingSphereProxy).start(anyInt());
+        initializer.init(yamlConfig);
     }
     
     @SneakyThrows(ReflectiveOperationException.class)