This fixes most of the compilation warnings in both src and buildSrc. What's left are 2 issues. First, Hibernate's NamingStrategy is deprecated, and the rules for replacing it are unclear to me at the moment. Second, The AboutDialog uses a deprecated Jgoodies class, and the nominal replacement is totally different, hence I don't know how to get from here to there.
Eliminated use of Thread.sleep() in RMI unit tests. In doing so, I realized that we have a general need for code that waits for some kind of event to happen or for a timeout to elapse. To this end, I added the TestEventDetector class and used it in the RMI unit test classes. Finally, made Gradle clean depend on a task that sets permissions in build/test to allow build/test to be deleted.
Codebase now builds under Gradle 7.6 with Java 8, and all unit tests pass. Most of the changes are cleanup from either the jaxb / Jakarta migration or from the merge of dev into this branch. A couple of other changes were needed for unit tests. The old hdf5.gradle plugin is now copy-hdf5.gradle. Rationale: for some reason in this version of Gradle, the build fails when hdf5.gradle comes after database-schemas.gradle in the build.gradle file; this is because when database-schemas is applied, the HDF5 copy tasks it depends on aren't yet defined. The solutions to this are to either move hdf5.gradle up in the list (thus breaking the alpha ordering), or else find a new name for hdf5.gradle that preserves alpha ordering but puts it above database-schemas.gradle. Ta-da!
Replaced the javax version of XML binding with Jakarta 3.0, which works with Java 8 and Java 17 (and presumably all the versions in between). Fixed some additional Gradle complaints: replacement of JavaExec main with mainClass.set(), fix some implicit dependencies. Eliminate all uses of new Number() (or Number subclasses), as this capability is deprecated in Java 17. At the moment the RMI unit tests fail, so this can't be considered complete as yet.
Gradle doesn't start to support Java 17 until version 7.3, so as a first step we need to move to a more recent Gradle version. The version in this commit works with Gradle 7.5.1, and the Java code should work for either Java 8 or Java 17. The issue with Java is that the jaxb.xml.bind package is removed from the standard Java distribution after Java 8, so all our XML infrastructure needs to move to a different implementation of the JAXB standard. Here we use Jakarta EE 3.0 along with Globefish, which for some reason isn't automatically pulled in by Gradle and Maven dependency management. Anyway, this is definitely a "Han Solo hits the hyperdrive motivator with a wrench" sort of commit, so there's room for improvement.