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/08/21 03:42:04 UTC

[shardingsphere] branch master updated: Rename FreemarkerManager to PostgreSQLPipelineFreemarkerManager (#20329)

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 9eadd026517 Rename FreemarkerManager to PostgreSQLPipelineFreemarkerManager (#20329)
9eadd026517 is described below

commit 9eadd026517dc3a5acdefb87884046547c7ac6ff
Author: Liang Zhang <zh...@apache.org>
AuthorDate: Sun Aug 21 11:41:56 2022 +0800

    Rename FreemarkerManager to PostgreSQLPipelineFreemarkerManager (#20329)
---
 .../ddlgenerator/AbstractPostgresDDLAdapter.java   |  4 +--
 .../PostgreSQLCreateTableSQLGenerator.java         |  4 +--
 .../ddlgenerator/PostgresIndexSQLGenerator.java    |  6 ++--
 ...va => PostgreSQLPipelineFreemarkerManager.java} | 40 ++++++++--------------
 4 files changed, 21 insertions(+), 33 deletions(-)

diff --git a/shardingsphere-kernel/shardingsphere-data-pipeline/shardingsphere-data-pipeline-dialect/shardingsphere-data-pipeline-postgresql/src/main/java/org/apache/shardingsphere/data/pipeline/postgresql/ddlgenerator/AbstractPostgresDDLAdapter.java b/shardingsphere-kernel/shardingsphere-data-pipeline/shardingsphere-data-pipeline-dialect/shardingsphere-data-pipeline-postgresql/src/main/java/org/apache/shardingsphere/data/pipeline/postgresql/ddlgenerator/AbstractPostgresDDLAdapter.java
index 2c8addecd33..ae49a990266 100644
--- a/shardingsphere-kernel/shardingsphere-data-pipeline/shardingsphere-data-pipeline-dialect/shardingsphere-data-pipeline-postgresql/src/main/java/org/apache/shardingsphere/data/pipeline/postgresql/ddlgenerator/AbstractPostgresDDLAdapter.java
+++ b/shardingsphere-kernel/shardingsphere-data-pipeline/shardingsphere-data-pipeline-dialect/shardingsphere-data-pipeline-postgresql/src/main/java/org/apache/shardingsphere/data/pipeline/postgresql/ddlgenerator/AbstractPostgresDDLAdapter.java
@@ -19,7 +19,7 @@ package org.apache.shardingsphere.data.pipeline.postgresql.ddlgenerator;
 
 import lombok.Getter;
 import lombok.SneakyThrows;
-import org.apache.shardingsphere.data.pipeline.postgresql.util.FreemarkerManager;
+import org.apache.shardingsphere.data.pipeline.postgresql.util.PostgreSQLPipelineFreemarkerManager;
 
 import java.sql.Array;
 import java.sql.Connection;
@@ -58,7 +58,7 @@ public abstract class AbstractPostgresDDLAdapter {
     protected Collection<Map<String, Object>> executeByTemplate(final Map<String, Object> parameters, final String path) {
         try (
                 Statement statement = connection.createStatement();
-                ResultSet resultSet = statement.executeQuery(FreemarkerManager.getSQLByPgVersion(parameters, path, majorVersion, minorVersion))) {
+                ResultSet resultSet = statement.executeQuery(PostgreSQLPipelineFreemarkerManager.getSQLByVersion(parameters, path, majorVersion, minorVersion))) {
             return getRows(resultSet);
         }
     }
diff --git a/shardingsphere-kernel/shardingsphere-data-pipeline/shardingsphere-data-pipeline-dialect/shardingsphere-data-pipeline-postgresql/src/main/java/org/apache/shardingsphere/data/pipeline/postgresql/ddlgenerator/PostgreSQLCreateTableSQLGenerator.java b/shardingsphere-kernel/shardingsphere-data-pipeline/shardingsphere-data-pipeline-dialect/shardingsphere-data-pipeline-postgresql/src/main/java/org/apache/shardingsphere/data/pipeline/postgresql/ddlgenerator/PostgreSQLCreateTableSQLGen [...]
index b96dda8bf90..a0e5fe78b00 100644
--- a/shardingsphere-kernel/shardingsphere-data-pipeline/shardingsphere-data-pipeline-dialect/shardingsphere-data-pipeline-postgresql/src/main/java/org/apache/shardingsphere/data/pipeline/postgresql/ddlgenerator/PostgreSQLCreateTableSQLGenerator.java
+++ b/shardingsphere-kernel/shardingsphere-data-pipeline/shardingsphere-data-pipeline-dialect/shardingsphere-data-pipeline-postgresql/src/main/java/org/apache/shardingsphere/data/pipeline/postgresql/ddlgenerator/PostgreSQLCreateTableSQLGenerator.java
@@ -18,7 +18,7 @@
 package org.apache.shardingsphere.data.pipeline.postgresql.ddlgenerator;
 
 import org.apache.shardingsphere.data.pipeline.spi.ddlgenerator.CreateTableSQLGenerator;
-import org.apache.shardingsphere.data.pipeline.postgresql.util.FreemarkerManager;
+import org.apache.shardingsphere.data.pipeline.postgresql.util.PostgreSQLPipelineFreemarkerManager;
 
 import javax.sql.DataSource;
 import java.sql.Connection;
@@ -57,7 +57,7 @@ public final class PostgreSQLCreateTableSQLGenerator implements CreateTableSQLGe
     }
     
     private String generateCreateTableSQL(final int majorVersion, final int minorVersion, final Map<String, Object> materials) {
-        return FreemarkerManager.getSQLByPgVersion(materials, "table/%s/create.ftl", majorVersion, minorVersion).trim();
+        return PostgreSQLPipelineFreemarkerManager.getSQLByVersion(materials, "table/%s/create.ftl", majorVersion, minorVersion).trim();
     }
     
     private String generateCreateIndexSQL(final Connection connection, final int majorVersion, final int minorVersion, final Map<String, Object> materials) {
diff --git a/shardingsphere-kernel/shardingsphere-data-pipeline/shardingsphere-data-pipeline-dialect/shardingsphere-data-pipeline-postgresql/src/main/java/org/apache/shardingsphere/data/pipeline/postgresql/ddlgenerator/PostgresIndexSQLGenerator.java b/shardingsphere-kernel/shardingsphere-data-pipeline/shardingsphere-data-pipeline-dialect/shardingsphere-data-pipeline-postgresql/src/main/java/org/apache/shardingsphere/data/pipeline/postgresql/ddlgenerator/PostgresIndexSQLGenerator.java
index 33e76341f37..f2227af5c32 100644
--- a/shardingsphere-kernel/shardingsphere-data-pipeline/shardingsphere-data-pipeline-dialect/shardingsphere-data-pipeline-postgresql/src/main/java/org/apache/shardingsphere/data/pipeline/postgresql/ddlgenerator/PostgresIndexSQLGenerator.java
+++ b/shardingsphere-kernel/shardingsphere-data-pipeline/shardingsphere-data-pipeline-dialect/shardingsphere-data-pipeline-postgresql/src/main/java/org/apache/shardingsphere/data/pipeline/postgresql/ddlgenerator/PostgresIndexSQLGenerator.java
@@ -18,7 +18,7 @@
 package org.apache.shardingsphere.data.pipeline.postgresql.ddlgenerator;
 
 import lombok.SneakyThrows;
-import org.apache.shardingsphere.data.pipeline.postgresql.util.FreemarkerManager;
+import org.apache.shardingsphere.data.pipeline.postgresql.util.PostgreSQLPipelineFreemarkerManager;
 import org.postgresql.jdbc.PgArray;
 
 import java.sql.Connection;
@@ -74,9 +74,9 @@ public final class PostgresIndexSQLGenerator extends AbstractPostgresDDLAdapter
     }
     
     private String doGenerateIndexSql(final Map<String, Object> indexData) {
-        String result = FreemarkerManager.getSQLByPgVersion(indexData, "indexes/%s/create.ftl", getMajorVersion(), getMinorVersion());
+        String result = PostgreSQLPipelineFreemarkerManager.getSQLByVersion(indexData, "indexes/%s/create.ftl", getMajorVersion(), getMinorVersion());
         result += System.lineSeparator();
-        result += FreemarkerManager.getSQLByPgVersion(indexData, "indexes/%s/alter.ftl", getMajorVersion(), getMinorVersion());
+        result += PostgreSQLPipelineFreemarkerManager.getSQLByVersion(indexData, "indexes/%s/alter.ftl", getMajorVersion(), getMinorVersion());
         return result;
     }
     
diff --git a/shardingsphere-kernel/shardingsphere-data-pipeline/shardingsphere-data-pipeline-dialect/shardingsphere-data-pipeline-postgresql/src/main/java/org/apache/shardingsphere/data/pipeline/postgresql/util/FreemarkerManager.java b/shardingsphere-kernel/shardingsphere-data-pipeline/shardingsphere-data-pipeline-dialect/shardingsphere-data-pipeline-postgresql/src/main/java/org/apache/shardingsphere/data/pipeline/postgresql/util/PostgreSQLPipelineFreemarkerManager.java
similarity index 74%
rename from shardingsphere-kernel/shardingsphere-data-pipeline/shardingsphere-data-pipeline-dialect/shardingsphere-data-pipeline-postgresql/src/main/java/org/apache/shardingsphere/data/pipeline/postgresql/util/FreemarkerManager.java
rename to shardingsphere-kernel/shardingsphere-data-pipeline/shardingsphere-data-pipeline-dialect/shardingsphere-data-pipeline-postgresql/src/main/java/org/apache/shardingsphere/data/pipeline/postgresql/util/PostgreSQLPipelineFreemarkerManager.java
index 966184f4468..91dec2fa19b 100644
--- a/shardingsphere-kernel/shardingsphere-data-pipeline/shardingsphere-data-pipeline-dialect/shardingsphere-data-pipeline-postgresql/src/main/java/org/apache/shardingsphere/data/pipeline/postgresql/util/FreemarkerManager.java
+++ b/shardingsphere-kernel/shardingsphere-data-pipeline/shardingsphere-data-pipeline-dialect/shardingsphere-data-pipeline-postgresql/src/main/java/org/apache/shardingsphere/data/pipeline/postgresql/util/PostgreSQLPipelineFreemarkerManager.java
@@ -19,6 +19,7 @@ package org.apache.shardingsphere.data.pipeline.postgresql.util;
 
 import freemarker.template.Configuration;
 import freemarker.template.Template;
+import freemarker.template.TemplateException;
 import freemarker.template.TemplateNotFoundException;
 import lombok.AccessLevel;
 import lombok.NoArgsConstructor;
@@ -33,15 +34,15 @@ import java.util.Map.Entry;
 import java.util.Optional;
 
 /**
- * Freemarker manager.
+ * PostgreSQL pipeline freemarker manager.
  */
 @NoArgsConstructor(access = AccessLevel.PRIVATE)
-public final class FreemarkerManager {
-    
-    private static final FreemarkerManager INSTANCE = new FreemarkerManager();
+public final class PostgreSQLPipelineFreemarkerManager {
     
     private static final Map<Integer, String> PG_VERSION_PATHS = new LinkedHashMap<>();
     
+    private static final Configuration TEMPLATE_CONFIG = createTemplateConfiguration();
+    
     static {
         PG_VERSION_PATHS.put(120000, "12_plus");
         PG_VERSION_PATHS.put(110000, "11_plus");
@@ -56,39 +57,27 @@ public final class FreemarkerManager {
         PG_VERSION_PATHS.put(0, "default");
     }
     
-    private final Configuration templateConfig = createTemplateConfiguration();
-    
-    /**
-     * Get freemarker manager instance.
-     * 
-     * @return freemarker manager instance
-     */
-    public static FreemarkerManager getInstance() {
-        return INSTANCE;
-    }
-    
-    @SneakyThrows
-    private Configuration createTemplateConfiguration() {
+    private static Configuration createTemplateConfiguration() {
         Configuration result = new Configuration(Configuration.VERSION_2_3_31);
-        result.setClassForTemplateLoading(getClass(), "/template");
+        result.setClassForTemplateLoading(PostgreSQLPipelineFreemarkerManager.class, "/template");
         result.setDefaultEncoding("UTF-8");
         return result;
     }
     
     /**
-     * Get SQL by postgres version.
-     * 
-     * @param data data
+     * Get SQL by PostgreSQL version.
+     *
+     * @param dataModel data model of template
      * @param pathFormat path format
      * @param majorVersion major version
      * @param minorVersion minor version
      * @return SQL
      */
-    @SneakyThrows
-    public static String getSQLByPgVersion(final Map<String, Object> data, final String pathFormat, final int majorVersion, final int minorVersion) {
+    @SneakyThrows({IOException.class, TemplateException.class})
+    public static String getSQLByVersion(final Map<String, Object> dataModel, final String pathFormat, final int majorVersion, final int minorVersion) {
         int version = majorVersion * 10000 + minorVersion;
         try (StringWriter result = new StringWriter()) {
-            findTemplate(pathFormat, version).orElseThrow(() -> new ShardingSphereException("Failed to get template, path:%s, version:%s", pathFormat, version)).process(data, result);
+            findTemplate(pathFormat, version).orElseThrow(() -> new ShardingSphereException("Failed to get template, path:%s, version:%s", pathFormat, version)).process(dataModel, result);
             return result.toString();
         }
     }
@@ -99,8 +88,7 @@ public final class FreemarkerManager {
                 continue;
             }
             try {
-                Template template = FreemarkerManager.getInstance().templateConfig.getTemplate(String.format(pathFormat, entry.getValue()));
-                return Optional.of(template);
+                return Optional.of(TEMPLATE_CONFIG.getTemplate(String.format(pathFormat, entry.getValue())));
             } catch (TemplateNotFoundException ignored) {
             }
         }