diff --git a/.github/workflows/databases.yml b/.github/workflows/databases.yml index 68241fbf22..3b4c9f46bb 100644 --- a/.github/workflows/databases.yml +++ b/.github/workflows/databases.yml @@ -200,3 +200,98 @@ jobs: - name: 'Remove snapshots before caching' if: always() run: find ~/.m2 -name '*SNAPSHOT' | xargs rm -Rf + + hsqldb: + needs: check + if: needs.check.outputs.should_run == 'true' + runs-on: ubuntu-latest + strategy: + fail-fast: false + name: build (Java 21, test-hsqldb) + steps: + - uses: actions/checkout@v7.0.1 + - name: Setup Java JDK + uses: actions/setup-java@v6.0.0 + with: + distribution: 'zulu' + java-version: 21 + - name: 'Cache Maven packages' + uses: actions/cache@v6.1.0 + with: + path: ~/.m2 + key: cache-21-test-hsqldb + restore-keys: cache-21-test-hsqldb + - name: 'Build with Maven' + run: mvn -Ptest-hsqldb -B clean install --file pom.xml + - name: 'Remove snapshots before caching' + if: always() + run: find ~/.m2 -name '*SNAPSHOT' | xargs rm -Rf + + mssql: + needs: check + if: needs.check.outputs.should_run == 'true' + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + version: ['2017-latest', 'latest'] + name: build (Java 21, test-mssql-docker, ${{ matrix.version }}) + services: + mssql: + image: mcr.microsoft.com/mssql/server:${{ matrix.version }} + env: + ACCEPT_EULA: Y + SA_PASSWORD: OpenJP8tst + ports: + - 1433:1433 + steps: + - uses: actions/checkout@v7.0.1 + - name: Setup Java JDK + uses: actions/setup-java@v6.0.0 + with: + distribution: 'zulu' + java-version: 21 + - name: 'Cache Maven packages' + uses: actions/cache@v6.1.0 + with: + path: ~/.m2 + key: cache-21-test-mssql-docker + restore-keys: cache-21-test-mssql-docker + - name: 'Build with Maven' + run: mvn -Ptest-mssql-docker -B clean install --file pom.xml + - name: 'Remove snapshots before caching' + if: always() + run: find ~/.m2 -name '*SNAPSHOT' | xargs rm -Rf + + oracle: + needs: check + if: needs.check.outputs.should_run == 'true' + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + version: ['23-slim'] + name: build (Java 21, test-oracle-docker, ${{ matrix.version }}) + steps: + - uses: actions/checkout@v7.0.1 + - name: Setup Java JDK + uses: actions/setup-java@v6.0.0 + with: + distribution: 'zulu' + java-version: 21 + - name: 'Cache Maven packages' + uses: actions/cache@v6.1.0 + with: + path: ~/.m2 + key: cache-21-test-oracle-docker + restore-keys: cache-21-test-oracle-docker + - name: 'Start Oracle DB v${{ matrix.version }}' + run: mvn -N -B -Ptest-oracle-docker -Doracle.server.version=${{ matrix.version }} docker:start + - name: 'Build with Maven' + run: mvn -Ptest-oracle-docker -B clean install --file pom.xml + - name: 'Stop Oracle DB v${{ matrix.version }}' + if: always() + run: mvn -N -B -Ptest-oracle-docker -Doracle.server.version=${{ matrix.version }} docker:stop + - name: 'Remove snapshots before caching' + if: always() + run: find ~/.m2 -name '*SNAPSHOT' | xargs rm -Rf diff --git a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/kernel/TestPessimisticLockException.java b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/kernel/TestPessimisticLockException.java index 33d24227f7..cbbdaccd1a 100644 --- a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/kernel/TestPessimisticLockException.java +++ b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/kernel/TestPessimisticLockException.java @@ -24,7 +24,6 @@ import org.apache.openjpa.jdbc.conf.JDBCConfiguration; import org.apache.openjpa.jdbc.sql.DB2Dictionary; import org.apache.openjpa.jdbc.sql.DBDictionary; -import org.apache.openjpa.jdbc.sql.OracleDictionary; import org.apache.openjpa.persistence.OpenJPAEntityManager; import org.apache.openjpa.persistence.OpenJPAPersistence; import org.apache.openjpa.persistence.PessimisticLockException; @@ -45,7 +44,7 @@ public void setUp() throws Exception { protected boolean skipTest() { if (emf.getConfiguration() instanceof JDBCConfiguration) { DBDictionary inst = ((JDBCConfiguration) emf.getConfiguration()).getDBDictionaryInstance(); - return !((inst instanceof DB2Dictionary) || (inst instanceof OracleDictionary)); + return !((inst instanceof DB2Dictionary)); } return true; } diff --git a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/query/TestTimeoutException.java b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/query/TestTimeoutException.java index b91ee6a017..ae67737faa 100644 --- a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/query/TestTimeoutException.java +++ b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/query/TestTimeoutException.java @@ -27,6 +27,7 @@ import org.apache.openjpa.jdbc.conf.JDBCConfiguration; import org.apache.openjpa.jdbc.sql.DBDictionary; +import org.apache.openjpa.jdbc.sql.OracleDictionary; import org.apache.openjpa.jdbc.sql.SolidDBDictionary; import org.apache.openjpa.persistence.OpenJPAEntityManagerFactorySPI; import org.apache.openjpa.persistence.exception.PObject; @@ -52,7 +53,7 @@ public void setUp() { assertNotNull(tempEMF); DBDictionary dict = ((JDBCConfiguration)tempEMF.getConfiguration()).getDBDictionaryInstance(); assertNotNull(dict); - if (!dict.supportsSelectForUpdate || !dict.supportsQueryTimeout || dict instanceof SolidDBDictionary) + if (!dict.supportsSelectForUpdate || !dict.supportsQueryTimeout || dict instanceof SolidDBDictionary || dict instanceof OracleDictionary) setTestsDisabled(true); if (emf == null) { diff --git a/openjpa-persistence-locking/src/test/java/org/apache/openjpa/persistence/lockmgr/TestPessimisticLocks.java b/openjpa-persistence-locking/src/test/java/org/apache/openjpa/persistence/lockmgr/TestPessimisticLocks.java index 0486bd5e85..cbbf55c540 100644 --- a/openjpa-persistence-locking/src/test/java/org/apache/openjpa/persistence/lockmgr/TestPessimisticLocks.java +++ b/openjpa-persistence-locking/src/test/java/org/apache/openjpa/persistence/lockmgr/TestPessimisticLocks.java @@ -39,6 +39,7 @@ import org.apache.openjpa.jdbc.sql.DBDictionary; import org.apache.openjpa.jdbc.sql.DerbyDictionary; import org.apache.openjpa.jdbc.sql.InformixDictionary; +import org.apache.openjpa.jdbc.sql.OracleDictionary; import org.apache.openjpa.lib.log.Log; import org.apache.openjpa.persistence.LockTimeoutException; import org.apache.openjpa.persistence.OpenJPAEntityManagerFactorySPI; @@ -71,8 +72,9 @@ public void setUp() { assertNotNull(tempEMF); dict = ((JDBCConfiguration)tempEMF.getConfiguration()).getDBDictionaryInstance(); assertNotNull(dict); - if (!dict.supportsQueryTimeout) + if (!dict.supportsQueryTimeout || dict instanceof OracleDictionary) { setTestsDisabled(true); + } if (emf == null) { closeEMF(tempEMF); }