1.4 What Next?

Following on from this brief overview of Java EE, Chapter 2 will focus on the development and execution environment for our software project. We will learn how to install the Java application server WildFly and the configuration framework Maven , how to compile a project using Maven and deploy it on WildFly. You are free to choose the development environment; however, we will describe briefly how Maven can be integrated in the latest version of Eclipse.

Chapter 3 describes the application to be created. Here, we will focus our description on the technical use cases (use cases and workflows), the domain classes (models) and the associated graphical user interfaces (input forms).

The development of the software will be performed in several iterations (see Fig. 1-7). Each chapter covers one iteration and is concluded with a series of tasks. The tasks are usually worded in such a way that the reader is encouraged to try out alternative scenarios, and are therefore of a somewhat experimental nature. To avoid the “side effects” of such experiments being carried through to subsequent chapters, the changes should be reset after the tasks have been carried out.

The example application is developed in six iterations
Fig. 1-7     The example application is developed in six iterations.

In Chapter 4 we start with JSF and create the necessary web interfaces and the CDI beans that are necessary for navigation. By this point, the application can already be clicked through and can even work with sample data provided by a class. However, the data will not be persistent.

Chapter 5 is dedicated to the subject of testing, specifically the functional tests. A functional test verifies that the application functions correctly from the perspective of the user. In this specific case, we want to test whether the application described in chapter 3 and to be implemented in the coming iterations can be run according to the requirements.

Chapter 6 takes a detailed look at CDI, and we will use possibilities offered by CDI to improve our software architecture.

JPA and bean validation are then discussed in Chapter 7. The model classes used are transformed to entities and obtain an object-relational mapping and rules to check the value ranges of the attributes. Here, we will use EJBs for the first time, to provide storage of entities for the CDI layer.

In Chapter 8, we will deepen our understanding of EJBs. We will familiarize ourselves with the available options: to leave transaction control to the container or to take care of it ourselves in our role as programmer. In the latter case, we will encounter the use of aspect-oriented programming using interceptors. Furthermore, we will explain the security concept of EJBs and implement it in our application. At the end of the chapter, the application will be fully functional.

In Chapter 9, we will incorporate an additional Java EE 7 application server (GlassFish 4) into our system architecture and implement a second web application on it – a donations monitor for campaigns. We will encounter new Java EE 7 technologies such as WebSockets and REST services (JAX-RS 2.0) along with SOAP Web services (JAX-WS 2.2), which are no longer part of the Web Profile.

Chapter 10 is devoted to the topic of Java EE 7 and the cloud. This chapter will look particularly at the cloud provider (OpenShift). This provides WildFly instances in the cloud, enabling the rapid proliferation of Java EE applications on the Web.