Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

Book Review: ''Continuous Enterprise Development in Java''

DZone's Guide to

Book Review: ''Continuous Enterprise Development in Java''

''Continuous Enterprise Development in Java'' covers general information about testing and applications, and the second part discusses JEE.

· DevOps Zone ·
Free Resource

Can you release faster without sacrificing quality? See how with our free ebook Strategies for a Successful Test Automation Project and a free trial of Ranorex Studio today!

This is a very short review of the Continuous Enterprise Development in Java book.

The book can be easily split into two parts.

The first part of the book from (Chapter 1 to Chapter 4) contains general information about the difficulty of testing the JEE applications, the software development cycles, the types of testing, and some more technical details about the testing frameworks (JUnit and TestNG), build tools like Maven and (JBoss) Forge, version control (only Git deserves a paragraph), and (finally) about the Arquillian which is presented as “an innovative and highly extensible testing platform for the JVM.”

A very nice introduction is done to the ShrinkWrap which is an API to create programmatically deployable JEE archives (jars, wars, ears).

An entire chapter (Chapter 3) is dedicated to write and deploy some business code and the associated Arquillian tests. Almost all the tools used in this chapter are JBoss or RedHat tools; Forge for the build of the application, JBoss Application Server to deploy the application, JBoss Developer Studio to deploy on the (Red Hat) OpenShift cloud service.

The second part of the book from Chapter 4 to Chapter 12 contains the implementation of the JEE application. Every chapter is treating one aspect of the application: Chapter 5 treats the persistence layer, Chapter 6 treats the integration with NoSQL databases, Chapter 7 treats the services layer, Chapter 8 treats the REST services, Chapter 9 treats the security, Chapter 10 treats the user interface, and Chapter 11 treats the deployment on live.

Every chapter follows the same pattern, starting with an introduction to the technology that will be used within the chapter, then the use cases and the business requirements are presented, then it follows the implementation of the requirements, and lastly, the testing of the implementation using Arquillian.

I will conclude my post with a few points about what I like and what don’t like about this book.

What I like about this book:

  • The author clearly masters the different JEE components; the technology introduction paragraphs of each chapter of the second part of the book are very clear and easy to understand.
  • The author knows the Arquillian framework inside out; all the examples are well explained and the introduction to ShrinkWrap is very well done.
  • Some of the chapters contain very valuable external references, like PicketLink for the security or Richardson Maturity Model for REST.

What I do not like about this book:

  • Too much marketing of the RedHat/JBoss products; I would have preferred to have more vendor agnostic examples of use for the Arquillian framework.
  • The subtitle of the book is “Testable Solutions with Arquillian” so it supposed to focus more on the testing part of the applications. Unfortunately, for me, the book is not focusing on testing the applications but rather tries to present how to continuously develop (JEE) applications and integration testing is only one part of this.
  • Nothing is said about the integration of Arquillian with other Java (non-JEE) projects and frameworks like Spring and Guice and how Arquillian could ease (if it can) the testing of the applications using these frameworks.

Get your test automation project off to the right start. Download your free test planning template and a 30-day no-obligation trial of Ranorex Studio today!

Topics:
enterprise ,book review ,devops ,jee

Published at DZone with permission of

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}