diff --git a/ci/build.sh b/ci/build.sh index 7ef385253b0f..12d76976f487 100755 --- a/ci/build.sh +++ b/ci/build.sh @@ -23,13 +23,20 @@ elif [ "$RDBMS" == "oracle" ]; then elif [ "$RDBMS" == "oracle_xe" ]; then # I have no idea why, but these tests don't seem to work on CI... goal="-Pdb=oracle_xe_ci" -elif [ "$RDBMS" == "oracle_atps" ]; then +elif [ "$RDBMS" == "oracle_atps_tls" ]; then echo "Managing Oracle Autonomous Database..." export INFO=$(curl -s -k -L -X GET "https://api.atlas-controller.oraclecloud.com/ords/atlas/admin/database?type=autonomous&hostname=`hostname`" -H 'accept: application/json') export HOST=$(echo $INFO | jq -r '.database' | jq -r '.host') export SERVICE=$(echo $INFO | jq -r '.database' | jq -r '.service') # I have no idea why, but these tests don't seem to work on CI... goal="-Pdb=oracle_cloud_autonomous_tls -DrunID=$RUNID -DdbHost=$HOST -DdbService=$SERVICE" +elif [ "$RDBMS" == "oracle_atps" ]; then + echo "Managing Oracle Autonomous Database..." + export INFO=$(curl -s -k -L -X GET "https://api.atlas-controller.oraclecloud.com/ords/atlas/admin/database?type=autonomous2&hostname=`hostname`" -H 'accept: application/json') + export HOST=$(echo $INFO | jq -r '.database' | jq -r '.host') + export SERVICE=$(echo $INFO | jq -r '.database' | jq -r '.service') + # I have no idea why, but these tests don't seem to work on CI... + goal="-Pdb=oracle_cloud_autonomous -DrunID=$RUNID -DdbHost=$HOST -DdbService=$SERVICE" elif [ "$RDBMS" == "oracle_db19c" ]; then echo "Managing Oracle Database 19c..." export INFO=$(curl -s -k -L -X GET "https://api.atlas-controller.oraclecloud.com/ords/atlas/admin/database?type=db19c&hostname=`hostname`" -H 'accept: application/json') diff --git a/docker_db.sh b/docker_db.sh index d737a1f31202..6992f3f4cf0c 100755 --- a/docker_db.sh +++ b/docker_db.sh @@ -727,13 +727,23 @@ disable_userland_proxy() { } oracle_atps() { + echo "Managing Oracle Autonomous Database..." + export INFO=$(curl -s -k -L -X GET "https://api.atlas-controller.oraclecloud.com/ords/atlas/admin/database?type=autonomous2&hostname=`hostname`" -H 'accept: application/json') + export HOST=$(echo $INFO | jq -r '.database' | jq -r '.host') + export SERVICE=$(echo $INFO | jq -r '.database' | jq -r '.service') + export PASSWORD=$(echo $INFO | jq -r '.database' | jq -r '.password') + + curl -k -s -X POST "https://${HOST}.oraclevcn.com:8443/ords/admin/_/sql" -H 'content-type: application/sql' -H 'accept: application/json' -basic -u admin:${PASSWORD} --data-ascii "create user hibernate_orm_test_$RUNID identified by \"Oracle_19_Password\" DEFAULT TABLESPACE DATA TEMPORARY TABLESPACE TEMP;alter user hibernate_orm_test_$RUNID quota unlimited on data;grant CREATE SESSION, RESOURCE, CREATE VIEW, CREATE SYNONYM to hibernate_orm_test_$RUNID;" +} + +oracle_atps_tls() { echo "Managing Oracle Autonomous Database..." export INFO=$(curl -s -k -L -X GET "https://api.atlas-controller.oraclecloud.com/ords/atlas/admin/database?type=autonomous&hostname=`hostname`" -H 'accept: application/json') export HOST=$(echo $INFO | jq -r '.database' | jq -r '.host') export SERVICE=$(echo $INFO | jq -r '.database' | jq -r '.service') export PASSWORD=$(echo $INFO | jq -r '.database' | jq -r '.password') - curl -s -X POST "https://${HOST}.oraclecloudapps.com/ords/admin/_/sql" -H 'content-type: application/sql' -H 'accept: application/json' -basic -u admin:${PASSWORD} --data-ascii "create user hibernate_orm_test_$RUNID identified by \"Oracle_19_Password\" DEFAULT TABLESPACE DATA TEMPORARY TABLESPACE TEMP;alter user hibernate_orm_test_$RUNID quota unlimited on data;grant CREATE SESSION, RESOURCE, CREATE VIEW, CREATE SYNONYM, CREATE ANY INDEX, EXECUTE ANY TYPE to hibernate_orm_test_$RUNID;" + curl -s -X POST "https://${HOST}.oraclecloudapps.com/ords/admin/_/sql" -H 'content-type: application/sql' -H 'accept: application/json' -basic -u admin:${PASSWORD} --data-ascii "create user hibernate_orm_test_$RUNID identified by \"Oracle_19_Password\" DEFAULT TABLESPACE DATA TEMPORARY TABLESPACE TEMP;alter user hibernate_orm_test_$RUNID quota unlimited on data;grant CREATE SESSION, RESOURCE, CREATE VIEW, CREATE SYNONYM, CREATE DOMAIN to hibernate_orm_test_$RUNID;" } oracle_db19c() { diff --git a/gradle/databases.gradle b/gradle/databases.gradle index f97dadd08433..11bc29bf0220 100644 --- a/gradle/databases.gradle +++ b/gradle/databases.gradle @@ -177,6 +177,19 @@ ext { 'jdbc.url' : 'jdbc:oracle:thin:@(description=(retry_count=5)(retry_delay=1)(address=(protocol=tcps)(port=1521)(host=' + dbHost + '.oraclecloud.com))(connect_data=(service_name=' + dbService + '_tp.adb.oraclecloud.com))(security=(ssl_server_dn_match=no)))?oracle.jdbc.enableQueryResultCache=false&oracle.jdbc.thinForceDNSLoadBalancing=true&tcp.nodelay=yes', 'connection.init_sql' : '' ], + oracle_cloud_autonomous : [ + 'db.dialect' : 'org.hibernate.dialect.OracleDialect', + 'jdbc.driver': 'oracle.jdbc.OracleDriver', + 'jdbc.user' : 'hibernate_orm_test_' + runID, + 'jdbc.pass' : 'Oracle_19_Password', + // Requires dbHost (pointing to the right cloud region) AND dbService (unique database name). + // To avoid hibernate-spatial tests failure, JVM must be enabled as stated in documentation: + // https://docs.oracle.com/en/cloud/paas/autonomous-database/adbsa/autonomous-oracle-java.html + 'jdbc.url' : 'jdbc:oracle:thin:@(description=(retry_count=5)(retry_delay=1)(address=(protocol=tcp)(port=1521)(host=' + dbHost + '.oraclevcn.com))(connect_data=(service_name=' + dbService + '_tp.adb.oraclecloud.com))(security=(ssl_server_dn_match=no)))?oracle.jdbc.enableQueryResultCache=false&oracle.jdbc.thinForceDNSLoadBalancing=true&tcp.nodelay=yes', + 'jdbc.datasource' : 'oracle.jdbc.OracleDriver', +// 'jdbc.datasource' : 'oracle.jdbc.datasource.impl.OracleDataSource', + 'connection.init_sql' : '' + ], oracle_cloud_db19c : [ 'db.dialect' : 'org.hibernate.dialect.OracleDialect', 'jdbc.driver': 'oracle.jdbc.OracleDriver', diff --git a/settings.gradle b/settings.gradle index f5d4e5a16457..5773007b93c5 100644 --- a/settings.gradle +++ b/settings.gradle @@ -219,7 +219,7 @@ dependencyResolutionManagement { def mariadbVersion = version "mariadb", "2.7.9" def mssqlVersion = version "mssql", "12.2.0.jre11" def mysqlVersion = version "mysql", "8.2.0" - def oracleVersion = version "oracle", "23.3.0.23.09" + def oracleVersion = version "oracle", "23.8.0.25.04" def oracleLegacyVersion = version "oracleLegacy", "11.2.0.4" def pgsqlVersion = version "pgsql", "42.6.0" def sybaseVersion = version "sybase", "1.3.1"