From c899d07a71309f31ba9c717c275eced5fc7517e1 Mon Sep 17 00:00:00 2001 From: moparisthebest Date: Sat, 19 May 2018 00:32:25 -0400 Subject: [PATCH] Profiles to test oracle and hsql special DatabaseTypes --- .travis-settings.xml | 22 ++++++++ .travis.yml | 5 +- .../jdbc/codegen/JdbcMapperProcessor.java | 2 +- test/pom.xml | 56 +++++++++++++++++++ .../jdbc/codegen/PersonDAO.java | 2 +- .../jdbc/codegen/PrestoPersonDAO.java | 2 +- 6 files changed, 85 insertions(+), 4 deletions(-) diff --git a/.travis-settings.xml b/.travis-settings.xml index a9a9c68..05292d5 100644 --- a/.travis-settings.xml +++ b/.travis-settings.xml @@ -5,5 +5,27 @@ ${env.SONATYPE_USERNAME} ${env.SONATYPE_PASSWORD} + + maven.oracle.com + ${env.ORACLE_LOGIN_userid} + ${env.ORACLE_LOGIN_pass} + + + ANY + ANY + OAM 11g + + + + + + http.protocol.allow-circular-redirects + %b,true + + + + + + \ No newline at end of file diff --git a/.travis.yml b/.travis.yml index a051b74..ed1679f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -27,7 +27,10 @@ before_script: script: - docker ps -a - - mvn test -B '-DjdbcUrl1=jdbc:postgresql:test_db' '-DjdbcUrl2=jdbc:mariadb://127.0.0.1:3306/test_db?user=root' '-DjdbcUrl3=jdbc:sqlserver://localhost:1433;databaseName=master;username=sa;password=;' + - mvn -B -pl '!test' clean install || travis_terminate 1; + - mvn -B -pl test clean test '-DjdbcUrl1=jdbc:postgresql:test_db' '-DjdbcUrl2=jdbc:mariadb://127.0.0.1:3306/test_db?user=root' '-DjdbcUrl3=jdbc:sqlserver://localhost:1433;databaseName=master;username=sa;password=;' || travis_terminate 1; + - mvn -B -pl test clean test -P oracle '-DjdbcUrl=derby' || travis_terminate 1; # todo: change jdbcUrl to actual oracle datasource + - mvn -B -pl test clean test -P unnest '-DjdbcUrl=hsqldb' || travis_terminate 1; matrix: include: diff --git a/jdbcmapper/src/main/java/com/moparisthebest/jdbc/codegen/JdbcMapperProcessor.java b/jdbcmapper/src/main/java/com/moparisthebest/jdbc/codegen/JdbcMapperProcessor.java index 035d902..6271469 100644 --- a/jdbcmapper/src/main/java/com/moparisthebest/jdbc/codegen/JdbcMapperProcessor.java +++ b/jdbcmapper/src/main/java/com/moparisthebest/jdbc/codegen/JdbcMapperProcessor.java @@ -126,7 +126,7 @@ public class JdbcMapperProcessor extends AbstractProcessor { enumType = types.getDeclaredType(elements.getTypeElement(Enum.class.getCanonicalName()), types.getWildcardType(null, null)); final String databaseType = processingEnv.getOptions().get("jdbcMapper.databaseType"); - defaultDatabaseType = databaseType == null ? JdbcMapper.DatabaseType.STANDARD : JdbcMapper.DatabaseType.valueOf(databaseType); + defaultDatabaseType = databaseType == null || databaseType.isEmpty() ? JdbcMapper.DatabaseType.STANDARD : JdbcMapper.DatabaseType.valueOf(databaseType); defaultArrayNumberTypeName = processingEnv.getOptions().get("jdbcMapper.arrayNumberTypeName"); if (defaultArrayNumberTypeName == null || defaultArrayNumberTypeName.isEmpty()) defaultArrayNumberTypeName = defaultDatabaseType.arrayNumberTypeName; diff --git a/test/pom.xml b/test/pom.xml index c8e632a..a5e1851 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -133,5 +133,61 @@ + + oracle + + ojdbc6 + 11.2.0.4 + + + + com.oracle.jdbc + ${oracle.driver.artifact} + ${oracle.driver.version} + + + + + maven.oracle.com + + true + + + false + + https://maven.oracle.com + default + + + + + + org.apache.maven.plugins + maven-compiler-plugin + + + -AjdbcMapper.databaseType=ORACLE + + + + + + + + unnest + + + + org.apache.maven.plugins + maven-compiler-plugin + + + -AjdbcMapper.databaseType=UNNEST + + + + + + \ No newline at end of file diff --git a/test/src/main/java/com/moparisthebest/jdbc/codegen/PersonDAO.java b/test/src/main/java/com/moparisthebest/jdbc/codegen/PersonDAO.java index 32748a7..de6a416 100644 --- a/test/src/main/java/com/moparisthebest/jdbc/codegen/PersonDAO.java +++ b/test/src/main/java/com/moparisthebest/jdbc/codegen/PersonDAO.java @@ -20,7 +20,7 @@ import java.time.*; */ @JdbcMapper.Mapper( jndiName = "bob", -// databaseType = JdbcMapper.DatabaseType.ORACLE + databaseType = JdbcMapper.DatabaseType.STANDARD, // todo: PrestoPersonDao breaks with ORACLE or UNNEST cachePreparedStatements = JdbcMapper.OptionalBool.FALSE // , sqlParser = SimpleSQLParser.class , allowReflection = JdbcMapper.OptionalBool.TRUE diff --git a/test/src/main/java/com/moparisthebest/jdbc/codegen/PrestoPersonDAO.java b/test/src/main/java/com/moparisthebest/jdbc/codegen/PrestoPersonDAO.java index 6a7fe4b..1dc3e22 100644 --- a/test/src/main/java/com/moparisthebest/jdbc/codegen/PrestoPersonDAO.java +++ b/test/src/main/java/com/moparisthebest/jdbc/codegen/PrestoPersonDAO.java @@ -20,7 +20,7 @@ import java.time.*; */ @JdbcMapper.Mapper( jndiName = "bob", -// databaseType = JdbcMapper.DatabaseType.ORACLE + databaseType = JdbcMapper.DatabaseType.STANDARD, // PrestoPersonDao breaks with ORACLE or UNNEST cachePreparedStatements = JdbcMapper.OptionalBool.FALSE , sqlParser = PrestoSQLParser.class , allowReflection = JdbcMapper.OptionalBool.TRUE