Some weeks ago, I finished "Modular Java - Creating Flexible Applications With OSGi and Spring", it's time to do a little review now.
This book is an excellent introduction to the creation of modular applications in Java. It introduces all the main concepts of the OSGi technology, Spring Dynamic Modules and tools making easier the development of OSGi applications.
The first chapter introduce the concept of modularity and explain how OSGi solve the problem. The main characteristics of the technology are also described.
The next chapter lists the main OSGi containers and we create the first Hello World using OSGi. Next we improve this simple program using an OSGi service.
After that the third chapter introduce the application "Dude, Where is my Jar ?". This application is a simple web program allowing a develop to search for a Jar file in Maven repositories. This application is used in all the next chapters. More than this introduction, the chapter also shows how the Pax tools can make easier the development of OSGi applications.
In the next chapter, we create the first bundle of the application. With that bundle we see how to work with non-bundle dependencies. And in the next one, we create the services of the application and see how to publish and consume services.
After that, it's time to use Spring Dynamic Modules with the next chapter. We see how to publish and consume services with Spring.
In the seventh chapter, we develop the web bundle. Fort hat, we include Tomcat or Jetty in the form of OSGi Bundles. We also see the differences between a simple bundle (Jar) and a web bundle (War).
In the next, we see how to extend OSGi bundle using fragment. With that, we see how to separate the JSP part of the application.
The last two chapters are about the deployment in production of an OSGi application and the services offered by the OSGi standard (logging, admin, console, ...).
In conclusion, this book will allows you to start developing application using OSGi. It's really comfortable to follow the development of a simple applications during the entire book. And improve it with each concept of the technology. But I think it's not a very good idea to use that log the Pax Tools. We quickly loose OSGi with Pax. It's quite interesting to know how to use Pax (I use it everyday), but when we start, it's better to see the basic concepts further.
And more, the Maven output, is almost entirely displayed. This not really useful to see that every time when it's not errors, warning or important informations. But nevertheless, the reading of the book is really comfortable and fluid.