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

Reply via email to