Java EE 7 First Look
()
About this ebook
Related to Java EE 7 First Look
Related ebooks
Learning .NET High-performance Programming Rating: 0 out of 5 stars0 ratingsSpring 2.5 Aspect Oriented Programming Rating: 0 out of 5 stars0 ratingsJavaScript at Scale Rating: 0 out of 5 stars0 ratingsSpring Data Rating: 0 out of 5 stars0 ratingsNode Web Development, Second Edition Rating: 0 out of 5 stars0 ratingsLearning Network Programming with Java Rating: 0 out of 5 stars0 ratingsJava EE 7 Development with NetBeans 8 Rating: 5 out of 5 stars5/5Python Scripting in Blender: Extend the power of Blender using Python to create objects, animations, and effective add-ons Rating: 0 out of 5 stars0 ratingsThe Java Module System Rating: 4 out of 5 stars4/5LPI Web Development Essentials Study Guide: Exam 030-100 Rating: 0 out of 5 stars0 ratingsGame Programming Using Qt: Beginner's Guide Rating: 0 out of 5 stars0 ratingsProfessional Java EE Design Patterns Rating: 0 out of 5 stars0 ratingsThe Well-Grounded Java Developer: Vital techniques of Java 7 and polyglot programming Rating: 4 out of 5 stars4/5Java Enterprise Design Patterns: Patterns in Java Rating: 2 out of 5 stars2/5Ember.js in Action Rating: 0 out of 5 stars0 ratingsiOS 17 App Development Essentials: Developing iOS 17 Apps with Xcode 15, Swift, and SwiftUI Rating: 0 out of 5 stars0 ratingsApache Maven Cookbook Rating: 0 out of 5 stars0 ratingsMy First Mobile App for Students: A comprehensive guide to Android app development for beginners (English Edition) Rating: 0 out of 5 stars0 ratingsPractical Python Backend Programming Rating: 0 out of 5 stars0 ratingsHaxe Game Development Essentials Rating: 0 out of 5 stars0 ratingsLearning Ext JS - Fourth Edition Rating: 0 out of 5 stars0 ratingsJava Spring Framework: From Basics to Expert Proficiency Rating: 0 out of 5 stars0 ratingsScala for Machine Learning Rating: 0 out of 5 stars0 ratingsGetting Started with Unity 5.x 2D Game Development Rating: 0 out of 5 stars0 ratingsMetaprogramming in .NET Rating: 5 out of 5 stars5/5Swift 2 By Example Rating: 5 out of 5 stars5/5AspectJ in Action: Enterprise AOP with Spring Applications Rating: 0 out of 5 stars0 ratingsLearn C# Programming by Creating Games with Unity Rating: 0 out of 5 stars0 ratingsStruts 2 in Action Rating: 0 out of 5 stars0 ratingsDjango Admin Cookbook Rating: 0 out of 5 stars0 ratings
Programming For You
Python Programming : How to Code Python Fast In Just 24 Hours With 7 Simple Steps Rating: 4 out of 5 stars4/5Python: For Beginners A Crash Course Guide To Learn Python in 1 Week Rating: 4 out of 5 stars4/5Python: Learn Python in 24 Hours Rating: 4 out of 5 stars4/5SQL: For Beginners: Your Guide To Easily Learn SQL Programming in 7 Days Rating: 5 out of 5 stars5/5Grokking Algorithms: An illustrated guide for programmers and other curious people Rating: 4 out of 5 stars4/5Learn Algorithmic Trading: Build and deploy algorithmic trading systems and strategies using Python and advanced data analysis Rating: 0 out of 5 stars0 ratingsLearn Python in 10 Minutes Rating: 4 out of 5 stars4/5SQL QuickStart Guide: The Simplified Beginner's Guide to Managing, Analyzing, and Manipulating Data With SQL Rating: 4 out of 5 stars4/5Coding All-in-One For Dummies Rating: 4 out of 5 stars4/5Python Data Structures and Algorithms Rating: 5 out of 5 stars5/5HTML & CSS: Learn the Fundaments in 7 Days Rating: 4 out of 5 stars4/5Coding with JavaScript For Dummies Rating: 0 out of 5 stars0 ratingsTensorFlow in 1 Day: Make your own Neural Network Rating: 4 out of 5 stars4/5SQL All-in-One For Dummies Rating: 3 out of 5 stars3/5How To Become A Data Scientist With ChatGPT: A Beginner's Guide to ChatGPT-Assisted Programming Rating: 4 out of 5 stars4/5Microservices Architecture Handbook: Non-Programmer's Guide for Building Microservices Rating: 4 out of 5 stars4/5Learn to Code. Get a Job. The Ultimate Guide to Learning and Getting Hired as a Developer. Rating: 5 out of 5 stars5/5Artificial Intelligence with Python Rating: 4 out of 5 stars4/5PYTHON: Practical Python Programming For Beginners & Experts With Hands-on Project Rating: 5 out of 5 stars5/5Learn JavaScript in 24 Hours Rating: 3 out of 5 stars3/5Deep Learning For Dummies Rating: 0 out of 5 stars0 ratingsPython for Finance Cookbook: Over 50 recipes for applying modern Python libraries to financial data analysis Rating: 0 out of 5 stars0 ratingsHTML, CSS, & JavaScript All-in-One For Dummies Rating: 0 out of 5 stars0 ratingsMastering C# and .NET Framework Rating: 5 out of 5 stars5/5Grokking Simplicity: Taming complex software with functional thinking Rating: 4 out of 5 stars4/5
Reviews for Java EE 7 First Look
0 ratings0 reviews
Book preview
Java EE 7 First Look - NDJOBO Armel Fabrice
Table of Contents
Java EE 7 First Look
Credits
About the Author
About the Reviewers
www.PacktPub.com
Support files, eBooks, discount offers and more
Why Subscribe?
Free Access for Packt account holders
Preface
What this book covers
What you need for this book
Who this book is for
Conventions
Reader feedback
Customer support
Downloading the example code
Errata
Piracy
Questions
1. What's New in Java EE 7
A brief history of Java EE
The main goals of Java EE 7
Productivity
HTML5 support
Novelties of Java EE 7
Summary
2. New Specifications
Concurrency Utilities for Java EE 1.0
Why concurrency?
Benefits of concurrency
Risks of concurrency
Concurrency and Java EE
Java EE Concurrency API
Batch Applications for Java Platform 1.0
What is batch processing?
Why a dedicated API for batch processing?
Understanding the Batch API
JobRepository
Job
Step
Chunk
Batchlet
The batch.xml configuration file
JobOperator
Java API for JSON Processing 1.0
What is JSON?
Object
Array
Value
Why JSON?
Java API for JSON processing
The streaming API
The object model API
Java API for WebSocket 1.0
What is WebSocket?
Why WebSocket?
The WebSocket API
Server endpoint
Client endpoint
Summary
3. The Presentation Layer
Servlet 3.1
What is a Servlet?
A login page with a Servlet
Latest improvements of Servlet 3.1 in action
Non blocking I/O API
Protocol upgrade processing
Expression Language 3.0
What is Expression Language?
The latest improvements of EL 3.0 in action
API for standalone environments
Lambda expressions
Collection object support
Collection object construction
Collection operations
String concatenation operator (+=)
Assignment operator (=)
Semi-colon operator (;)
Static fields and methods
JavaServer Faces 2.2
What is JavaServer Faces?
An identification page with JSF
The latest improvements of JSF 2.2 in action
HTML5-friendly markup
Pass-through attributes
Pass-through elements
Resource Library Contracts
Faces Flow
Stateless views
Summary
4. The Java Persistence API
Java Persistence API 2.1
JPA (Java Persistence API)
JPA in action
The latest improvements of JPA 2.1 in action
Persistence context synchronization
Entity
New annotations
Entity graphs
Static or named entity graphs
Dynamic entity graphs
JPQL
Support for stored procedures
New reserved identifiers
Support for creating named queries at runtime
The Criteria API
Support for bulk update/delete
Support for new reserved identifiers
DDL generation
Java Transaction API 1.2
The Java Transaction API
JTA in action
Innovations introduced by JTA 1.2
Summary
5. The Business Layer
Enterprise JavaBeans 3.2
Pruning some features
The latest improvements in EJB 3.2
Session bean enhancement
EJB Lite improvements
Changes made to the TimerService API
Harmonizing with JMS's novelties
Other improvements
Putting it all together
Presenting the project
Use Case Diagram (UCD)
Class diagram
Component diagram
Summary
6. Communicating with External Systems
JavaMail
Sending e-mails in Java
Sending an e-mail via the SMTP protocol
The latest improvements in action
The added annotations
The added methods
The changing of some access modifiers
Java EE Connector Architecture (JCA)
What is JCA?
JCA in action
Latest improvements
Java Message Service (JMS)
When to use JMS
The latest improvements in action
New features
Sending messages asynchronously
Delivery delay
Handling of the JMSXDeliveryCount message property
Simplification of the API
Java API for RESTful Web Services
When to use Web Services
JAX-RS in action
The latest improvements in action
The Client API
Asynchronous processing
Filters and entity interceptors
Filters
Entity interceptors
Summary
7. Annotations and CDI
Common annotations for the Java platform
The goal of this specification
Building your own annotation
Latest improvements in action
The new annotation
Contexts and Dependency Injection
What is CDI ?
Example 1 – instantiation of a POJO
Example 2 – accessing an EJB from a JSF page
Example 3 – setting a bean with a specific scope for simple operations
Example 4 – use of objects usually created by a factory
Latest improvements in action
Avoiding CDI processing on a bean
Accessing the non contexual instance of a bean
Accessing the current CDI container
Destroying CDI bean instances explicitly
Summary
8. Validators and Interceptors
Bean Validation
Validating your data
Building a custom constraint
Creating a constraint annotation
Implementing a validator
Latest improvements in action
Openness
Support for dependency injection and CDI integration
Support for method and constructor validation
Support for group conversion
Support message interpolation using expression language
Interceptors
Intercepting some processes
Defining interceptors in the target class
Defining interceptors in an interceptor class
Latest improvements in action
Intercept constructor invocation
Associating an interceptor with a class using interceptor binding
Creation of interceptor binding types
Declaring interceptor binding
Binding an interceptor by using interceptor binding type
Defining the execution order of interceptors
Summary
9. Security
JASPIC 1.1
Secure access to forms
Implementing an authentication module
Implementing the ServerAuthModule interface
Installing and configuring the authentication module
Binding the authentication module to a web application
Creating a realm
Security configuration
The latest improvements in action
Integrating the authenticate, login, and logout methods called
Standardizing access to the application context identifier
Support for forward and include mechanisms
Summary
Index
Java EE 7 First Look
Java EE 7 First Look
Copyright © 2013 Packt Publishing
All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews.
Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the author, nor Packt Publishing, and its dealers and distributors will be held liable for any damages caused or alleged to be caused directly or indirectly by this book.
Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information.
First published: November 2013
Production Reference: 1121113
Published by Packt Publishing Ltd.
Livery Place
35 Livery Street
Birmingham B3 2PB, UK.
ISBN 978-1-84969-923-5
www.packtpub.com
Cover Image by Abhishek Pandey (<[email protected]>)
Credits
Author
NDJOBO Armel Fabrice
Reviewers
Markus Eisele
E.P. Rama krishnan
Acquisition Editors
Sam Birch
Joanne Fitzpatrick
Commissioning Editor
Mohammed Fahad
Technical Editors
Ritika Singh
Nikhita K. Gaikwad
Project Coordinator
Ankita Goenka
Proofreader
Christopher Smith
Indexer
Monica Ajmera Mehta
Graphics
Yuvraj Mannari
Production Coordinator
Shantanu Zagade
Cover Work
Shantanu Zagade
About the Author
NDJOBO Armel Fabrice is a Design Computer Engineer and graduate from the National Advanced school of Engineering Cameroon, and Oracle Certified Expert, Java EE 6 Java Persistence API Developer. In the past, he has worked with Java EE to develop several systems among which are a helpline system and a commercial management application. He currently works on several systems based on EJB, Spring and ICEFaces solutions. In addition, he has made a technical review of the books Pro Spring Integration published by Apress and Beginning EJB 3, Java EE published by Apress. He is also a copywriter in developpez.com (his home page is: http://armel-ndjobo.developpez.com/).
First of all, I want to thank the Lord Jesus who makes everything possible for me. I would like to thank Dr. Georges Edouard Kouamou for making me love Software Engineering. I would like to thank Fomba Ken Collins for his critiques that have helped me improve the quality of the book. I would also like to thank Serge Tsala, Armel Mvogo, and my fiancée Ines Tossam who encouraged me during the writing of this book. And finally, I would like to express my gratitude to Licel Kenmue Youbi for all his efforts.
About the Reviewers
Markus Eisele is a Principal Technology Consultant working for msg systems AG in Germany. He is a Software Architect, a Developer, and a Consultant. He also writes for IT magazines. He joined msg in 2002 and has been a member of the Center of Competence IT-Architecture for nine years. After that he moved on to the IT-Strategy and Architecture group. He works daily with customers and projects dealing with Enterprise-level Java and infrastructures. This includes the Java platform and several Web-related technologies on a variety of platforms using products from different vendors. His main areas of expertise are Java EE Servers. He speaks at different conferences about his favorite topics. He is also part of the Java EE 7 expert group.
Follow him on twitter.com/myfear or read his ramblings with Enterprise level software development at http://blog.eisele.net.
E.P. Rama krishnan is an enthusiastic freelance developer and a technical writer. He has steady industry exposure of 5 years. His areas of expertise include JSF (JavaServer Faces), Java Persistence API, CDI, RESTful Services, Swings, Tomcat Clustering, and Load-balancing. His other areas of interest are Linux, Android, and Systems security. Besides development his major interest lies in writing technical blogs which simplify the latest technologies for early adopters. You are welcome to visit his blog at http://www.ramkitech.com and feel free to give your feedback. He can be reached at
www.PacktPub.com
Support files, eBooks, discount offers and more
You might want to visit www.PacktPub.com for support files and downloads related to your book.
Did you know that Packt offers eBook versions of every book published, with PDF and ePub files available? You can upgrade to the eBook version at www.PacktPub.com and as a print book customer, you are entitled to a discount on the eBook copy. Get in touch with us at
At www.PacktPub.com, you can also read a collection of free technical articles, sign up for a range of free newsletters and receive exclusive discounts and offers on Packt books and eBooks.
http://PacktLib.PacktPub.com
Do you need instant solutions to your IT questions? PacktLib is Packt's online digital book library. Here, you can access, read and search across Packt's entire library of books.
Why Subscribe?
Fully searchable across every book published by Packt
Copy and paste, print and bookmark content
On demand and accessible via web browser
Free Access for Packt account holders
If you have an account with Packt at www.PacktPub.com, you can use this to access PacktLib today and view nine entirely free books. Simply use your login credentials for immediate access.
Preface
When we considered writing this book, the main objective was to present the new features of Java EE 7 platform. But while writing, we came to realize that it would be interesting to make a clear and concise presentation of the relevant specifications and how to implement them. This led us to imagine a project that will help present almost all the specifications affected by Java EE 7 and how to put them together in order to build a large-scale application.
In short, this book does not aim to show how to implement the different aspects of each Java EE 7 specification or list the best practices. Rather, it positions itself similar to the yellow pages for a city that has been built recently. In other words, this book will help you discover the innovations introduced by Java EE 7 and give you ideas to build solid applications.
What this book covers
Chapter 1, What's New in Java EE 7, gives an overview of the improvements made in the Java EE 7 platform.
Chapter 2, New Specifications, explains concepts concerning the new specifications that have been added in Java EE 7 and shows how they can be used.
Chapter 3, The Presentation Layer, demonstrates the implementation of the improvements brought by the Java EE 7 platform for the presentation layer specifications.
Chapter 4, The Java Persistence API, shows how your Java application can store and retrieve data from the database in a safe way and explains the innovations that have been made in the relevant specifications.
Chapter 5, The Business Layer, begins by giving a presentation of the improvement in the business layer and then demonstrates how various Java EE 7 specifications can be put together for the realization of an application.
Chapter 6, Communicating with External Systems, demonstrates how a Java EE 7 application can interact with heterogeneous systems.
Chapter 7, Annotations and CDI, explains how annotations and CDI can be used to improve the quality of applications.
Chapter 8, Validators and Interceptors, shows how the validation and interception of data can be implemented in a Java EE environment to ensure the quality of the data handled by an application.
Chapter 9, Security, demonstrates the implementation of security and setting up a personal module for security in Servlet and EJB containers.
What you need for this book
To implement the various examples present in this book, you will need the following software:
NetBeans IDE 7.3.1 or higher
JDK 7
GlassFish Application Server 4, at least b89
MySQL 5.5 or higher DBMS
Who this book is for
Given the main objectives, this book targets three groups of people who possess knowledge about Java. They are:
Beginners in using the Java EE platform who would like to have an idea about the main specifications of Java EE 7
Developers who have experimented with previous versions of Java EE and want to know what Java EE 7 has brought as novelties
Budding architects who want to learn how to put