MRI projects in churn

Robert Varga

Hey everyone, especially those working on ODL
We are currently transitioning to JDK17 as part of Chlorine MRI bump.
Unfortunately we are at this point 11 days past the deadline, so things are moving quickly. The reason for that is because JDK17 is giving us Sealed Classes.

Sealing an abstract class or an interface is, strictly speaking, an API-breaking change. While it does not break users per se, it can break them in two cases:
- they are using switch expressions, in which case making a class sealed can expose the user to new exhaustiveness checks: suddenly a switch expression may become exhaustive without a 'default' branch superfluous and unreachable (which is good) causing a build failure (which is bad)
- they are mocking or otherwise creating new subclasses/implementations of sealed classes/interfaces.

Hence this work needs to occur in parallel, which unfortunately also inflicts an autorelease-like dev experience on people working on breaking edge MRI.

Most of the breaking stuff is in, but nevertheless there may be times when your (or jenkins.odl) build breaks. If that happens, please retry with 'mvn -U' to get latest snapshots. If it's jenkins or -U does not help, please ping me -- I am trying to keep up with this, but there will be things I miss.

I expect things to begin to settle down in about a week, with ETA to normal integration being a week after that. I'll keep you posted here.

At the moment this pertains to odlparent, yangtools, mdsal and controller, all of which require JDK17 to build. infrautils is joining the party soon. aaa, netconf and bgpcep will follow.

Sorry about the inconvenience,