From 3c6a52da31a51f37d3a5e87912fa4fb463bee985 Mon Sep 17 00:00:00 2001 From: rob bygrave Date: Tue, 13 Nov 2018 20:39:15 +1300 Subject: [PATCH] #1531 - Transform extra-ddl.xml files when running in ddl mode (no migration) Update to ebean-migration to with ScriptTransform as public and reuse here in Ebean --- pom.xml | 2 +- .../dbmigration/DdlGenerator.java | 6 +-- .../dbmigration/PlaceholderBuilder.java | 53 ------------------- .../dbmigration/ScriptTransform.java | 40 -------------- 4 files changed, 3 insertions(+), 98 deletions(-) delete mode 100644 src/main/java/io/ebeaninternal/dbmigration/PlaceholderBuilder.java delete mode 100644 src/main/java/io/ebeaninternal/dbmigration/ScriptTransform.java diff --git a/pom.xml b/pom.xml index 73add8867..9068b335d 100644 --- a/pom.xml +++ b/pom.xml @@ -135,7 +135,7 @@ io.ebean ebean-migration - 11.9.1 + 11.10.1 diff --git a/src/main/java/io/ebeaninternal/dbmigration/DdlGenerator.java b/src/main/java/io/ebeaninternal/dbmigration/DdlGenerator.java index daff5c23e..8230bc65b 100644 --- a/src/main/java/io/ebeaninternal/dbmigration/DdlGenerator.java +++ b/src/main/java/io/ebeaninternal/dbmigration/DdlGenerator.java @@ -3,8 +3,8 @@ package io.ebeaninternal.dbmigration; import io.ebean.config.DbMigrationConfig; import io.ebean.config.ServerConfig; import io.ebean.config.dbplatform.DatabasePlatform; -import io.ebean.migration.MigrationConfig; import io.ebean.migration.ddl.DdlRunner; +import io.ebean.migration.runner.ScriptTransform; import io.ebean.util.JdbcClose; import io.ebeaninternal.api.SpiEbeanServer; import io.ebeaninternal.dbmigration.model.CurrentModel; @@ -25,7 +25,6 @@ import java.io.LineNumberReader; import java.io.Reader; import java.sql.Connection; import java.sql.SQLException; -import java.util.Map; /** * Controls the generation and execution of "Create All" and "Drop All" DDL scripts. @@ -358,8 +357,7 @@ public class DdlGenerator { */ private ScriptTransform createScriptTransform(DbMigrationConfig config) { - Map map = PlaceholderBuilder.build(config.getRunPlaceholders(), config.getRunPlaceholderMap()); - return new ScriptTransform(map); + return ScriptTransform.build(config.getRunPlaceholders(), config.getRunPlaceholderMap()); } } diff --git a/src/main/java/io/ebeaninternal/dbmigration/PlaceholderBuilder.java b/src/main/java/io/ebeaninternal/dbmigration/PlaceholderBuilder.java deleted file mode 100644 index 5f85d46ea..000000000 --- a/src/main/java/io/ebeaninternal/dbmigration/PlaceholderBuilder.java +++ /dev/null @@ -1,53 +0,0 @@ -package io.ebeaninternal.dbmigration; - -import java.util.HashMap; -import java.util.Map; - -/** - * Joins placeholder map and comma/equals delimited string. - */ -class PlaceholderBuilder { - - private final Map map = new HashMap<>(); - - /** - * Create with raw comma and equals delimited pairs plus map of key value pairs. - */ - static Map build(String commaDelimited, Map placeholders) { - - PlaceholderBuilder builder = new PlaceholderBuilder(); - builder.add(commaDelimited); - builder.add(placeholders); - - return builder.map; - } - - private PlaceholderBuilder() { - - } - - /** - * Add a comma and equals delimited string to parse for key value pairs. - */ - private void add(String commaDelimited) { - - if (commaDelimited != null) { - String[] split = commaDelimited.split("[,;]"); - for (String keyValue : split) { - String[] pair = keyValue.split("="); - if (pair.length == 2) { - map.put(pair[0].trim(), pair[1].trim()); - } - } - } - } - - /** - * Add a map of key value placeholder pairs. - */ - private void add(Map placeholders) { - if (placeholders != null) { - map.putAll(placeholders); - } - } -} diff --git a/src/main/java/io/ebeaninternal/dbmigration/ScriptTransform.java b/src/main/java/io/ebeaninternal/dbmigration/ScriptTransform.java deleted file mode 100644 index b6ee979f6..000000000 --- a/src/main/java/io/ebeaninternal/dbmigration/ScriptTransform.java +++ /dev/null @@ -1,40 +0,0 @@ -package io.ebeaninternal.dbmigration; - -import java.util.HashMap; -import java.util.Map; - -/** - * Transforms a SQL script given a map of key/value substitutions. - */ -class ScriptTransform { - - /** - * Transform just ${table} with the table name. - */ - static String replace(String key, String value, String script) { - return script.replace(key, value); - } - - private final Map placeholders = new HashMap<>(); - - ScriptTransform(Map map) { - for (Map.Entry entry : map.entrySet()) { - placeholders.put(wrapKey(entry.getKey()), entry.getValue()); - } - } - - private String wrapKey(String key) { - return "${"+key+"}"; - } - - /** - * Transform the script replacing placeholders in the form ${key} with value. - */ - String transform(String source) { - - for (Map.Entry entry : placeholders.entrySet()) { - source = source.replace(entry.getKey(), entry.getValue()); - } - return source; - } -}