|Re: [ee4j-community] Eclipse Jetty and EE4J|
While I agree that having a single RI has drawbacks, there's also a big problem if we go without a single RI – complexity for beginners.
Currently, if people want to start with JavaEE they tart with Glassfish as the RI. Most tutorials for beginners use Glassfish. It makes sense because newcomers like to have consistency and they tend to perceive JavaEE as a framework ready to be used instead of a common set of specs. For them, it's hard to understand between specs and implementations.
I think it's safer to retain a single RI as a reference for newcomers until we find a better way to make the platform user-friendly. As Steve Millidge, the CEO of Payara explained, Glassfish still has it's value as the RI and Payara Server doesn't aspire to replace it. In some way, It's good that Glassfish isn't supported in production and no vendor is behind it.
What's not good is that Glassfish, while a great app server with lots of added value, provides a lot more than what's standardized. The RI in my view should contain only the necessary minimum and be modular and pluggable so that it can be easily reused, either as a whole or its components.
If we decide to go with just any or more RIs, then we should also specify basic behavior like app deployment, maven project setup, configuration of standard resources so that all RIs behave the same and the only difference for newcomers is a different maven dependency. Anything more complex is a pain for starters. I would like to avoid any fragmentation of elementary learning resources.
I think we're all basically saying the same. "No RI" seems equivalent "at least one, but not limited to, one RI".
Nobody wants a finished spec without a complaint implementation. The idea of the single RI made sense with a somewhat private process and closed source RIs where maybe even some EG members didn't have access to it. But a truly open process means everyone has the same rights and has access from minute 1 to everything.
I also expect to see more specifications being co-lead by multiple vendors, which will presumably like to have each their own implementation marked as the "Reference" implementation. The reference implementations for a spec version could be defined at the beginning and then the spec would be finished when the RIs are done.
More response inline.
El sáb., 14 oct. 2017 a las 23:45, Greg Wilkins (<gregw@xxxxxxxxxxx>) escribió:
It's interesting to me that certified Java EE servers are only tested for one version on some specific environments (http://www.oracle.com/technetwork/java/javaee/overview/compatibility-jsp-136984.html). That means GlassFish 4.0 is Java EE 7 compatible, what we know nothing about GlassFish 4.1.
I support your idea of specific versions being considered the RI, but open TCKs will make it easy for users to test themselves. Probably most vendors will even run TCK tests as part of their CI pipelines, making the RI "upgradeable".
Anyway it's definitely an interesting thought.
Back to the top