You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by du...@apache.org on 2021/08/07 08:17:36 UTC

[shardingsphere] branch master updated: Remove AbstractBootstrapInitializer.decorateTransactionContexts() (#11693)

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

duanzhengqiang 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 08f9554  Remove AbstractBootstrapInitializer.decorateTransactionContexts() (#11693)
08f9554 is described below

commit 08f955480341c3ee5304cae93d25ae6b4a88084c
Author: Liang Zhang <te...@163.com>
AuthorDate: Sat Aug 7 16:17:12 2021 +0800

    Remove AbstractBootstrapInitializer.decorateTransactionContexts() (#11693)
    
    * Remove AbstractBootstrapInitializer.decorateTransactionContexts()
    
    * Refine AbstractBootstrapInitializerTest
---
 .../impl/AbstractBootstrapInitializer.java         |  9 ++---
 .../impl/GovernanceBootstrapInitializer.java       |  9 +----
 .../impl/StandardBootstrapInitializer.java         |  6 ---
 .../impl/AbstractBootstrapInitializerTest.java     | 43 +++++++++++-----------
 .../impl/GovernanceBootstrapInitializerTest.java   | 11 ------
 .../impl/StandardBootstrapInitializerTest.java     | 12 ------
 6 files changed, 27 insertions(+), 63 deletions(-)

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 08e5027..6b783a0 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
@@ -79,12 +79,11 @@ public abstract class AbstractBootstrapInitializer implements BootstrapInitializ
     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);
-        TransactionContexts transactionContexts = decorateTransactionContexts(createTransactionContexts(metaDataContexts), xaTransactionMangerType);
+        TransactionContexts transactionContexts = createTransactionContexts(metaDataContexts);
         ProxyContext.getInstance().init(metaDataContexts, transactionContexts);
         setDatabaseServerInfo();
         initScalingInternal(yamlConfig);
-        postInit(yamlConfig);
+        postInit(yamlConfig, transactionContexts, metaDataContexts.getProps().getValue(ConfigurationPropertyKey.XA_TRANSACTION_MANAGER_TYPE));
     }
     
     private ProxyConfiguration getProxyConfiguration(final YamlProxyConfiguration yamlConfig) {
@@ -170,8 +169,6 @@ public abstract class AbstractBootstrapInitializer implements BootstrapInitializ
     
     protected abstract MetaDataContexts decorateMetaDataContexts(MetaDataContexts metaDataContexts);
     
-    protected abstract TransactionContexts decorateTransactionContexts(TransactionContexts transactionContexts, String xaTransactionMangerType);
-    
     protected abstract void initScaling(YamlProxyConfiguration yamlConfig);
     
     protected final void persistConfigurations(final YamlProxyConfiguration yamlConfig, final boolean overwrite) {
@@ -226,6 +223,6 @@ public abstract class AbstractBootstrapInitializer implements BootstrapInitializ
                 .collect(Collectors.toMap(each -> each, each -> distMetaDataPersistService.getSchemaRuleService().load(each), (oldValue, currentValue) -> oldValue, LinkedHashMap::new));
     }
     
-    protected void postInit(final YamlProxyConfiguration yamlConfig) {
+    protected void postInit(final YamlProxyConfiguration yamlConfig, final TransactionContexts transactionContexts, final String xaTransactionMangerType) {
     }
 }
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 8dda6d8..f9988f9 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
@@ -62,12 +62,6 @@ public final class GovernanceBootstrapInitializer extends AbstractBootstrapIniti
     }
     
     @Override
-    protected TransactionContexts decorateTransactionContexts(final TransactionContexts transactionContexts, final String xaTransactionMangerType) {
-        new TransactionContextsSubscriber(transactionContexts, xaTransactionMangerType);
-        return transactionContexts;
-    }
-    
-    @Override
     protected void initScaling(final YamlProxyConfiguration yamlConfig) {
         Optional<ServerConfiguration> scalingConfig = getScalingConfiguration(yamlConfig);
         Optional<YamlGovernanceConfiguration> governanceConfig = yamlConfig.getServerConfiguration().getRules().stream().filter(
@@ -83,7 +77,8 @@ public final class GovernanceBootstrapInitializer extends AbstractBootstrapIniti
     }
     
     @Override
-    protected void postInit(final YamlProxyConfiguration yamlConfig) {
+    protected void postInit(final YamlProxyConfiguration yamlConfig, final TransactionContexts transactionContexts, final String xaTransactionMangerType) {
+        new TransactionContextsSubscriber(transactionContexts, xaTransactionMangerType);
         governanceRule.getRegistryCenter().onlineInstance(getSchemaNames(yamlConfig));
     }
     
diff --git a/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/main/java/org/apache/shardingsphere/proxy/initializer/impl/StandardBootstrapInitializer.java b/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/main/java/org/apache/shardingsphere/proxy/initializer/impl/StandardBootstrapInitializer.java
index 77a1f68..eda1c29 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/main/java/org/apache/shardingsphere/proxy/initializer/impl/StandardBootstrapInitializer.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/main/java/org/apache/shardingsphere/proxy/initializer/impl/StandardBootstrapInitializer.java
@@ -23,7 +23,6 @@ import org.apache.shardingsphere.infra.context.metadata.MetaDataContexts;
 import org.apache.shardingsphere.infra.rule.persist.DistMetaDataPersistRuleConfiguration;
 import org.apache.shardingsphere.proxy.config.YamlProxyConfiguration;
 import org.apache.shardingsphere.scaling.core.config.ScalingContext;
-import org.apache.shardingsphere.transaction.context.TransactionContexts;
 
 /**
  * Standard bootstrap initializer.
@@ -45,11 +44,6 @@ public final class StandardBootstrapInitializer extends AbstractBootstrapInitial
     }
     
     @Override
-    protected TransactionContexts decorateTransactionContexts(final TransactionContexts transactionContexts, final String xaTransactionMangerType) {
-        return transactionContexts;
-    }
-    
-    @Override
     protected void initScaling(final YamlProxyConfiguration yamlConfig) {
         getScalingConfiguration(yamlConfig).ifPresent(optional -> ScalingContext.getInstance().init(optional));
     }
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 4195909..4b15e76 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.transaction.context.TransactionContexts;
 import org.junit.Before;
 import org.junit.Test;
 
@@ -37,9 +36,7 @@ import java.util.Collections;
 import java.util.Properties;
 
 import static org.mockito.ArgumentMatchers.any;
-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.when;
 
@@ -62,30 +59,34 @@ public abstract class AbstractBootstrapInitializerTest {
     
     @Test
     public final void assertInit() throws SQLException {
-        AbstractBootstrapInitializer initializer = mock(AbstractBootstrapInitializer.class, CALLS_REAL_METHODS);
-        DistMetaDataPersistService distMetaDataPersistService = mock(DistMetaDataPersistService.class, RETURNS_DEEP_STUBS);
-        when(distMetaDataPersistService.getSchemaMetaDataService().loadAllNames()).thenReturn(Collections.emptyList());
-        setFieldValue(initializer, "distMetaDataPersistService", distMetaDataPersistService);
-        MetaDataContexts metaDataContexts = mock(MetaDataContexts.class);
-        ConfigurationProperties props = mock(ConfigurationProperties.class);
-        when(props.getValue(ConfigurationPropertyKey.XA_TRANSACTION_MANAGER_TYPE)).thenReturn("Atomikos");
-        when(metaDataContexts.getProps()).thenReturn(props);
-        doReturn(metaDataContexts).when(initializer).decorateMetaDataContexts(any());
-        doReturn(mock(TransactionContexts.class)).when(initializer).decorateTransactionContexts(any(), any());
-        YamlProxyConfiguration yamlConfig = mock(YamlProxyConfiguration.class, RETURNS_DEEP_STUBS);
-        when(yamlConfig.getRuleConfigurations()).thenReturn(Collections.emptyMap());
-        when(yamlConfig.getServerConfiguration()).thenReturn(mock(YamlProxyServerConfiguration.class));
-        when(yamlConfig.getServerConfiguration().getProps()).thenReturn(new Properties());
-        initializer.init(yamlConfig);
+        AbstractBootstrapInitializer initializer = mock(AbstractBootstrapInitializer.class);
+        setDistMetaDataPersistService(initializer);
+        MetaDataContexts metaDataContexts = mockMetaDataContexts();
+        when(initializer.decorateMetaDataContexts(any())).thenReturn(metaDataContexts);
+        initializer.init(new YamlProxyConfiguration(new YamlProxyServerConfiguration(), Collections.emptyMap()));
     }
     
     @SneakyThrows(ReflectiveOperationException.class)
-    private void setFieldValue(final AbstractBootstrapInitializer initializer, final String fieldName, final Object fieldValue) {
-        Field field = AbstractBootstrapInitializer.class.getDeclaredField(fieldName);
+    private void setDistMetaDataPersistService(final AbstractBootstrapInitializer initializer) {
+        Field field = AbstractBootstrapInitializer.class.getDeclaredField("distMetaDataPersistService");
         field.setAccessible(true);
         Field modifiersField = Field.class.getDeclaredField("modifiers");
         modifiersField.setAccessible(true);
         modifiersField.setInt(field, field.getModifiers() & ~Modifier.FINAL);
-        field.set(initializer, fieldValue);
+        field.set(initializer, mockDistMetaDataPersistService());
+    }
+    
+    private DistMetaDataPersistService mockDistMetaDataPersistService() {
+        DistMetaDataPersistService result = mock(DistMetaDataPersistService.class, RETURNS_DEEP_STUBS);
+        when(result.getSchemaMetaDataService().loadAllNames()).thenReturn(Collections.emptyList());
+        return result;
+    }
+    
+    private MetaDataContexts mockMetaDataContexts() {
+        MetaDataContexts result = mock(MetaDataContexts.class);
+        Properties props = new Properties();
+        props.setProperty(ConfigurationPropertyKey.XA_TRANSACTION_MANAGER_TYPE.getKey(), "Atomikos");
+        when(result.getProps()).thenReturn(new ConfigurationProperties(props));
+        return result;
     }
 }
diff --git a/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/test/java/org/apache/shardingsphere/proxy/initializer/impl/GovernanceBootstrapInitializerTest.java b/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/test/java/org/apache/shardingsphere/proxy/initializer/impl/GovernanceBootstrapInitializerTest.java
index 3f5db2a..c25c118 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/test/java/org/apache/shardingsphere/proxy/initializer/impl/GovernanceBootstrapInitializerTest.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/test/java/org/apache/shardingsphere/proxy/initializer/impl/GovernanceBootstrapInitializerTest.java
@@ -26,8 +26,6 @@ import org.apache.shardingsphere.infra.config.properties.ConfigurationProperties
 import org.apache.shardingsphere.infra.context.metadata.MetaDataContexts;
 import org.apache.shardingsphere.infra.context.metadata.impl.StandardMetaDataContexts;
 import org.apache.shardingsphere.proxy.fixture.FixtureRegistryCenterRepository;
-import org.apache.shardingsphere.transaction.context.TransactionContexts;
-import org.apache.shardingsphere.transaction.core.XATransactionManagerType;
 import org.junit.Test;
 
 import java.lang.reflect.Field;
@@ -56,15 +54,6 @@ public final class GovernanceBootstrapInitializerTest extends AbstractBootstrapI
         assertThat(actualMetaDataContexts.getProps(), is(metaDataContexts.getProps()));
     }
     
-    @Test
-    public void assertDecorateTransactionContexts() {
-        TransactionContexts transactionContexts = mock(TransactionContexts.class);
-        TransactionContexts actualTransactionContexts = getInitializer().decorateTransactionContexts(transactionContexts, XATransactionManagerType.ATOMIKOS.getType());
-        assertNotNull(actualTransactionContexts);
-        assertThat(actualTransactionContexts.getEngines(), is(transactionContexts.getEngines()));
-        assertThat(actualTransactionContexts.getDefaultTransactionManagerEngine(), is(transactionContexts.getDefaultTransactionManagerEngine()));
-    }
-    
     @Override
     protected void prepareSpecifiedInitializer() {
         GovernanceBootstrapInitializer initializer = new GovernanceBootstrapInitializer(mock(PreConditionRuleConfiguration.class), mock(GovernanceRule.class, RETURNS_DEEP_STUBS));
diff --git a/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/test/java/org/apache/shardingsphere/proxy/initializer/impl/StandardBootstrapInitializerTest.java b/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/test/java/org/apache/shardingsphere/proxy/initializer/impl/StandardBootstrapInitializerTest.java
index 027dcb9..464aa3d 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/test/java/org/apache/shardingsphere/proxy/initializer/impl/StandardBootstrapInitializerTest.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/test/java/org/apache/shardingsphere/proxy/initializer/impl/StandardBootstrapInitializerTest.java
@@ -22,12 +22,9 @@ import org.apache.shardingsphere.infra.config.persist.repository.DistMetaDataPer
 import org.apache.shardingsphere.infra.context.metadata.MetaDataContexts;
 import org.apache.shardingsphere.infra.spi.ShardingSphereServiceLoader;
 import org.apache.shardingsphere.infra.yaml.config.swapper.YamlRuleConfigurationSwapper;
-import org.apache.shardingsphere.transaction.context.TransactionContexts;
-import org.apache.shardingsphere.transaction.core.XATransactionManagerType;
 import org.junit.Test;
 
 import static org.hamcrest.CoreMatchers.is;
-import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertThat;
 import static org.mockito.Mockito.mock;
 
@@ -39,15 +36,6 @@ public final class StandardBootstrapInitializerTest extends AbstractBootstrapIni
         assertThat(getInitializer().decorateMetaDataContexts(metaDataContexts), is(metaDataContexts));
     }
     
-    @Test
-    public void assertDecorateTransactionContexts() {
-        TransactionContexts transactionContexts = mock(TransactionContexts.class);
-        TransactionContexts actualTransactionContexts = getInitializer().decorateTransactionContexts(transactionContexts, XATransactionManagerType.ATOMIKOS.getType());
-        assertNotNull(actualTransactionContexts);
-        assertThat(actualTransactionContexts.getEngines(), is(transactionContexts.getEngines()));
-        assertThat(actualTransactionContexts.getDefaultTransactionManagerEngine(), is(transactionContexts.getDefaultTransactionManagerEngine()));
-    }
-    
     protected void doEnvironmentPrepare() {
         ShardingSphereServiceLoader.register(YamlRuleConfigurationSwapper.class);
     }