A couple of points that IMHO seem overly pessimistic:
- Regarding the layer primitives, I see a couple of small patches on the mailing list by David Lloyd that look quite reasonable. They may need some more work, but with Oracle’s help that can surely by done.
- I don’t see any calls that reverting strong encapsulation is a prerequisite for compromise.
- Cyclic dependencies are only required at runtime and it seems like this is a real issue for large module graphs. It also looks like a very minor change that does not hurt any compile-time guarantees. It should be easy to compromise on that point, even if Oracle does not agree with it.
- Red Hat proposed module isolation with an opt-in flag and a patch is also presented on the mailing list. While this is the most difficult topic, I don’t see this as insurmountable if Oracle starts working together with Red Hat.
The main question is whether Oracle wants to accommodate these changes or not. A question for you: Do you really think that Oracle would back out the entire JPMS in Java 9 if the next vote fails? IMO they would just release it as an OpenJDK implementation detail and ignore the JCP vote.