From the latest Nov/Dec 2017 Java Magazine (viewing of their terrible reader, or downloading a PDF with no bookmarks, only works in Chrome):
In an unexpected and widely applauded move, Oracle announced just before the JavaOne conference this year that it would be moving development of Java EE to the open source community.
This action, efectively unthinkable a few years ago, is being done by giving control of development technologies and of project governance to the Eclipse Foundation. Included in this transition are the full source code of the diferent reference implementations and of the many test suites that ensure conformance and compliance with Java EE speciication requirements.
This migration shows emphatically that Oracle is giving the technology to the community. That is, this move should not be confused with the occasional dumping of technologies to open source foundations by companies no longer interested in supporting them—a phenomenon known as “abandon-ware.”
Spin, spin, spin the Oracle death spiral! But given the state of J2EE, I can't really mourn its impending demise.
I only rarely have to touch Java anymore, and the JavaFX front-end stuff is pretty weird from my old AWT/early Swing perspective, but my old Java games still work, and all the server side and image processing, which are all I use it for now, had been nice and stable.
But look at this nonsense for CDI (Context and Dependency Injection) 2.0 replacing JSF/Spring/Hibernate (which weren't lovely to start with), they want you to use:
public class CdiExtension implements Extension {
public void afterBean(@Observes AfterBeanDiscovery afterBeanDiscovery) {
afterBeanDiscovery
.addBean()
.scope(ApplicationScoped.class)
.types(MyBean.class)
.id("Created by " + CdiExtension.class)
.createWith(e -> new MyBeanImpl("Hi!"));
}
}
The actual work is new MyBeanImpl("Hi!")
, which you could do in one line in a startup script/class, without this giant framework. At least with all the XML nonsense in Spring or JSF, you could change it at runtime instead of recompiling the project.