This is an automated email from the ASF dual-hosted git repository.
zhangliang 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 48bd50b5a9b Fix generated JDBC samples dependencies and templates
(#37524)
48bd50b5a9b is described below
commit 48bd50b5a9bb441a358e0def35cd9c85b91dcaec
Author: Liang Zhang <[email protected]>
AuthorDate: Thu Dec 25 23:41:05 2025 +0800
Fix generated JDBC samples dependencies and templates (#37524)
---
.../template/java/config/Configuration.ftl | 4 +-
.../template/java/config/readwrite-splitting.ftl | 2 +-
.../src/main/resources/template/pom.ftl | 80 +++++++++++++++++++++-
.../src/test/java/PomTemplateTest.java | 50 +++++++++-----
4 files changed, 116 insertions(+), 20 deletions(-)
diff --git
a/examples/shardingsphere-jdbc-example-generator/src/main/resources/template/java/config/Configuration.ftl
b/examples/shardingsphere-jdbc-example-generator/src/main/resources/template/java/config/Configuration.ftl
index ae6c24dbee3..fc48b28e6ae 100644
---
a/examples/shardingsphere-jdbc-example-generator/src/main/resources/template/java/config/Configuration.ftl
+++
b/examples/shardingsphere-jdbc-example-generator/src/main/resources/template/java/config/Configuration.ftl
@@ -78,6 +78,8 @@ import java.util.Properties;
public final class Configuration {
+ <#assign repository = repository!'JDBC'>
+
private static final String HOST = "${host}";
private static final int PORT = ${port};
@@ -98,7 +100,7 @@ public final class Configuration {
return new ModeConfiguration("Cluster", new
ClusterPersistRepositoryConfiguration("etcd",
"governance-sharding-data-source", "localhost:2379", new Properties()));
</#if>
<#if mode=="standalone">
- return new ModeConfiguration("Standalone", new
StandalonePersistRepositoryConfiguration("JDBC", new Properties()));
+ return new ModeConfiguration("Standalone", new
StandalonePersistRepositoryConfiguration("${repository}", new Properties()));
</#if>
}
diff --git
a/examples/shardingsphere-jdbc-example-generator/src/main/resources/template/java/config/readwrite-splitting.ftl
b/examples/shardingsphere-jdbc-example-generator/src/main/resources/template/java/config/readwrite-splitting.ftl
index 58b4867ddb2..963d90c5f32 100644
---
a/examples/shardingsphere-jdbc-example-generator/src/main/resources/template/java/config/readwrite-splitting.ftl
+++
b/examples/shardingsphere-jdbc-example-generator/src/main/resources/template/java/config/readwrite-splitting.ftl
@@ -16,7 +16,7 @@
-->
private ReadwriteSplittingRuleConfiguration
createReadwriteSplittingRuleConfiguration() {
- ReadwriteSplittingDataSourceRuleConfiguration dataSourceConfig = new
ReadwriteSplittingDataSourceRuleConfiguration(
+ ReadwriteSplittingDataSourceGroupRuleConfiguration dataSourceConfig =
new ReadwriteSplittingDataSourceGroupRuleConfiguration(
"ds_0", "ds_0", Arrays.asList("ds_1", "ds_2"), null);
return new
ReadwriteSplittingRuleConfiguration(Collections.singleton(dataSourceConfig),
Collections.emptyMap());
}
diff --git
a/examples/shardingsphere-jdbc-example-generator/src/main/resources/template/pom.ftl
b/examples/shardingsphere-jdbc-example-generator/src/main/resources/template/pom.ftl
index c82c9deb134..37480792362 100644
---
a/examples/shardingsphere-jdbc-example-generator/src/main/resources/template/pom.ftl
+++
b/examples/shardingsphere-jdbc-example-generator/src/main/resources/template/pom.ftl
@@ -24,6 +24,7 @@
<artifactId>${feature?replace(',',
'-')}--${framework}--${mode}--${transaction}</artifactId>
<version>${shardingsphereVersion}</version>
<name>${r'${project.artifactId}'}</name>
+ <#assign repository = repository!'JDBC'>
<dependencies>
<dependency>
@@ -31,6 +32,76 @@
<artifactId>shardingsphere-jdbc</artifactId>
<version>${r'${project.version}'}</version>
</dependency>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+
<artifactId>shardingsphere-infra-data-source-pool-hikari</artifactId>
+ <version>${r'${project.version}'}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+ <artifactId>shardingsphere-database-connector-mysql</artifactId>
+ <version>${r'${project.version}'}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+ <artifactId>shardingsphere-authority-simple</artifactId>
+ <version>${r'${project.version}'}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+ <artifactId>shardingsphere-parser-sql-engine-mysql</artifactId>
+ <version>${r'${project.version}'}</version>
+ </dependency>
+ <#if feature?contains("sharding")>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+ <artifactId>shardingsphere-sharding-core</artifactId>
+ <version>${r'${project.version}'}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+ <artifactId>shardingsphere-broadcast-core</artifactId>
+ <version>${r'${project.version}'}</version>
+ </dependency>
+ </#if>
+ <#if feature?contains("readwrite-splitting")>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+ <artifactId>shardingsphere-readwrite-splitting-core</artifactId>
+ <version>${r'${project.version}'}</version>
+ </dependency>
+ </#if>
+ <#if feature?contains("encrypt")>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+ <artifactId>shardingsphere-encrypt-core</artifactId>
+ <version>${r'${project.version}'}</version>
+ </dependency>
+ </#if>
+ <#if feature?contains("shadow")>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+ <artifactId>shardingsphere-shadow-core</artifactId>
+ <version>${r'${project.version}'}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+ <artifactId>shardingsphere-sql-parser-api</artifactId>
+ <version>${r'${project.version}'}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+ <artifactId>shardingsphere-parser-sql-engine-core</artifactId>
+ <version>${r'${project.version}'}</version>
+ </dependency>
+ </#if>
+ <#if feature?contains("mask")>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+ <artifactId>shardingsphere-mask-core</artifactId>
+ <version>${r'${project.version}'}</version>
+ </dependency>
+ </#if>
<#if mode=="cluster-zookeeper">
<dependency>
<groupId>org.apache.shardingsphere</groupId>
@@ -38,7 +109,7 @@
<version>${r'${project.version}'}</version>
</dependency>
</#if>
- <#if mode?contains("standalone") && (repository?? && repository == "JDBC")>
+ <#if mode?contains("standalone") && repository == "JDBC">
<dependency>
<groupId>org.apache.shardingsphere</groupId>
<artifactId>shardingsphere-standalone-mode-repository-jdbc</artifactId>
@@ -52,6 +123,13 @@
<version>${r'${project.version}'}</version>
</dependency>
</#if>
+ <#if transaction=="xa-atomikos">
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+ <artifactId>shardingsphere-transaction-xa-atomikos</artifactId>
+ <version>${r'${project.version}'}</version>
+ </dependency>
+ </#if>
<#if transaction=="xa-narayana">
<dependency>
<groupId>org.apache.shardingsphere</groupId>
diff --git
a/examples/shardingsphere-jdbc-example-generator/src/test/java/PomTemplateTest.java
b/examples/shardingsphere-jdbc-example-generator/src/test/java/PomTemplateTest.java
index 98ec759e884..6f61a13fc47 100644
---
a/examples/shardingsphere-jdbc-example-generator/src/test/java/PomTemplateTest.java
+++
b/examples/shardingsphere-jdbc-example-generator/src/test/java/PomTemplateTest.java
@@ -43,33 +43,49 @@ public final class PomTemplateTest {
templateConfig.setClassLoaderForTemplateLoading(getClass().getClassLoader(),
"/template");
}
+ @Test
+ public void assertStandaloneRepositoryDefaultsToJdbcDependency() throws
IOException, TemplateException {
+ String content = renderPomTemplate(createBaseDataModel());
+ assertThat(content,
containsString("shardingsphere-standalone-mode-repository-jdbc"));
+ }
+
@Test
public void assertStandaloneJdbcRepository() throws IOException,
TemplateException {
- Map<String, Object> dataModel = new HashMap<>(6, 1F);
- dataModel.put("mode", "standalone");
+ Map<String, Object> dataModel = createBaseDataModel();
dataModel.put("repository", "JDBC");
- dataModel.put("feature", "sharding");
- dataModel.put("framework", "spring-boot-starter-jdbc");
- dataModel.put("transaction", "local");
- dataModel.put("shardingsphereVersion", "5.5.3-SNAPSHOT");
- Template template = templateConfig.getTemplate("pom.ftl");
- StringWriter writer = new StringWriter();
- template.process(dataModel, writer);
- assertThat(writer.toString(),
containsString("shardingsphere-standalone-mode-repository-jdbc"));
+ String content = renderPomTemplate(dataModel);
+ assertThat(content,
containsString("shardingsphere-standalone-mode-repository-jdbc"));
}
@Test
public void assertNoStandaloneJdbcRepository() throws IOException,
TemplateException {
- Map<String, Object> dataModel = new HashMap<>(6, 1F);
- dataModel.put("mode", "standalone");
+ Map<String, Object> dataModel = createBaseDataModel();
dataModel.put("repository", "File");
- dataModel.put("feature", "sharding");
- dataModel.put("framework", "spring-boot-starter-jdbc");
- dataModel.put("transaction", "local");
- dataModel.put("shardingsphereVersion", "5.5.3-SNAPSHOT");
+ String content = renderPomTemplate(dataModel);
+ assertThat(content,
not(containsString("shardingsphere-standalone-mode-repository-jdbc")));
+ }
+
+ @Test
+ public void assertShardingDependencies() throws IOException,
TemplateException {
+ String content = renderPomTemplate(createBaseDataModel());
+ assertThat(content, containsString("shardingsphere-sharding-core"));
+ assertThat(content, containsString("shardingsphere-broadcast-core"));
+ }
+
+ private Map<String, Object> createBaseDataModel() {
+ Map<String, Object> result = new HashMap<>(6, 1F);
+ result.put("mode", "standalone");
+ result.put("feature", "sharding");
+ result.put("framework", "spring-boot-starter-jdbc");
+ result.put("transaction", "local");
+ result.put("shardingsphereVersion", "5.5.3-SNAPSHOT");
+ return result;
+ }
+
+ private String renderPomTemplate(final Map<String, Object> dataModel)
throws IOException, TemplateException {
Template template = templateConfig.getTemplate("pom.ftl");
StringWriter writer = new StringWriter();
template.process(dataModel, writer);
- assertThat(writer.toString(),
not(containsString("shardingsphere-standalone-mode-repository-jdbc")));
+ return writer.toString();
}
}