Update : the book has been published end of June 2013
I have been quiet on my blog lately but there was a reason: I was writing a Beginning Java EE 7 book for APress. I am using the past tense because I’ve finished writing it. I’ve gently started in November 2012 and accelerated the writing pace as I was following the updates of the specifications and reaching the Java EE 7 release dates (which will be on the 12th of June 2013). I still have to go through a final review, APress has to go through the layout and printing process and the book should be out by the 26th of June. Looks like the paper version will be available first and a few days later APress will release the e-book, e-pub and Amazon mobi formats. You can pre-order it on Amazon if you want ;o)
First thing you need to know is that this book is based on my previous one (Beginning Java EE 6). I’ve updated all the chapters and created two new ones (Bean Validation and CDI). I don’t know the exact number of pages yet (only when the page proof is finished) but it should be approximately 550 pages (so that would be a 100 pages extra from the previous book). Here is an overview of the chapters:
- 1 – Java EE 7 at a Glance: Brief overview of Java EE 7 (architecture, components, containers, services…) and it also introduces some new Java SE 7 language features used in the book (string case, diamond, try-with-resources…)
- 2 – Context and Dependency Injection: This is a brand new chapter explaining most features of CDI 1.1 (injection, qualifiers, alternatives, producers and disposers, scopes, interceptors, interceptor binding or prioritizing, decorators, events…)
- 3 – Bean Validation: Again, a new chapter about Bean Validation 1.1 (built-in constraints, class-level constraints, method-level and constructor constraints, groups, validation, error messages…)
- 4 – Java Persistence API: JPA 2.1 being a rich specification, it is introduced in this chapter and is covered in chapter 5 and 6
- 5 – Object-Relational Mapping: Covers most of the ORM capabilities of JPA (attributes, tables, collections, inheritance)
- 6 – Managing Persistent Objects: CRUD operations, JPQL queries, the new store procedure queries, schema generation, entity life-cycle, callbacks and listeners are explained in this chapter
- 7 – Enterprise Java Beans: Decribes EJBs (stateless, stateful, singleton) to build services using JPA, Bean Validation and CDI
- 8 – Callbacks, Timer Service and Authorization: Additional EJB features
- 9 – Transactions: Introduces transactions and shows how to implement them with EJB 3.2 as well as with the new JTA 1.2 @Transaction annotation
- 10 – JavaServer Faces: This chapter introduces JSF 2.2, the way pages are build with components and how to create your own components
- 11 – Processing and Navigation: Explains how to navigate between pages and use CDI backing beans to do some processing (i.e. invoking an EJB layer) with or without Ajax support
- 12 – XML and JSON: This chapter explains how to process XML (using JAXB and JAXP) and JSON (with the new JSON-P specification)
- 13 – JMS: Introduces MOMs and then uses both the Classic and the new Simplified JMS 2.0 API to produce and consume messages as well as MDBs
- 14 – SOAP Web Services: Introduces SOAP and then digs on JAX-WS 2.3 to show how to write and consume a SOAP Web Service
- 15 – RESTful Web Services: After an introduction on REST concepts and the HTTP protocol, this chapter explains who to write a RESTful web services and consume it with the new client API of JAX-RS 2.0
- Appendix A – Setting Up Your Environment: JDK 1.7, Maven 3, JUnit 4, Derby 10.8 and GlassFish 4
Some Java EE 7 technologies are not coverd in the book such as Servlet 3.1, WebSocket 1.0 and Batch 1.0. My integration tests do not use Arquillian but plain Java EE embedded containers. Who knows, I might add them one day in a future edition.
Download the code
Each chapter has plenty of code samples and finishes with a Putting It All Together section. All the code is available on GitHub. It works with the latest build of GlassFish 4. Do not hesitate to check it out, fork it and send me pull/requests or create issues if there’s something wrong.
Writing a book is a hell of work, very stressful and a lonely task. This is my third book about the Java EE platform… and I tell you, to write a third book you need to be a bit crazy… and be surrounded by people who help you in any possible way (so you don’t get totally crazy).
First of all, I really want to thank Steve Anglin from Apress for giving me another opportunity to write for this great edition company. Thanks to the APress team for reviewing the book as well as advising me during the writing process (Jill Balzano, Kathleen Sullivan and James Markham, Massimo Nardone).
A big thank you to my technical team who reviewed all the fifteen chapters and gave me some in-deepth comments: Brice Leporini, Alexis Hassler, Mathieu Ancelin and Antoine Sabot-Durand. I also need to thank Youness Teimoury who coauthored the XML and JSON chapter and who helped me 4 years ago.
The diagrams in the book were made using the Visual Paradigm. I would like to thank both Visual Paradigm and JetBrains for providing me with a free license for their excellent products (and JetBrains for giving me access to alpha features in GlassFish 4 integration into Intellij IDEA).
I could not have written this book without the help and support of the Java community: blogs, articles, mailing lists, forums, Tweets… An particularly those involved in Java EE such as Bill Shannon, Linda DeMichiel, Reza Rahman, Adam Bien, Elias Dorneles, Arnaud Heritier, Nicolas de Loof, Jean-Michel Doudoux, Emmanuel Bernard, Pete Muir, Marek Potociar, Çagatay Çivici and David Gageot.
Give me some feedback
Once you read the book, check the code, go through the Putting It All Together sections… do not hesitate to send me some feedback. I’m always willing to improve it for future editions.
I hope you’ll enjoy the book, learn new things and that it brings new challenges to your projects.
Microsoft Word Rant
I’m using this post to rant about Microsoft Word. APress uses Word during the entire writing, reviewing, page proof process. So I didn’t have much choice except using it. I bought a licence for Mac and felt the pain growing from day one. Writing a 550 pages book is not like writing a couple of pages. I was shocked to see that Word wasn’t scaling and was crashing really often (the max I had was around 40 crashes in one single day). For a piece of software that was created in 1983 and used by millions of people daily, it is a bit scary. I have two messages to address :
- Microsoft, more is not always better. Concentrate on giving a decent text editor with less functionalities, that will do
- APress, I don’t need a WYSIWYG text editor, AsciiDoc will do. And if you really want WYSIWYG, switch to LibreOffice : it’s free and scales much better than Word (I wrote my first book with OpenOffice back in 2006)