I was wondering, too, why the javax.el / jakarta.el classes are shaded. Usually one does this to prevent other versions on the classpath from breaking functionality, e.g. like it is done with Google Gson in the engine, too. The EL Api should not be affected by something like this, but I think they did this so they can interchange the javax.* and the jakarta.* packages internally, while not exposing either of them to the API?
I’m not an expert on this specific issue, but from my understanding, these javax classes have been marked as deprecated since JDK 9. It might be best to remove support for them altogether. This aligns with our decision to raise the minimum Java version and adhere to standard support timelines set by the upstream dependency projects.
I also think that this was done for compatibility reasons. In a “normal” project you could just add the new jakarta API as a dependency, but for older application servers (Wildfly, Weblogic, etc). this was not that easy, or would mess with the integration. I’m in favor of adjusting this and removing the javax.* support.
We need to keep in mind that the shaded classes are part of some modules API unfortunately, so this needs to be mentioned in a migration guide “Camunda → Operaton” and encoded in the planned OpenRewrite script, too.
I totally understand why C7 continues to support these older environments. My guess is that they have customers willing to pay for those extended “enterprise support lifecycles” For those customers, sticking with C7 or transitioning to C7-EE seems like the most logical choice.
That said, using outdated software under long-term support agreements tends to get increasingly expensive for enterprises.
But this cannot be in the scope of this project, we need to stick to standard support cycles with our limited resources.
Cutting these weak ropes is also a big chance for Operaton. We can more easily adjust to new standards and support modern environments. It helps to modernize the code base and shift it to the next level eventually. Customers who seek for a modern BPMN engine, especially in embedded and on-prem installations, will find in Operaton the product they can rely on.