"OpenCms 7 Development" by Dan Liliedahl is intended for Java developers who wish to extend and customize OpenCms via its Java APIs. The book takes a tutorial approach to customizing OpenCms starting off by describing the blog application that is developed throughout the course of the book.
Content Management is one of the buzz words within the IT industry at the moment. Many different CMS systems are available which can be customized in different ways either via .NET code, Java code or some other programming languages. OpenCms 7 is developed in Java and can be completely customized using its Java and XML apis.The book starts by describing the skills necessary for OpenCms development which range from basic HTML skills through to Java skills and having an in depth knowledge of the programming model behind the OpenCms product. For this book, it is assumed that the reader has basic Java knowledge and some familiariity with OpenCms although not necessarily at the code level. To ensure the reader has sufficient knowledge of OpenCms, a brief introduction to the product is provided including details of the applications architecture and Virtual File system.
After introducing OpenCms and the different levels of development and customization available, chapter 2 of the book describes how to set up an Eclipse based environment for editing JSP code and how WebDAV can be used for editing pages within an OpenCms enviroment. The author describes this in detail including intricacies that a newcomer to the product may not be aware of. The chapter concludes by detailing how to check OpenCms out of the CVS repository and how to build and debug it within Eclipse.
After spending a fair amount of time with introductions, the author moves on to describe OpenCms modules describing what they are and how to create them within the OpemCms Module Management view. A blog entry content type is created for which the full XSD is listed within the book. After creating a content type, the reader is shown how to register this within OpenCms and how to create field mappings between the content type (XML Schema) and the fields within the blog application that are displayed on the page. Different widgets are described (for example the calendar and HTML editor widgets) along with the XML needed to allow them to be displayed on a form. This section contains a lot of XML and isn't for the feint hearted.
The next chapter of the book continues to talk about user interface issues. In it, the author describes how to build templates for an OpenCms site. This section describes how templates are built (including sidebars, headers and footers) providing details of how the OpemCms Java tag library can be used in conjunction with JSTL and JavaBeans showing how templates for different page types can be built up. The author spends a good amount of time on this section providing code samples for each feature described. All of these code samples used throughout the book are also available on the publisher's web site.
What's a web site without search? Well, chapter 5 details the Lucene search engine which is included as part of the OpenCms distribution. A discussion on Lucene and the Luke Visual Indexer tool follows which is very useful for readers not familiar with the product. Again, as is common throughout the rest of the book, both JSP and Java source code is provided throughout the chapter in this instance, whilst describing how to configure search screens and backend search code.
The next few chapters of the book incrementally add new features to the blog application namely, user registration, comment support, RSS feeds and administration support. The tutorial style is continued throughout these chapters with each starting with a description of the topic at hand. The reader is then taken through the stages necessary to develop the features each one including Java and JSP source code.
This is a good book that I'd recommend for developers who are working with OpenCms 7 however I would suggest that readers of the book be familiar with OpenCms before reading it as the concepts can be quite difficult for new users to grasp. Experience of Java web development is required to make full use of this book as is experience of XML. Further details of this book can be obtained from the Publisher's web site.



Leave a Reply.