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 2022/06/20 05:58:29 UTC
[shardingsphere] branch master updated: Refactor SQLParserRuleConfiguration to keep only one constructor (#18440)
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 5843faf9c68 Refactor SQLParserRuleConfiguration to keep only one constructor (#18440)
5843faf9c68 is described below
commit 5843faf9c68ce786af558f200d5685c407dba7a1
Author: Liang Zhang <zh...@apache.org>
AuthorDate: Mon Jun 20 13:58:23 2022 +0800
Refactor SQLParserRuleConfiguration to keep only one constructor (#18440)
* Refactor SQLParserRuleConfiguration
* Refactor SQLParserRuleConfiguration
---
.../parser/config/SQLParserRuleConfiguration.java | 16 +++++-------
.../parser/SQLParserRuleBeanDefinitionParser.java | 29 +++-------------------
.../namespace/SQLParserSpringNamespaceTest.java | 8 +++---
.../spring/sql-parser-application-context.xml | 6 ++---
4 files changed, 15 insertions(+), 44 deletions(-)
diff --git a/shardingsphere-kernel/shardingsphere-parser/shardingsphere-parser-api/src/main/java/org/apache/shardingsphere/parser/config/SQLParserRuleConfiguration.java b/shardingsphere-kernel/shardingsphere-parser/shardingsphere-parser-api/src/main/java/org/apache/shardingsphere/parser/config/SQLParserRuleConfiguration.java
index bd2aac53b0b..30beae62948 100644
--- a/shardingsphere-kernel/shardingsphere-parser/shardingsphere-parser-api/src/main/java/org/apache/shardingsphere/parser/config/SQLParserRuleConfiguration.java
+++ b/shardingsphere-kernel/shardingsphere-parser/shardingsphere-parser-api/src/main/java/org/apache/shardingsphere/parser/config/SQLParserRuleConfiguration.java
@@ -17,25 +17,21 @@
package org.apache.shardingsphere.parser.config;
-import lombok.AllArgsConstructor;
import lombok.Getter;
-import lombok.NoArgsConstructor;
-import lombok.Setter;
+import lombok.RequiredArgsConstructor;
import org.apache.shardingsphere.infra.config.scope.GlobalRuleConfiguration;
import org.apache.shardingsphere.sql.parser.api.CacheOption;
/**
* SQL parser rule configuration.
*/
+@RequiredArgsConstructor
@Getter
-@Setter
-@AllArgsConstructor
-@NoArgsConstructor
-public class SQLParserRuleConfiguration implements GlobalRuleConfiguration {
+public final class SQLParserRuleConfiguration implements GlobalRuleConfiguration {
- private boolean sqlCommentParseEnabled;
+ private final boolean sqlCommentParseEnabled;
- private CacheOption parseTreeCache;
+ private final CacheOption parseTreeCache;
- private CacheOption sqlStatementCache;
+ private final CacheOption sqlStatementCache;
}
diff --git a/shardingsphere-kernel/shardingsphere-parser/shardingsphere-parser-spring/shardingsphere-parser-spring-namespace/src/main/java/org/apache/shardingsphere/parser/spring/namespace/parser/SQLParserRuleBeanDefinitionParser.java b/shardingsphere-kernel/shardingsphere-parser/shardingsphere-parser-spring/shardingsphere-parser-spring-namespace/src/main/java/org/apache/shardingsphere/parser/spring/namespace/parser/SQLParserRuleBeanDefinitionParser.java
index 9f0f7d8a977..c162e6b8d70 100644
--- a/shardingsphere-kernel/shardingsphere-parser/shardingsphere-parser-spring/shardingsphere-parser-spring-namespace/src/main/java/org/apache/shardingsphere/parser/spring/namespace/parser/SQLParserRuleBeanDefinitionParser.java
+++ b/shardingsphere-kernel/shardingsphere-parser/shardingsphere-parser-spring/shardingsphere-parser-spring-namespace/src/main/java/org/apache/shardingsphere/parser/spring/namespace/parser/SQLParserRuleBeanDefinitionParser.java
@@ -17,7 +17,6 @@
package org.apache.shardingsphere.parser.spring.namespace.parser;
-import com.google.common.base.Strings;
import org.apache.shardingsphere.parser.config.SQLParserRuleConfiguration;
import org.apache.shardingsphere.parser.spring.namespace.tag.SQLParserRuleBeanDefinitionTag;
import org.springframework.beans.factory.support.AbstractBeanDefinition;
@@ -26,8 +25,6 @@ import org.springframework.beans.factory.xml.AbstractBeanDefinitionParser;
import org.springframework.beans.factory.xml.ParserContext;
import org.w3c.dom.Element;
-import java.util.Optional;
-
/**
* SQL parser bean parser for spring namespace.
*/
@@ -36,29 +33,9 @@ public final class SQLParserRuleBeanDefinitionParser extends AbstractBeanDefinit
@Override
protected AbstractBeanDefinition parseInternal(final Element element, final ParserContext parserContext) {
BeanDefinitionBuilder factory = BeanDefinitionBuilder.rootBeanDefinition(SQLParserRuleConfiguration.class);
- factory.addPropertyValue("sqlCommentParseEnabled", parseSQLCommentParserEnableConfiguration(element));
- setSQLStatementCacheOption(element, factory);
- setParseTreeCacheOption(element, factory);
+ factory.addConstructorArgValue(Boolean.parseBoolean(element.getAttribute(SQLParserRuleBeanDefinitionTag.SQL_COMMENT_PARSER_ENABLE)));
+ factory.addConstructorArgReference(element.getAttribute(SQLParserRuleBeanDefinitionTag.PARSE_TREE_CACHE_REF));
+ factory.addConstructorArgReference(element.getAttribute(SQLParserRuleBeanDefinitionTag.SQL_STATEMENT_CACHE_REF));
return factory.getBeanDefinition();
}
-
- private void setSQLStatementCacheOption(final Element element, final BeanDefinitionBuilder factory) {
- Optional<String> cacheRef = parseCacheRef(element, SQLParserRuleBeanDefinitionTag.SQL_STATEMENT_CACHE_REF);
- cacheRef.ifPresent(optional -> factory.addPropertyReference("sqlStatementCache", optional));
- }
-
- private void setParseTreeCacheOption(final Element element, final BeanDefinitionBuilder factory) {
- Optional<String> cacheRef = parseCacheRef(element, SQLParserRuleBeanDefinitionTag.PARSE_TREE_CACHE_REF);
- cacheRef.ifPresent(optional -> factory.addPropertyReference("parseTreeCache", optional));
- }
-
- private boolean parseSQLCommentParserEnableConfiguration(final Element element) {
- String sqlCommentParserEnable = element.getAttribute(SQLParserRuleBeanDefinitionTag.SQL_COMMENT_PARSER_ENABLE);
- return Boolean.parseBoolean(sqlCommentParserEnable);
- }
-
- private Optional<String> parseCacheRef(final Element element, final String tagName) {
- String result = element.getAttribute(tagName);
- return Strings.isNullOrEmpty(result) ? Optional.empty() : Optional.of(result);
- }
}
diff --git a/shardingsphere-kernel/shardingsphere-parser/shardingsphere-parser-spring/shardingsphere-parser-spring-namespace/src/test/java/org/apache/shardingsphere/parser/spring/namespace/SQLParserSpringNamespaceTest.java b/shardingsphere-kernel/shardingsphere-parser/shardingsphere-parser-spring/shardingsphere-parser-spring-namespace/src/test/java/org/apache/shardingsphere/parser/spring/namespace/SQLParserSpringNamespaceTest.java
index 12e6760db95..762ef10f22a 100644
--- a/shardingsphere-kernel/shardingsphere-parser/shardingsphere-parser-spring/shardingsphere-parser-spring-namespace/src/test/java/org/apache/shardingsphere/parser/spring/namespace/SQLParserSpringNamespaceTest.java
+++ b/shardingsphere-kernel/shardingsphere-parser/shardingsphere-parser-spring/shardingsphere-parser-spring-namespace/src/test/java/org/apache/shardingsphere/parser/spring/namespace/SQLParserSpringNamespaceTest.java
@@ -33,13 +33,13 @@ import static org.junit.Assert.assertTrue;
public final class SQLParserSpringNamespaceTest extends AbstractJUnit4SpringContextTests {
@Resource
- private SQLParserRuleConfiguration sqlParserRuleConfiguration;
+ private SQLParserRuleConfiguration sqlParserRuleConfig;
@Test
public void assertSQLParserRule() {
- assertTrue(sqlParserRuleConfiguration.isSqlCommentParseEnabled());
- assertCacheOption(sqlParserRuleConfiguration.getSqlStatementCache());
- assertCacheOption(sqlParserRuleConfiguration.getParseTreeCache());
+ assertTrue(sqlParserRuleConfig.isSqlCommentParseEnabled());
+ assertCacheOption(sqlParserRuleConfig.getSqlStatementCache());
+ assertCacheOption(sqlParserRuleConfig.getParseTreeCache());
}
private void assertCacheOption(final CacheOption cacheOption) {
diff --git a/shardingsphere-kernel/shardingsphere-parser/shardingsphere-parser-spring/shardingsphere-parser-spring-namespace/src/test/resources/META-INF/spring/sql-parser-application-context.xml b/shardingsphere-kernel/shardingsphere-parser/shardingsphere-parser-spring/shardingsphere-parser-spring-namespace/src/test/resources/META-INF/spring/sql-parser-application-context.xml
index fb307b190db..d2a06a86ab5 100644
--- a/shardingsphere-kernel/shardingsphere-parser/shardingsphere-parser-spring/shardingsphere-parser-spring-namespace/src/test/resources/META-INF/spring/sql-parser-application-context.xml
+++ b/shardingsphere-kernel/shardingsphere-parser/shardingsphere-parser-spring/shardingsphere-parser-spring-namespace/src/test/resources/META-INF/spring/sql-parser-application-context.xml
@@ -24,10 +24,8 @@
http://shardingsphere.apache.org/schema/shardingsphere/sql-parser
http://shardingsphere.apache.org/schema/shardingsphere/sql-parser/sql-parser.xsd
">
-
<sql-parser:rule id="sqlParseRule" sql-comment-parse-enable="true" parse-tree-cache-ref="parseTreeCache" sql-statement-cache-ref="sqlStatementCache" />
- <sql-parser:cache-option id="sqlStatementCache" initial-capacity="1024" maximum-size="1024"/>
-
- <sql-parser:cache-option id="parseTreeCache" initial-capacity="1024" maximum-size="1024"/>
+ <sql-parser:cache-option id="sqlStatementCache" initial-capacity="1024" maximum-size="1024" />
+ <sql-parser:cache-option id="parseTreeCache" initial-capacity="1024" maximum-size="1024" />
</beans>