From 0f86f686197d12cbeea0737694bc98e0f0eb2e0e Mon Sep 17 00:00:00 2001 From: John Tims Date: Sat, 23 Jul 2016 06:51:26 -0600 Subject: [PATCH] Dockerize oracle, mysql, postgres, cubrid, firebird, db2, and mongo --- .travis.yml | 16 ++--- .../src/test_connection/core.clj | 2 +- .../test/resources/META-INF/persistence.xml | 10 ++-- .../querydsl/jpa/testutil/mysql.properties | 2 +- .../querydsl/jpa/testutil/oracle.properties | 6 +- .../jpa/testutil/postgresql.properties | 4 +- .../com/querydsl/sql/spatial/SpatialBase.java | 1 + .../java/com/querydsl/sql/Connections.java | 10 ++-- travis/cubrid.sh | 7 --- travis/docker-compose.yml | 59 +++++++++++++++++++ travis/docker_bootstrap.sh | 7 +++ travis/firebird.sh | 12 ---- travis/firebird.sql | 7 --- travis/mysql.sh | 6 ++ travis/mysql.sql | 6 -- travis/postgresql.sql | 3 - 16 files changed, 95 insertions(+), 63 deletions(-) delete mode 100755 travis/cubrid.sh create mode 100644 travis/docker-compose.yml create mode 100755 travis/docker_bootstrap.sh delete mode 100755 travis/firebird.sh delete mode 100644 travis/firebird.sql create mode 100644 travis/mysql.sh delete mode 100644 travis/mysql.sql diff --git a/.travis.yml b/.travis.yml index b3d121407..d5af9a345 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,23 +2,17 @@ language: java jdk: - oraclejdk8 services: - - mongodb -addons: - postgresql: "9.3" + - docker env: matrix: - MODULE=!querydsl-scala PROFILES=all,travis,examples - MODULE=!querydsl-jpa-codegen PROFILES=jpa,hibernate5,travis,examples - MODULE=querydsl-scala PROFILES=all,travis -install: - - mvn -B -q --projects ${MODULE} -P${PROFILES} install -DskipTests=true +install: /bin/true before_script: - - mysql -u root -e "source travis/mysql.sql" - - psql -U postgres -f travis/postgresql.sql - - psql -c 'create extension postgis;' -d querydsl -U postgres - - ./travis/cubrid.sh - - ./travis/firebird.sh -script: mvn -B test -P${PROFILES} --projects ${MODULE} jacoco:report + - sudo /etc/init.d/mysql stop + - ./travis/docker_bootstrap.sh +script: mvn --batch-mode test --activate-profiles ${PROFILES} --projects ${MODULE} jacoco:report sudo: required after_success: - mvn coveralls:report diff --git a/devops/test-connection/src/test_connection/core.clj b/devops/test-connection/src/test_connection/core.clj index 9fc1721aa..5f6d1eb0a 100644 --- a/devops/test-connection/src/test_connection/core.clj +++ b/devops/test-connection/src/test_connection/core.clj @@ -22,7 +22,7 @@ (def cubrid-db {:classname "cubrid.jdbc.driver.CUBRIDDriver" :subprotocol "cubrid" - :subname "localhost:30000:demodb:public::"}) + :subname "localhost:30000:demodb:dba::"}) (count (j/query oracle-db (s/select * :all_tables))) (count (j/query postgres-db (s/select * :pg_catalog.pg_tables))) diff --git a/querydsl-jpa/src/test/resources/META-INF/persistence.xml b/querydsl-jpa/src/test/resources/META-INF/persistence.xml index 32a59979d..0b67c2e60 100644 --- a/querydsl-jpa/src/test/resources/META-INF/persistence.xml +++ b/querydsl-jpa/src/test/resources/META-INF/persistence.xml @@ -253,7 +253,7 @@ - + @@ -267,7 +267,7 @@ false - + @@ -285,8 +285,8 @@ - - + + @@ -311,4 +311,4 @@ - \ No newline at end of file + diff --git a/querydsl-jpa/src/test/resources/com/querydsl/jpa/testutil/mysql.properties b/querydsl-jpa/src/test/resources/com/querydsl/jpa/testutil/mysql.properties index 828277ab8..619988c92 100644 --- a/querydsl-jpa/src/test/resources/com/querydsl/jpa/testutil/mysql.properties +++ b/querydsl-jpa/src/test/resources/com/querydsl/jpa/testutil/mysql.properties @@ -9,4 +9,4 @@ hibernate.connection.password=querydsl #hibernate.show_sql=true hibernate.flushMode=FLUSH_AUTO hibernate.hbm2ddl.auto=update -#hibernate.use_sql_comments=true \ No newline at end of file +#hibernate.use_sql_comments=true diff --git a/querydsl-jpa/src/test/resources/com/querydsl/jpa/testutil/oracle.properties b/querydsl-jpa/src/test/resources/com/querydsl/jpa/testutil/oracle.properties index 40bfa2511..389751334 100644 --- a/querydsl-jpa/src/test/resources/com/querydsl/jpa/testutil/oracle.properties +++ b/querydsl-jpa/src/test/resources/com/querydsl/jpa/testutil/oracle.properties @@ -3,11 +3,11 @@ hibernate.dialect=com.querydsl.jpa.support.QOracle10gDialect hibernate.connection.driver_class=oracle.jdbc.driver.OracleDriver hibernate.connection.url=jdbc:oracle:thin:@localhost:1521:xe -hibernate.connection.username=querydsl -hibernate.connection.password=querydsl +hibernate.connection.username=system +hibernate.connection.password=oracle ## Common properties #hibernate.show_sql=true hibernate.flushMode=FLUSH_AUTO hibernate.hbm2ddl.auto=update -#hibernate.use_sql_comments=true \ No newline at end of file +#hibernate.use_sql_comments=true diff --git a/querydsl-jpa/src/test/resources/com/querydsl/jpa/testutil/postgresql.properties b/querydsl-jpa/src/test/resources/com/querydsl/jpa/testutil/postgresql.properties index c4f587c57..fb0dfa133 100644 --- a/querydsl-jpa/src/test/resources/com/querydsl/jpa/testutil/postgresql.properties +++ b/querydsl-jpa/src/test/resources/com/querydsl/jpa/testutil/postgresql.properties @@ -1,7 +1,7 @@ ## MySQL hibernate.dialect=com.querydsl.jpa.support.QPostgreSQL9Dialect hibernate.connection.driver_class=org.postgresql.Driver -hibernate.connection.url=jdbc:postgresql://localhost:5432/querydsl +hibernate.connection.url=jdbc:postgresql://localhost:5433/querydsl hibernate.connection.username=querydsl hibernate.connection.password=querydsl @@ -9,4 +9,4 @@ hibernate.connection.password=querydsl #hibernate.show_sql=true hibernate.flushMode=FLUSH_AUTO hibernate.hbm2ddl.auto=update -#hibernate.use_sql_comments=true \ No newline at end of file +#hibernate.use_sql_comments=true diff --git a/querydsl-sql-spatial/src/test/java/com/querydsl/sql/spatial/SpatialBase.java b/querydsl-sql-spatial/src/test/java/com/querydsl/sql/spatial/SpatialBase.java index ad6b0367f..e902f9795 100644 --- a/querydsl-sql-spatial/src/test/java/com/querydsl/sql/spatial/SpatialBase.java +++ b/querydsl-sql-spatial/src/test/java/com/querydsl/sql/spatial/SpatialBase.java @@ -1,3 +1,4 @@ + package com.querydsl.sql.spatial; import static com.querydsl.core.Target.*; diff --git a/querydsl-sql/src/test/java/com/querydsl/sql/Connections.java b/querydsl-sql/src/test/java/com/querydsl/sql/Connections.java index fd41e71ac..d4357d20f 100644 --- a/querydsl-sql/src/test/java/com/querydsl/sql/Connections.java +++ b/querydsl-sql/src/test/java/com/querydsl/sql/Connections.java @@ -89,7 +89,7 @@ public final class Connections { private static Connection getDB2() throws SQLException, ClassNotFoundException { Class.forName("com.ibm.db2.jcc.DB2Driver"); - String url = "jdbc:db2://db2host:50001/SAMPLE"; + String url = "jdbc:db2://localhost:50000/sample"; return DriverManager.getConnection(url, "db2inst1", "a3sd!fDj"); } @@ -101,8 +101,8 @@ public final class Connections { private static Connection getFirebird() throws SQLException, ClassNotFoundException { Class.forName("org.firebirdsql.jdbc.FBDriver"); - String url = "jdbc:firebirdsql:localhost/3050:/var/lib/firebird/2.5/data/querydsl.fdb"; - return DriverManager.getConnection(url, "querydsl", "querydsl"); + String url = "jdbc:firebirdsql:localhost/3050:/databases/querydsl.fdb"; + return DriverManager.getConnection(url, "sysdba", "masterkey"); } private static Connection getHSQL() throws SQLException, ClassNotFoundException { @@ -126,12 +126,12 @@ public final class Connections { private static Connection getOracle() throws SQLException, ClassNotFoundException { Class.forName("oracle.jdbc.driver.OracleDriver"); String url = "jdbc:oracle:thin:@localhost:1521:xe"; - return DriverManager.getConnection(url, "querydsl", "querydsl"); + return DriverManager.getConnection(url, "system", "oracle"); } private static Connection getPostgreSQL() throws ClassNotFoundException, SQLException { Class.forName("org.postgresql.Driver"); - String url = "jdbc:postgresql://localhost:5432/querydsl"; + String url = "jdbc:postgresql://localhost:5433/querydsl"; return DriverManager.getConnection(url, "querydsl", "querydsl"); } diff --git a/travis/cubrid.sh b/travis/cubrid.sh deleted file mode 100755 index 2ce4a41e5..000000000 --- a/travis/cubrid.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/sh -hostname | sed 's/^/127.0.0.1 /g' | cat - /etc/hosts > /tmp/etchoststemp && sudo mv /tmp/etchoststemp /etc/hosts --force -echo 'yes' | sudo add-apt-repository ppa:cubrid/cubrid -sudo apt-get update -sudo apt-get install cubrid -sudo apt-get install cubrid-demodb -/etc/profile.d/cubrid.sh diff --git a/travis/docker-compose.yml b/travis/docker-compose.yml new file mode 100644 index 000000000..e3323c0f3 --- /dev/null +++ b/travis/docker-compose.yml @@ -0,0 +1,59 @@ +mysql: + image: mysql:5.6.38 + ports: + - "3306:3306" + volumes: + - ./mysql.sh:/docker-entrypoint-initdb.d/mysql.sh + environment: + - MYSQL_ROOT_PASSWORD=querydsl + - MYSQL_USER=querydsl + - MYSQL_PASSWORD=querydsl + +postgresql: + image: mdillon/postgis:9.3-alpine + ports: + - "5433:5432" + volumes: + - ./postgresql.sql:/docker-entrypoint-initdb.d/postgresql.sql + environment: + - POSTGRES_USER=querydsl + - POSTGRES_PASSWORD=querydsl + - POSTGRES_DB=querydsl + +oracle: + image: wnameless/oracle-xe-11g:16.04 + ports: + - "1521:1521" + +cubrid: + image: lighthopper/cubrid:9.2.26.0004 + ports: + - "33000:33000" + - "30000:30000" + - "8001:8001" + - "8002:8002" + - "1523:1523" + +mongo: + image: mongo:3.6.1 + ports: + - "27017:27017" + +db2: + image: ibmcom/db2express-c:10.5.0.5-3.10.0 + ports: + - "50000:50000" + environment: + - DB2INST1_PASSWORD=a3sd!fDj + - LICENSE=accept + command: db2start + +firebird: + image: jacobalberty/firebird:2.5.6-ss + ports: + - "3050:3050" + environment: + - ISC_PASSWORD=masterkey + - FIREBIRD_DATABASE=querydsl.fdb + - FIREBIRD_USER=querydsl + - FIREBIRD_PASSWORD=querydsl diff --git a/travis/docker_bootstrap.sh b/travis/docker_bootstrap.sh new file mode 100755 index 000000000..95ed039ff --- /dev/null +++ b/travis/docker_bootstrap.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env bash +set -ex + +docker-compose --file travis/docker-compose.yml up -d mysql postgresql firebird cubrid mongo +docker exec $(docker-compose --file travis/docker-compose.yml ps -q cubrid) /bin/bash -c 'mkdir -p ~/CUBRID_databases/demodb && cd $_ && cubrid createdb --db-volume-size=100M --log-volume-size=100M demodb en_US.iso88591 && cubrid loaddb -u dba -s $CUBRID/demo/demodb_schema -d $CUBRID/demo/demodb_objects demodb' +docker exec -d $(docker-compose --file travis/docker-compose.yml ps -q cubrid) /bin/bash -c 'cubrid server start demodb' +docker ps diff --git a/travis/firebird.sh b/travis/firebird.sh deleted file mode 100755 index d4cd1db2a..000000000 --- a/travis/firebird.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh -sudo apt-get install -qq firebird2.5-super firebird2.5-dev -sudo sed /ENABLE_FIREBIRD_SERVER=/s/no/yes/ -i /etc/default/firebird2.5 -cat /etc/default/firebird2.5 | grep ENABLE_FIREBIRD_SERVER -sudo service firebird2.5-super start -#PASSWORD=`sudo cat /etc/firebird/2.5/SYSDBA.password | grep PASS | sed -e 's/.*PASSWORD="\([^"]*\)".*/\1/'` -echo Create user -#sudo gsec -user sysdba -pass $PASSWORD -add querydsl -pw querydsl -sudo gsec -user sysdba -pass masterkey -add querydsl -pw querydsl -echo Create database -sudo isql-fb -u querydsl -pas querydsl -i travis/firebird.sql -q -#sudo isql-fb -u sysdba -pas $PASSWORD -i travis/firebird.sql -q diff --git a/travis/firebird.sql b/travis/firebird.sql deleted file mode 100644 index 67bccb320..000000000 --- a/travis/firebird.sql +++ /dev/null @@ -1,7 +0,0 @@ -SET SQL DIALECT 3; - -SET NAMES UNICODE_FSS; - -CREATE DATABASE '/var/lib/firebird/2.5/data/querydsl.fdb' -PAGE_SIZE 16384 -DEFAULT CHARACTER SET UNICODE_FSS; diff --git a/travis/mysql.sh b/travis/mysql.sh new file mode 100644 index 000000000..b6a038e9a --- /dev/null +++ b/travis/mysql.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +mysql -uroot -p$MYSQL_ROOT_PASSWORD -e "CREATE SCHEMA querydsl" +mysql -uroot -p$MYSQL_ROOT_PASSWORD -e "CREATE SCHEMA querydsl2" + +mysql -uroot -p$MYSQL_ROOT_PASSWORD -e "GRANT ALL PRIVILEGES ON *.* TO 'querydsl'@'%'" diff --git a/travis/mysql.sql b/travis/mysql.sql deleted file mode 100644 index b62f71d62..000000000 --- a/travis/mysql.sql +++ /dev/null @@ -1,6 +0,0 @@ -create database querydsl; -create database querydsl2; -create user 'querydsl'@'localhost' identified by 'querydsl'; -grant all privileges on querydsl.* to 'querydsl'@'localhost'; -grant all privileges on querydsl2.* to 'querydsl'@'localhost'; - diff --git a/travis/postgresql.sql b/travis/postgresql.sql index c172a83e9..34de9ea9f 100644 --- a/travis/postgresql.sql +++ b/travis/postgresql.sql @@ -1,5 +1,2 @@ -create database querydsl; create database querydsl2; -create user querydsl with password 'querydsl'; -grant all privileges on database querydsl to querydsl; grant all privileges on database querydsl2 to querydsl;