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) {
}
}