From 637ba3c3d091a7a0acdb4e6e1f8d33a055c53aef Mon Sep 17 00:00:00 2001 From: afalhambra Date: Fri, 27 May 2022 10:23:25 +0200 Subject: [PATCH] [JBPM-10075] - Fix in resolving dialect from quarkus properties EMF --- .../persistence/scripts/util/ScriptUtil.java | 23 +++++++++++++------ 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/src/test/java/org/kie/processmigration/test/persistence/scripts/util/ScriptUtil.java b/src/test/java/org/kie/processmigration/test/persistence/scripts/util/ScriptUtil.java index 237ae1c..19cde07 100644 --- a/src/test/java/org/kie/processmigration/test/persistence/scripts/util/ScriptUtil.java +++ b/src/test/java/org/kie/processmigration/test/persistence/scripts/util/ScriptUtil.java @@ -20,6 +20,8 @@ import java.util.Arrays; import java.util.Comparator; import java.util.Properties; +import java.util.regex.Matcher; +import java.util.regex.Pattern; import java.util.stream.Collectors; import org.kie.processmigration.test.persistence.scripts.DatabaseScript; @@ -88,25 +90,32 @@ public static DatabaseType getDatabaseType(final Properties dataSourceProperties * If specified SQL dialect is not supported, throws IllegalArgumentException. */ public static DatabaseType getDatabaseTypeBySQLDialect(final String sqlDialect) { - if (sqlDialect.contains("DB2Dialect")) { + if (containsDialect(sqlDialect, "DB2")) { return DatabaseType.DB2; - } else if (sqlDialect.contains("H2Dialect")) { + } else if (containsDialect(sqlDialect, "H2")) { return DatabaseType.H2; - } else if (sqlDialect.contains("MySQL5Dialect")) { + } else if (containsDialect(sqlDialect, "MySQL")) { return DatabaseType.MYSQL; - } else if (sqlDialect.contains("MySQL5InnoDBDialect")) { + } else if (containsDialect(sqlDialect, "MariaDB")) { return DatabaseType.MARIADB; - } else if (sqlDialect.contains("Oracle")) { + } else if (containsDialect(sqlDialect, "Oracle")) { return DatabaseType.ORACLE; - } else if (sqlDialect.contains("Postgre")) { + } else if (containsDialect(sqlDialect, "Postgre")) { return DatabaseType.POSTGRESQL; - } else if (sqlDialect.contains("SQLServer2012Dialect")) { + } else if (containsDialect(sqlDialect, "SQLServer")) { return DatabaseType.SQLSERVER; } else { throw new IllegalArgumentException("SQL dialect type " + sqlDialect + " is not supported!"); } } + private static boolean containsDialect(String dialect, String dbType){ + String regex = "(.*)%s(.*)Dialect"; + Pattern p = Pattern.compile(String.format(regex, dbType)); + Matcher m = p.matcher(dialect); + return m.matches(); + } + public static byte[] hexStringToByteArray(final String hexString) { int len = hexString.length(); byte[] data = new byte[len / 2];