From 8e57195a89218e2fd23b7cb2280465e108384c4c Mon Sep 17 00:00:00 2001 From: Philipp Salvisberg Date: Tue, 16 Jun 2026 19:31:06 +0200 Subject: [PATCH 1/6] bump dependencies to JDK 17, SQLDev 23.3.1 and more --- sqldev/pom.xml | 178 +++++++++++++++++++++++-------------------------- 1 file changed, 82 insertions(+), 96 deletions(-) diff --git a/sqldev/pom.xml b/sqldev/pom.xml index 770a931..833a7dc 100644 --- a/sqldev/pom.xml +++ b/sqldev/pom.xml @@ -6,19 +6,15 @@ org.utplsql org.utplsql.sqldev - 1.4.2-SNAPSHOT + 2.0.0-SNAPSHOT bundle UTF-8 - 8 - 17 - - - /Applications/SQLDeveloper21.4.3.app/Contents/Resources/sqldeveloper + 17 + 24.3.1 + + /Applications/SQLDeveloper${sqldev.version}.app/Contents/Resources/sqldeveloper utplsql_for_SQLDev_${project.version} - - - -noverify -Djava.util.logging.config.file=${project.basedir}/src/test/resources/logging.conf @@ -28,140 +24,147 @@ oracle idert - 12.2.1 + ${sqldev.version} system ${sqldev.basedir}/ide/lib/idert.jar oracle oracle.javatools-nodeps - 12.2.1 + ${sqldev.version} system ${sqldev.basedir}/external/oracle.javatools-nodeps.jar oracle javatools - 12.2.1 + ${sqldev.version} system ${sqldev.basedir}/ide/lib/javatools.jar oracle oracle.ide.ceditor - 12.2.1 + ${sqldev.version} system ${sqldev.basedir}/ide/extensions/oracle.ide.ceditor.jar oracle oracle.ide - 12.2.1 + ${sqldev.version} system ${sqldev.basedir}/ide/extensions/oracle.ide.jar oracle uic - 12.2.1 + ${sqldev.version} system ${sqldev.basedir}/ide/lib/uic.jar oracle oracle.ide.navigator - 12.2.1 + ${sqldev.version} system ${sqldev.basedir}/ide/extensions/oracle.ide.navigator.jar oracle javax-ide - 12.2.1 + ${sqldev.version} system ${sqldev.basedir}/ide/lib/javax-ide.jar oracle oracle.dbtools-common - 21.4.1 + ${sqldev.version} system ${sqldev.basedir}/sqldeveloper/lib/dbtools-common.jar + + oracle + oracle.dbtools-arbori + ${sqldev.version} + system + ${sqldev.basedir}/sqldeveloper/lib/dbtools-arbori.jar + oracle oracle.sqldeveloper - 21.4.2 + ${sqldev.version} system ${sqldev.basedir}/sqldeveloper/extensions/oracle.sqldeveloper.jar oracle oracle.sqldeveloper.utils - 21.4.2 + ${sqldev.version} system ${sqldev.basedir}/sqldeveloper/extensions/oracle.sqldeveloper.utils.jar oracle oracle.sqldeveloper.worksheet - 21.4.2 + ${sqldev.version} system ${sqldev.basedir}/sqldeveloper/extensions/oracle.sqldeveloper.worksheet.jar oracle oracle.sqldeveloper.schemabrowser - 21.4.2 + ${sqldev.version} system ${sqldev.basedir}/sqldeveloper/extensions/oracle.sqldeveloper.schemabrowser.jar oracle - ojdbc8 - 21.4.0 + ojdbc11 + ${sqldev.version} system - ${sqldev.basedir}/jdbc/lib/ojdbc8.jar + ${sqldev.basedir}/jdbc/lib/ojdbc11.jar oracle dbapi - 21.4.2 + ${sqldev.version} system ${sqldev.basedir}/ide/lib/dbapi.jar oracle oracle.ide.db - 21.4.2 + ${sqldev.version} system ${sqldev.basedir}/ide/extensions/oracle.ide.db.jar oracle oracle.jdeveloper.db.connection - 21.4.2 + ${sqldev.version} system ${sqldev.basedir}/jdev/extensions/oracle.jdeveloper.db.connection.jar oracle oracle.jdeveloper.java.core.jar - 12.2.1 + ${sqldev.version} system ${sqldev.basedir}/jdev/extensions/oracle.jdeveloper.java.core.jar oracle oracle.jdeveloper.runner.jar - 12.2.1 + ${sqldev.version} system ${sqldev.basedir}/jdev/extensions/oracle.jdeveloper.runner.jar oracle oracle.ide.runner - 12.2.1 + ${sqldev.version} system ${sqldev.basedir}/ide/extensions/oracle.ide.runner.jar @@ -169,7 +172,7 @@ oracle javatools-nodeps - 12.2.1 + ${sqldev.version} system ${sqldev.basedir}/modules/oracle.javatools/javatools-nodeps.jar @@ -177,14 +180,14 @@ oracle jewt4.jar - 12.2.1 + ${sqldev.version} system ${sqldev.basedir}/modules/oracle.bali.jewt/jewt4.jar oracle share.jar - 12.2.1 + ${sqldev.version} system ${sqldev.basedir}/modules/oracle.bali.share/share.jar @@ -199,7 +202,7 @@ org.osgi org.osgi.core - 5.0.0 + 6.0.0 provided @@ -207,19 +210,19 @@ org.springframework spring-jdbc - 5.3.22 + 7.0.8 org.springframework spring-core - 5.3.22 + 7.0.8 org.springframework spring-web - 5.3.22 + 7.0.8 @@ -237,7 +240,7 @@ org.jetbrains annotations - 23.0.0 + 26.1.0 compile @@ -263,10 +266,33 @@ + + org.apache.maven.plugins + 3.15.0 + maven-compiler-plugin + + ${jdk.version} + + + + org.apache.maven.plugins + maven-resources-plugin + 3.5.0 + + + org.apache.maven.plugins + maven-install-plugin + 3.1.4 + + + org.apache.maven.plugins + maven-deploy-plugin + 3.1.4 + org.apache.maven.plugins maven-surefire-plugin - 2.22.2 + 3.5.6 @@ -407,7 +433,7 @@ org.apache.felix maven-bundle-plugin - 5.1.7 + 6.0.2 true ${project.name} @@ -450,7 +476,8 @@ org.aspectj.runtime, org.aspectj.lang.reflect, org.springframework.core.style, - org.springframework.lang + org.springframework.lang, + org.jspecify.annotations <_noee>true @@ -477,7 +504,7 @@ maven-assembly-plugin - 3.4.1 + 3.8.0 ${final.name} false @@ -513,7 +540,7 @@ org.jacoco jacoco-maven-plugin - 0.8.8 + 0.8.15 @@ -579,12 +606,21 @@ org.codehaus.mojo buildnumber-maven-plugin - 3.0.0 + 3.3.0 - + + + + + org.javassist + javassist + 3.30.2-GA + + + org.utplsql.sqldev Extension for running unit tests in SQL Developer. @@ -625,54 +661,4 @@ master https://github.com/utPLSQL/utPLSQL-SQLDeveloper - - - - - - default - - true - - - - - org.apache.maven.plugins - 3.10.1 - maven-compiler-plugin - - - - ${jdk.version} - ${jdk.test.version} - - - - - - - idea - - false - - idea.maven.embedder.version - - - - - - org.apache.maven.plugins - 3.10.1 - maven-compiler-plugin - - - - ${jdk.test.version} - ${jdk.test.version} - - - - - - From f0e44a0cad07fcc712bd783200848db9b6d8ad20 Mon Sep 17 00:00:00 2001 From: Philipp Salvisberg Date: Tue, 16 Jun 2026 19:32:03 +0200 Subject: [PATCH 2/6] update test JDBC properties for local OracleDB 26ai --- sqldev/src/test/resources/test.properties | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sqldev/src/test/resources/test.properties b/sqldev/src/test/resources/test.properties index 9c71960..8ddd39f 100644 --- a/sqldev/src/test/resources/test.properties +++ b/sqldev/src/test/resources/test.properties @@ -1,7 +1,7 @@ # properties to connect to Oracle Database using JDBC thin driver -host=fillmore +host=127.0.0.1 port=1521 -service=odb.docker +service=freepdb1 # oracle users scott_username=scott From 97775afb0508f422d7404c8fe1c7243da2ee6825 Mon Sep 17 00:00:00 2001 From: Philipp Salvisberg Date: Tue, 16 Jun 2026 19:32:38 +0200 Subject: [PATCH 3/6] need to pass types array with updated database dependencies --- sqldev/src/main/java/org/utplsql/sqldev/dal/UtplsqlDao.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sqldev/src/main/java/org/utplsql/sqldev/dal/UtplsqlDao.java b/sqldev/src/main/java/org/utplsql/sqldev/dal/UtplsqlDao.java index 5282b46..605d376 100644 --- a/sqldev/src/main/java/org/utplsql/sqldev/dal/UtplsqlDao.java +++ b/sqldev/src/main/java/org/utplsql/sqldev/dal/UtplsqlDao.java @@ -241,7 +241,8 @@ public boolean containsUtplsqlTest(final String owner, final String objectName, sb.append(" AND (item_name = upper(?) or ? IS NULL)\n"); final String sql = sb.toString(); final Object[] binds = new Object[] {owner, objectName, subobjectName, subobjectName}; - final Integer found = jdbcTemplate.queryForObject(sql, Integer.class, binds); + final int[] types = new int[] {Types.VARCHAR, Types.VARCHAR, Types.VARCHAR, Types.VARCHAR}; + final Integer found = jdbcTemplate.queryForObject(sql, binds, types, Integer.class); return found != null && found > 0; } else { // using internal API (deprecated, not accessible in latest version) From 313cd5a5d56421ad6501ca658461e73099401bc9 Mon Sep 17 00:00:00 2001 From: Philipp Salvisberg Date: Tue, 16 Jun 2026 19:33:43 +0200 Subject: [PATCH 4/6] increase tolerance to reduce test flakiness --- .../sqldev/test/dal/RealtimeReporterFetchSizeTest.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sqldev/src/test/java/org/utplsql/sqldev/test/dal/RealtimeReporterFetchSizeTest.java b/sqldev/src/test/java/org/utplsql/sqldev/test/dal/RealtimeReporterFetchSizeTest.java index a68e4b2..7bdfab6 100644 --- a/sqldev/src/test/java/org/utplsql/sqldev/test/dal/RealtimeReporterFetchSizeTest.java +++ b/sqldev/src/test/java/org/utplsql/sqldev/test/dal/RealtimeReporterFetchSizeTest.java @@ -100,7 +100,7 @@ private void delayFreeStreamingConsumtionProducer(final String reporterId) { @Test public void delayFreeStreamingConsumtion() { - final long TOLERANCE_MS = 600; + final long TOLERANCE_MS = 2000; SingleConnectionDataSource ds = new SingleConnectionDataSource(); ds.setDriverClassName("oracle.jdbc.OracleDriver"); ds.setUrl(dataSource.getUrl()); @@ -114,7 +114,7 @@ public void delayFreeStreamingConsumtion() { thread.start(); dao.consumeReport(reporterId, consumer); logger.fine(consumer.getPostTestEvents().toString()); - Assert.assertEquals(5, consumer.getPostTestEvents().entrySet().size()); + Assert.assertEquals(5, consumer.getPostTestEvents().size()); final Long test_1_0 = consumer.getPostTestEvents().get("junit_utplsql_fetch_size_pkg.test_1_0"); final Long test_2_1 = consumer.getPostTestEvents().get("junit_utplsql_fetch_size_pkg.test_2_1"); final Long test_3_2 = consumer.getPostTestEvents().get("junit_utplsql_fetch_size_pkg.test_3_2"); From c390f7df5089a121253da32348d68a0944e29589 Mon Sep 17 00:00:00 2001 From: Philipp Salvisberg Date: Tue, 16 Jun 2026 19:53:37 +0200 Subject: [PATCH 5/6] update how to build section of README.md --- README.md | 35 ++++++++++++++++++----------------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/README.md b/README.md index f29cec0..fa77ed4 100644 --- a/README.md +++ b/README.md @@ -2,11 +2,11 @@ ## Introduction -utPLSQL for SQL Developer extends Oracle's SQL Developer to +utPLSQL for SQL Developer extends Oracle's SQL Developer to * run utPLSQL unit tests * debug utPLSQL unit tests -* run utPLSQL code coverage reports +* run utPLSQL code coverage reports * generate utPLSQL unit tests (skeletons) * provide utPLSQL annotations and expectations as snippets @@ -18,7 +18,7 @@ In the Connections window, select a connection or one or more packages or packag ### Debug utPLSQL test -Select the tests to debug, the same way you would if you were just running them, but select `Debug utPLSQL test...` in the context menu. +Select the tests to debug, the same way you would if you were just running them, but select `Debug utPLSQL test...` in the context menu. And then the PL/SQL Debugger is called for the generated, anonymous PL/SQL block. @@ -32,11 +32,11 @@ The initialization timeout for the realtime reporter is increased to 1 hour. The In the Connections window, select a connection or one or more packages for a code coverage report. -In the dialog you can set some parameters. If you run code coverage for a few chosen packages or from the PL/SQL editor the objects to be included are determined according the object dependencies in the Oracle data dictionary. +In the dialog you can set some parameters. If you run code coverage for a few chosen packages or from the PL/SQL editor the objects to be included are determined according the object dependencies in the Oracle data dictionary. ![Code coverage dialog](images/code_coverage_dialog.png) -Press `Run` to produce the code coverage process in the background. You may minimize or close the dialog. To abort the process, press `Cancel`. +Press `Run` to produce the code coverage process in the background. You may minimize or close the dialog. To abort the process, press `Cancel`. The HTML report is shown in your default browser. @@ -89,7 +89,7 @@ utPLSQL for SQL Developer implements the [OddgenGenerator2 interface](https://ww * run existing utPLSQL test suitepaths and test suites * bulk generate new utPLSQL unit tests into dedicated files -The use of [oddgen for SQL Developer](https://www.oddgen.org/) is optional. +The use of [oddgen for SQL Developer](https://www.oddgen.org/) is optional. #### Run utPLSQL test @@ -128,6 +128,7 @@ Binary releases are published [here](https://github.com/utPLSQL/utPLSQL-SQLDevel 4. Use the ```Search Update Center``` option and select the ```salvis.com``` update center to install the lastest version of ```utPLSQL for SQL Developer```. ## Issues + Please file your bug reports, enhancement requests, questions and other support requests within [Github's issue tracker](https://help.github.com/articles/about-issues/). * [Questions](https://github.com/utPLSQL/utPLSQL-SQLDeveloper/issues?q=is%3Aissue+label%3Aquestion) @@ -142,23 +143,23 @@ Please file your bug reports, enhancement requests, questions and other support 3. [Create a branch](https://help.github.com/articles/creating-and-deleting-branches-within-your-repository/), commit and publish your changes and enhancements 4. [Create a pull request](https://help.github.com/articles/creating-a-pull-request/) -## How to Build ## How to Build -1. [Download](http://www.oracle.com/technetwork/developer-tools/sql-developer/downloads/index.html) and install SQL Developer 21.4.3 -2. [Download](https://maven.apache.org/download.cgi) and install Apache Maven 3.8.6 -3. [Download](https://git-scm.com/downloads) and install a git command line client -4. Clone the utPLSQL-SQLDeveloper repository -5. Open a terminal window in the utPLSQL-SQLDeveloper root folder and type +1. [Download](http://www.oracle.com/technetwork/developer-tools/sql-developer/downloads/index.html) and install SQL Developer 24.3.1 +2. Download and install a JDK 17 or newer +3. [Download](https://maven.apache.org/download.cgi) and install Apache Maven 3.9.16 +4. [Download](https://git-scm.com/downloads) and install a git command line client +5. Clone the utPLSQL-SQLDeveloper repository +6. Open a terminal window in the utPLSQL-SQLDeveloper root folder and type - cd sqldev + cd sqldev -6. Run maven build by the following command +7. Run maven build by the following command - mvn -Dsqldev.basedir=/Applications/SQLDeveloper21.4.3.app/Contents/Resources/sqldeveloper -DskipTests=true clean package + mvn -Dsqldev.basedir=/Applications/SQLDeveloper24.3.1.app/Contents/Resources/sqldeveloper -DskipTests=true clean package - Amend the parameter sqldev.basedir to match the path of your SQL Developer installation. This folder is used to reference Oracle jar files which are not available in public Maven repositories -7. The resulting file ```utplsql_for_SQLDev_x.x.x-SNAPSHOT.zip``` in the ```target``` directory can be installed within SQL Developer + Amend the parameter sqldev.basedir to match the path of your SQL Developer installation. This folder is used to reference Oracle jar files which are not available in public Maven repositories +8. The resulting file ```utplsql_for_SQLDev_x.x.x-SNAPSHOT.zip``` in the ```target``` directory can be installed within SQL Developer ## License From 6667a187225b142da74e46078e1e6dc570860be3 Mon Sep 17 00:00:00 2001 From: Philipp Salvisberg Date: Tue, 16 Jun 2026 20:22:51 +0200 Subject: [PATCH 6/6] consistent translation of failures, fixes #161 --- .../org/utplsql/sqldev/resources/UtplsqlResources_de.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sqldev/src/main/resources/org/utplsql/sqldev/resources/UtplsqlResources_de.properties b/sqldev/src/main/resources/org/utplsql/sqldev/resources/UtplsqlResources_de.properties index 7691dcb..7c9661b 100644 --- a/sqldev/src/main/resources/org/utplsql/sqldev/resources/UtplsqlResources_de.properties +++ b/sqldev/src/main/resources/org/utplsql/sqldev/resources/UtplsqlResources_de.properties @@ -89,7 +89,7 @@ RUNNER_DESCRIPTION_LABEL=Beschreibung RUNNER_START_LABEL=Start RUNNER_ASSERT_DESCRIPTION_COLUMN=Assert Beschreibung (gescheiterte Zeile) RUNNER_TEST_TAB_LABEL=Test/Suite -RUNNER_FAILURES_TAB_LABEL=Misserfolge +RUNNER_FAILURES_TAB_LABEL=Fehlschl\u00e4ge RUNNER_ERRORS_TAB_LABEL=Fehler RUNNER_WARNINGS_TAB_LABEL=Warnungen RUNNER_INFO_TAB_LABEL=Info