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);
}