The source of new Java EE functionality: CDI and beyond

Java EE is and should be primarily perceived as a set of well though-out standards. Does it mean that it provides mostly outdated stuff ? No ! In fact, Java EE literally wants to be extended with the newest ideas ! Java EE is on it’s own well crafted, however, there is an excellent built-in support for so called Portable extensions. It allows for the new technology to be plugged in easily, without introducing any configuration or dependency mess for the developers. For the plugin authors, plugins are easy to write and can be very, very powerful. And there is already a lot of functionality to choose from. Because extensibility is also part of the standard.

Just remember, new, non-standard functionality does not always have to be a CDI extension. Often, it can be plugged right in.

Portable extensions

Java EE ecosystem is rich and truly open. As an extension user, you can make use of work of many different companies and authors. As an author, you can plug your desired functionality directly into Java EE. In the following list, I am trying to demonstrate that Java EE world is in fact full of innovation. If you have a look at the source code of the projects listed below, you can see for yourself how easy it is to create a plugin.


  • Apache Deltaspike Data - Like Spring Data ? This is better designed !
  • Spring Data - Carries many heavyweight & proprietary Spring dependencies. Can be used if required.
  • JOOQ - This is not a CDI plugin, there is no need. But integrates with Java EE well.
  • MyBatis
  • CDI Query




  • Vaadin - Well-known view framework is very clean to use with Java EE.
  • Ocelotds - The best and easiest communication way between java EE and javascript :)
  • Errai
  • VRaptor - No MVC for Java EE ? This is a very common myth. Besides the new Ozark (MVC 1.0), there is VRaptor ! A clean and tidy MVC integration.
  • AngularBeans - Like AngularJS ? Thanks to this project, Java EE has direct support for it.
  • Thymeleaf-CDI - JSF are great, but if you are used to Thymeleaf, here you go.
  • Thymeleaf-MVC - Thymeleaf also already players with Java EE 8 MVC 1.0 :) There is also (JAX-RS integration](
  • Primefaces - Represents the power of JSF. Primefaces is the ultimate JSF view library. Not only a set of components, but also themes, view utilities and many others.
  • OmniFaces
  • BootsFaces
  • Apache Wicket


There are many others to be found via Google, on GitHub and in many other places. The list goes on and on. For example, Java EE applications can also be rapidly created with JBoss Forge - this is also thanks to CDI and it’s robust model.

Become an author !

Writing CDI extensions is easy. By contributing directly into Java EE, you make sure your code is not tied to a proprietary platform and can be used by widest enterprise audience - Java EE developers. With CDI extensions, you can do just about anything ! Just remember, Java EE is very well designed and not every problem needs to be represented as an extension - this further improves the easiness of coding with Java EE. There are more capable and informed people you can visit and have a look at their great guides about what can be achieved with Java EE + CDI and how to achieve it.

CDI - the cool guy

As you can see, Java EE is a very rich environment. On the shoulders of giants (standards made by very capable people), there are many innovative project that play nicely with Java EE. There is only one thing to be changed soon (hopefuly) - there is no central place to inform newcomers about Java EEs capabilities. Java EE represent a common effort of many companies and individuals. Having a common place to inform about Java EE’s capabilities would be nice.

And many, many others. If you want to get to know more about Java EE, CDI and it’s capabilities, I always recommend Beginning Java EE 7 by Antonio Goncalves. It is the book I recommend to both newcomers are experienced developers. It is a book of great quality, very nicely written. And there is also a “nice” story behind this book.