I have OpenCue building and running with OpenJDK11, SpringBoot 2.1.5, Gradle 5.4.1 locally and within Docker! Was easier than I thought it would be.
I was thinking that, before we look at the scheduler/dispatcher, it might be beneficial to simplify/cleanup as much as possible.
1. Track-It stuff.
Can the track-it data source and just about everything associated with it be removed for now in favor of a future external prioritization interface? The scheduler could hit an external service to grab similar data and we’ll publish a REST interface people would implement in order to build a prioritization service. We won’t even need to store it in tables anymore, so that stuff can go as well.
2. Can we just delete everything related to Oracle?
Postgres is totally fine for this (better IMHO), and has no problems with a NetApp or any decent NFS implementation as backend storage. If people need enterprise support to help out with disaster recovery on-prem, there is the Postgres based Enterprise DB. Backups and HA are easily configurable for Postgres in Google Cloud SQL as well.
3. All the XML files
Burn them with fire and switch to annotation based configuration.
4. Logging stuff.
Switch to LogBack which, will be a giant pull request where the import for org.apache.log4j.Logger changes to something else, though that something is API compatible. Logback is the default for spring boot, much easier to configure stuff like log rotation, external logging aggregators, etc.
5. Java boiler plate.
I think all the getters/setters can all be removed form the service/dao beans as is right now and IoC will still be able to wire up the app. We can also move to constructor injection which lets you finalize all those dependencies as well.
6. ActiveMQ / JMS
Remove it for now but but bring it back as an external plugin. With spring, as long as you package the jar properly, you can load load external plugins at runtime. These plugins would have to be packaged as Spring Boot starters, which is basically just a file in src/main/resources that tells Spring where to search for beans.
I can submit a bunch of pulls for these 6 things plus the JDK11/SpringBoot 2.1.5 stuff which is mainly the gradle build file and Docker file.