Foreword
It is a measure of the penetration, longevity, and quality of Java EE technology that in 2018 my friend Elder Moraes asked me to write the foreword for his book about Java EE 8. My personal involvement with Java EE goes back to the days preceding J2EE 1.4 in 2001. Since then, I have had the great honor of leading or co-leading the community teams that have developed JavaServer Faces and, later, servlet, two of the technologies Elder covers in this book. During that time, I tried to follow the model of servant-leader, and I think the result has been a very engaged community that has a real stake in the continued success of Java EE.
When writing this foreword, I want to focus on four Cs: Curation, Cohesion, Current, and Completeness. So much has been written about Java EE over the years, and continues to be written, that the task of writing a book, particularly one in the useful "cookbook" format, involves a lot of curation. From the set of all possible things that people are doing with Java EE, which is vast, Elder has presented a curation of what he thinks are the most useful and essential ones. Elder is well positioned to decide what goes in and what stays out. Elder has been consulting and working with Java EE for nearly as long as I have, but from the more practical perspective of the user.
Technical books that follow the cookbook pattern frequently suffer from a feeling of disjointness. Not this book. Elder has put a great deal of effort into ensuring cohesion. Over the years, the technologies of Java EE have sometimes been criticized for not being cohesive enough with each other. This is something Sun made a conscious effort to address starting with Java EE 6, and which Oracle continued on to Java EE 8. Elder has leveraged this effort to seek out and present the best way to leverage the synergy of all the technologies of Java EE 8 to maximum effect.
The world outside Java EE has continued to evolve, and this has changed the way people use Java EE dramatically. The challenge for any architect on a multiyear software effort, with a service lifetime of at least a decade, is how to keep it maintainable even while the surrounding technology landscape changes. Elder has accounted for this with two excellent chapters about microservices and Docker. These two technologies provide a great complement to the power of Java EE, but also have numerous pitfalls. Elder helps you avoid the pitfalls while getting the most out of these current trends.
Finally, completeness. Many technology cookbooks stop short of providing "complete reference" sort of material, but Elder goes much deeper. It's almost to the point that the term "cookbook" does not do this book justice. Perhaps, a more correct label would be "complete restaurant management with supply chain logistics and a cookbook on top." Elder covers the current popular app servers on which people are running Java EE, continuous integration and pipelines, reactive programming, and more. Coming back to the curation point, it's all there, and in depth.
I hope you have success with Java EE and with its successor, Jakarta EE from the Eclipse Foundation.
Ed Burns
Consulting Member of Technical Staff at Oracle
Specification Lead of JSF and Servlet