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 bbf4a3d [DistSQL] Add set and show syntax for agent plugins variable
(#12413)
bbf4a3d is described below
commit bbf4a3dfe91d43659c5026f0434c8b8499abc3a4
Author: Raigor <[email protected]>
AuthorDate: Tue Sep 14 17:24:07 2021 +0800
[DistSQL] Add set and show syntax for agent plugins variable (#12413)
* Add variable AGENT_PLUGINS_ENABLED for DistSQL.
* Update test cases.
* Add system property util.
---
.../ral/common/SetDistSQLBackendHandler.java | 18 +++++++---
.../ral/common/ShowDistSQLBackendHandler.java | 12 ++++---
.../distsql/ral/common/enums/VariableEnum.java | 6 +++-
.../SystemPropertyUtil.java} | 36 +++++++++++--------
.../TextProtocolBackendHandlerFactoryTest.java | 4 +--
.../distsql/ral/SetVariableBackendHandlerTest.java | 42 ++++++++++++++++++----
.../ral/ShowVariableBackendHandlerTest.java | 13 +++++++
.../backend/util/SystemPropertyUtilTest.java} | 32 ++++++++---------
8 files changed, 113 insertions(+), 50 deletions(-)
diff --git
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/SetDistSQLBackendHandler.java
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/SetDistSQLBackendHandler.java
index 8837d23..d48c24a 100644
---
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/SetDistSQLBackendHandler.java
+++
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/SetDistSQLBackendHandler.java
@@ -20,6 +20,7 @@ package
org.apache.shardingsphere.proxy.backend.text.distsql.ral.common;
import com.mchange.v1.db.sql.UnsupportedTypeException;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
+import org.apache.commons.lang3.BooleanUtils;
import
org.apache.shardingsphere.distsql.parser.statement.ral.common.SetDistSQLStatement;
import
org.apache.shardingsphere.distsql.parser.statement.ral.common.variable.SetVariableStatement;
import
org.apache.shardingsphere.proxy.backend.communication.jdbc.connection.BackendConnection;
@@ -28,6 +29,7 @@ import
org.apache.shardingsphere.proxy.backend.response.header.update.UpdateResp
import org.apache.shardingsphere.proxy.backend.text.TextProtocolBackendHandler;
import
org.apache.shardingsphere.proxy.backend.text.distsql.ral.common.enums.VariableEnum;
import
org.apache.shardingsphere.proxy.backend.text.distsql.ral.common.exception.UnsupportedVariableException;
+import org.apache.shardingsphere.proxy.backend.util.SystemPropertyUtil;
import org.apache.shardingsphere.transaction.core.TransactionType;
import java.sql.SQLException;
@@ -49,11 +51,19 @@ public final class SetDistSQLBackendHandler implements
TextProtocolBackendHandle
throw new
UnsupportedTypeException(sqlStatement.getClass().getCanonicalName());
}
SetVariableStatement setVariableStatement = (SetVariableStatement)
sqlStatement;
- if (VariableEnum.TRANSACTION_TYPE ==
VariableEnum.getValueOf(setVariableStatement.getName())) {
-
backendConnection.getTransactionStatus().setTransactionType(getTransactionType(setVariableStatement.getValue()));
- return new UpdateResponseHeader(sqlStatement);
+ VariableEnum variable =
VariableEnum.getValueOf(setVariableStatement.getName());
+ switch (variable) {
+ case AGENT_PLUGINS_ENABLED:
+ Boolean agentPluginsEnabled =
BooleanUtils.toBooleanObject(setVariableStatement.getValue());
+ SystemPropertyUtil.setSystemProperty(variable.name(), null ==
agentPluginsEnabled ? Boolean.FALSE.toString() :
agentPluginsEnabled.toString());
+ break;
+ case TRANSACTION_TYPE:
+
backendConnection.getTransactionStatus().setTransactionType(getTransactionType(setVariableStatement.getValue()));
+ break;
+ default:
+ throw new
UnsupportedVariableException(setVariableStatement.getName());
}
- throw new UnsupportedVariableException(setVariableStatement.getName());
+ return new UpdateResponseHeader(sqlStatement);
}
private TransactionType getTransactionType(final String
transactionTypeName) throws UnsupportedVariableException {
diff --git
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/ShowDistSQLBackendHandler.java
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/ShowDistSQLBackendHandler.java
index f521fb4..48220ae 100644
---
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/ShowDistSQLBackendHandler.java
+++
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/ShowDistSQLBackendHandler.java
@@ -29,6 +29,7 @@ import
org.apache.shardingsphere.proxy.backend.response.header.query.impl.QueryH
import org.apache.shardingsphere.proxy.backend.text.TextProtocolBackendHandler;
import
org.apache.shardingsphere.proxy.backend.text.distsql.ral.common.enums.VariableEnum;
import
org.apache.shardingsphere.proxy.backend.text.distsql.ral.common.exception.UnsupportedVariableException;
+import org.apache.shardingsphere.proxy.backend.util.SystemPropertyUtil;
import
org.apache.shardingsphere.sharding.merge.dal.common.MultipleLocalDataMergedResult;
import java.sql.SQLException;
@@ -53,11 +54,14 @@ public final class ShowDistSQLBackendHandler implements
TextProtocolBackendHandl
@Override
public ResponseHeader execute() {
ShowVariableStatement showVariableStatement = (ShowVariableStatement)
sqlStatement;
- switch (VariableEnum.getValueOf(showVariableStatement.getName())) {
- case TRANSACTION_TYPE:
- return
createResponsePackets(VariableEnum.TRANSACTION_TYPE.name(),
backendConnection.getTransactionStatus().getTransactionType().name());
+ VariableEnum variable =
VariableEnum.getValueOf(showVariableStatement.getName());
+ switch (variable) {
+ case AGENT_PLUGINS_ENABLED:
+ return createResponsePackets(variable.name(),
SystemPropertyUtil.getSystemProperty(variable.name(),
Boolean.FALSE.toString()));
case CACHED_CONNECTIONS:
- return
createResponsePackets(VariableEnum.CACHED_CONNECTIONS.name(),
backendConnection.getConnectionSize());
+ return createResponsePackets(variable.name(),
backendConnection.getConnectionSize());
+ case TRANSACTION_TYPE:
+ return createResponsePackets(variable.name(),
backendConnection.getTransactionStatus().getTransactionType().name());
default:
throw new
UnsupportedVariableException(showVariableStatement.getName());
}
diff --git
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/enums/VariableEnum.java
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/enums/VariableEnum.java
index a5c68d6..a23cbb7 100644
---
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/enums/VariableEnum.java
+++
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/enums/VariableEnum.java
@@ -24,7 +24,11 @@ import
org.apache.shardingsphere.proxy.backend.text.distsql.ral.common.exception
*/
public enum VariableEnum {
- TRANSACTION_TYPE, CACHED_CONNECTIONS;
+ AGENT_PLUGINS_ENABLED,
+
+ CACHED_CONNECTIONS,
+
+ TRANSACTION_TYPE;
/**
* Returns the variable constant of the specified variable name.
diff --git
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/enums/VariableEnum.java
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/util/SystemPropertyUtil.java
similarity index 52%
copy from
shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/enums/VariableEnum.java
copy to
shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/util/SystemPropertyUtil.java
index a5c68d6..7c9f899 100644
---
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/enums/VariableEnum.java
+++
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/util/SystemPropertyUtil.java
@@ -15,27 +15,35 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.proxy.backend.text.distsql.ral.common.enums;
+package org.apache.shardingsphere.proxy.backend.util;
-import
org.apache.shardingsphere.proxy.backend.text.distsql.ral.common.exception.UnsupportedVariableException;
+import lombok.AccessLevel;
+import lombok.NoArgsConstructor;
/**
- * Variable enum.
+ * System property utility class.
*/
-public enum VariableEnum {
+@NoArgsConstructor(access = AccessLevel.PRIVATE)
+public final class SystemPropertyUtil {
- TRANSACTION_TYPE, CACHED_CONNECTIONS;
+ /**
+ * Set system property.
+ *
+ * @param key property key
+ * @param value property value
+ */
+ public static void setSystemProperty(final String key, final String value)
{
+ System.setProperty(key, value);
+ }
/**
- * Returns the variable constant of the specified variable name.
- * @param variableName variable name
- * @return variable constant
+ * Get system property.
+ *
+ * @param key property key
+ * @param defaultValue a default value
+ * @return property value
*/
- public static VariableEnum getValueOf(final String variableName) {
- try {
- return valueOf(variableName.toUpperCase());
- } catch (IllegalArgumentException ex) {
- throw new UnsupportedVariableException(variableName);
- }
+ public static String getSystemProperty(final String key, final String
defaultValue) {
+ return System.getProperty(key, defaultValue);
}
}
diff --git
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/TextProtocolBackendHandlerFactoryTest.java
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/TextProtocolBackendHandlerFactoryTest.java
similarity index 98%
rename from
shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/TextProtocolBackendHandlerFactoryTest.java
rename to
shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/TextProtocolBackendHandlerFactoryTest.java
index 82c9d8e..91b24b4 100644
---
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/TextProtocolBackendHandlerFactoryTest.java
+++
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/TextProtocolBackendHandlerFactoryTest.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.proxy.backend;
+package org.apache.shardingsphere.proxy.backend.text;
import org.apache.shardingsphere.mode.manager.ContextManager;
import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
@@ -25,8 +25,6 @@ import
org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
import
org.apache.shardingsphere.infra.metadata.rule.ShardingSphereRuleMetaData;
import
org.apache.shardingsphere.proxy.backend.communication.jdbc.connection.BackendConnection;
import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
-import org.apache.shardingsphere.proxy.backend.text.TextProtocolBackendHandler;
-import
org.apache.shardingsphere.proxy.backend.text.TextProtocolBackendHandlerFactory;
import
org.apache.shardingsphere.proxy.backend.text.admin.DatabaseAdminQueryBackendHandler;
import
org.apache.shardingsphere.proxy.backend.text.admin.DatabaseAdminUpdateBackendHandler;
import
org.apache.shardingsphere.proxy.backend.text.data.impl.BroadcastDatabaseBackendHandler;
diff --git
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/SetVariableBackendHandlerTest.java
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/SetVariableBackendHandlerTest.java
index 47a67ed..42ad4e0 100644
---
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/SetVariableBackendHandlerTest.java
+++
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/SetVariableBackendHandlerTest.java
@@ -34,7 +34,9 @@ import
org.apache.shardingsphere.proxy.backend.context.ProxyContext;
import org.apache.shardingsphere.proxy.backend.response.header.ResponseHeader;
import
org.apache.shardingsphere.proxy.backend.response.header.update.UpdateResponseHeader;
import
org.apache.shardingsphere.proxy.backend.text.distsql.ral.common.SetDistSQLBackendHandler;
+import
org.apache.shardingsphere.proxy.backend.text.distsql.ral.common.enums.VariableEnum;
import
org.apache.shardingsphere.proxy.backend.text.distsql.ral.common.exception.UnsupportedVariableException;
+import org.apache.shardingsphere.proxy.backend.util.SystemPropertyUtil;
import org.apache.shardingsphere.transaction.core.TransactionType;
import org.junit.Before;
import org.junit.Test;
@@ -86,8 +88,8 @@ public final class SetVariableBackendHandlerTest {
@Test
public void assertSwitchTransactionTypeXA() throws SQLException {
backendConnection.setCurrentSchema(String.format(SCHEMA_PATTERN, 0));
- SetDistSQLBackendHandler shardingCTLBackendHandler = new
SetDistSQLBackendHandler(new SetVariableStatement("transaction_type", "XA"),
backendConnection);
- ResponseHeader actual = shardingCTLBackendHandler.execute();
+ SetDistSQLBackendHandler setDistSQLBackendHandler = new
SetDistSQLBackendHandler(new SetVariableStatement("transaction_type", "XA"),
backendConnection);
+ ResponseHeader actual = setDistSQLBackendHandler.execute();
assertThat(actual, instanceOf(UpdateResponseHeader.class));
assertThat(backendConnection.getTransactionStatus().getTransactionType(),
is(TransactionType.XA));
}
@@ -95,8 +97,8 @@ public final class SetVariableBackendHandlerTest {
@Test
public void assertSwitchTransactionTypeBASE() throws SQLException {
backendConnection.setCurrentSchema(String.format(SCHEMA_PATTERN, 0));
- SetDistSQLBackendHandler shardingCTLBackendHandler = new
SetDistSQLBackendHandler(new SetVariableStatement("transaction_type", "BASE"),
backendConnection);
- ResponseHeader actual = shardingCTLBackendHandler.execute();
+ SetDistSQLBackendHandler setDistSQLBackendHandler = new
SetDistSQLBackendHandler(new SetVariableStatement("transaction_type", "BASE"),
backendConnection);
+ ResponseHeader actual = setDistSQLBackendHandler.execute();
assertThat(actual, instanceOf(UpdateResponseHeader.class));
assertThat(backendConnection.getTransactionStatus().getTransactionType(),
is(TransactionType.BASE));
}
@@ -104,8 +106,8 @@ public final class SetVariableBackendHandlerTest {
@Test
public void assertSwitchTransactionTypeLOCAL() throws SQLException {
backendConnection.setCurrentSchema(String.format(SCHEMA_PATTERN, 0));
- SetDistSQLBackendHandler shardingCTLBackendHandler = new
SetDistSQLBackendHandler(new SetVariableStatement("transaction_type", "LOCAL"),
backendConnection);
- ResponseHeader actual = shardingCTLBackendHandler.execute();
+ SetDistSQLBackendHandler setDistSQLBackendHandler = new
SetDistSQLBackendHandler(new SetVariableStatement("transaction_type", "LOCAL"),
backendConnection);
+ ResponseHeader actual = setDistSQLBackendHandler.execute();
assertThat(actual, instanceOf(UpdateResponseHeader.class));
assertThat(backendConnection.getTransactionStatus().getTransactionType(),
is(TransactionType.LOCAL));
}
@@ -120,4 +122,32 @@ public final class SetVariableBackendHandlerTest {
public void assertNotSupportedVariable() throws SQLException {
new SetDistSQLBackendHandler(new SetVariableStatement("@@session",
"XXX"), backendConnection).execute();
}
+
+ @Test
+ public void assertSetAgentPluginsEnabledTrue() throws SQLException {
+ backendConnection.setCurrentSchema(String.format(SCHEMA_PATTERN, 0));
+ SetDistSQLBackendHandler setDistSQLBackendHandler = new
SetDistSQLBackendHandler(new
SetVariableStatement(VariableEnum.AGENT_PLUGINS_ENABLED.name(),
Boolean.TRUE.toString()),
+ backendConnection);
+ ResponseHeader actual = setDistSQLBackendHandler.execute();
+ assertThat(actual, instanceOf(UpdateResponseHeader.class));
+
assertThat(SystemPropertyUtil.getSystemProperty(VariableEnum.AGENT_PLUGINS_ENABLED.name(),
Boolean.FALSE.toString()), is(Boolean.TRUE.toString()));
+ }
+
+ @Test
+ public void assertSetAgentPluginsEnabledFalse() throws SQLException {
+ backendConnection.setCurrentSchema(String.format(SCHEMA_PATTERN, 0));
+ SetDistSQLBackendHandler setDistSQLBackendHandler = new
SetDistSQLBackendHandler(new
SetVariableStatement(VariableEnum.AGENT_PLUGINS_ENABLED.name(), "FALSE"),
backendConnection);
+ ResponseHeader actual = setDistSQLBackendHandler.execute();
+ assertThat(actual, instanceOf(UpdateResponseHeader.class));
+
assertThat(SystemPropertyUtil.getSystemProperty(VariableEnum.AGENT_PLUGINS_ENABLED.name(),
Boolean.FALSE.toString()), is(Boolean.FALSE.toString()));
+ }
+
+ @Test
+ public void assertSetAgentPluginsEnabledFalseWithUnknownValue() throws
SQLException {
+ backendConnection.setCurrentSchema(String.format(SCHEMA_PATTERN, 0));
+ SetDistSQLBackendHandler setDistSQLBackendHandler = new
SetDistSQLBackendHandler(new
SetVariableStatement(VariableEnum.AGENT_PLUGINS_ENABLED.name(), "xxx"),
backendConnection);
+ ResponseHeader actual = setDistSQLBackendHandler.execute();
+ assertThat(actual, instanceOf(UpdateResponseHeader.class));
+
assertThat(SystemPropertyUtil.getSystemProperty(VariableEnum.AGENT_PLUGINS_ENABLED.name(),
Boolean.FALSE.toString()), is(Boolean.FALSE.toString()));
+ }
}
diff --git
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/ShowVariableBackendHandlerTest.java
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/ShowVariableBackendHandlerTest.java
index aa0aaff..d3cce87 100644
---
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/ShowVariableBackendHandlerTest.java
+++
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/ShowVariableBackendHandlerTest.java
@@ -22,6 +22,7 @@ import
org.apache.shardingsphere.proxy.backend.communication.jdbc.connection.Bac
import org.apache.shardingsphere.proxy.backend.response.header.ResponseHeader;
import
org.apache.shardingsphere.proxy.backend.response.header.query.QueryResponseHeader;
import
org.apache.shardingsphere.proxy.backend.text.distsql.ral.common.ShowDistSQLBackendHandler;
+import
org.apache.shardingsphere.proxy.backend.text.distsql.ral.common.enums.VariableEnum;
import
org.apache.shardingsphere.proxy.backend.text.distsql.ral.common.exception.UnsupportedVariableException;
import org.apache.shardingsphere.transaction.core.TransactionType;
import org.junit.Test;
@@ -66,4 +67,16 @@ public final class ShowVariableBackendHandlerTest {
backendConnection.setCurrentSchema("schema");
new ShowDistSQLBackendHandler(new
ShowVariableStatement("cached_connectionss"), backendConnection).execute();
}
+
+ @Test
+ public void assertShowAgentPluginsEnabled() throws SQLException {
+ backendConnection.setCurrentSchema("schema");
+ ShowDistSQLBackendHandler backendHandler = new
ShowDistSQLBackendHandler(new
ShowVariableStatement(VariableEnum.AGENT_PLUGINS_ENABLED.name()),
backendConnection);
+ ResponseHeader actual = backendHandler.execute();
+ assertThat(actual, instanceOf(QueryResponseHeader.class));
+ assertThat(((QueryResponseHeader) actual).getQueryHeaders().size(),
is(1));
+ backendHandler.next();
+ Collection<Object> rowData = backendHandler.getRowData();
+ assertThat(rowData.iterator().next(), is(Boolean.FALSE.toString()));
+ }
}
diff --git
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/enums/VariableEnum.java
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/util/SystemPropertyUtilTest.java
similarity index 53%
copy from
shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/enums/VariableEnum.java
copy to
shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/util/SystemPropertyUtilTest.java
index a5c68d6..ead9baa 100644
---
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/enums/VariableEnum.java
+++
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/util/SystemPropertyUtilTest.java
@@ -15,27 +15,23 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.proxy.backend.text.distsql.ral.common.enums;
+package org.apache.shardingsphere.proxy.backend.util;
-import
org.apache.shardingsphere.proxy.backend.text.distsql.ral.common.exception.UnsupportedVariableException;
+import org.junit.Test;
-/**
- * Variable enum.
- */
-public enum VariableEnum {
+import static org.hamcrest.CoreMatchers.is;
+import static org.junit.Assert.assertThat;
+
+public final class SystemPropertyUtilTest {
- TRANSACTION_TYPE, CACHED_CONNECTIONS;
+ @Test
+ public void assertGetDefaultValue() {
+ assertThat(SystemPropertyUtil.getSystemProperty("key0", "value0"),
is("value0"));
+ }
- /**
- * Returns the variable constant of the specified variable name.
- * @param variableName variable name
- * @return variable constant
- */
- public static VariableEnum getValueOf(final String variableName) {
- try {
- return valueOf(variableName.toUpperCase());
- } catch (IllegalArgumentException ex) {
- throw new UnsupportedVariableException(variableName);
- }
+ @Test
+ public void assertGetSystemPropertyAfterSet() {
+ SystemPropertyUtil.setSystemProperty("key1", "value1");
+ assertThat(SystemPropertyUtil.getSystemProperty("key1", "value0"),
is("value1"));
}
}