Developing solutions for the open source content management system OpenCms can become cumbersome. Sooner or later you will ask yourself: How do I bridge the gap between the database driven virtual file system and the real file system so that I can use my IDE of choice?
We at componio are fond lovers of the NetBeans IDE. Thus we decided to create a plug-in which enables us to develop for OpenCms in almost the same way that we are developing pure web applications. Most notably to create, update, import and reverse synchronize OpenCms modules. We primarily offer a binary distribution of the plug-in which is ready to use out of the box. The latest version of the installable plug-in can be found at https://github.com/componio/nbDriva.
Since OpenCms stores everything in a database (aka. Virtual File System/VFS) and the IDE accesses the file system from the operating system (aka. Real File System/RFS) we need to access the data through the OpenCms APIs. The often overlooked OpenCms CmsShell is our weapon of choice. It enables the plug-in to execute actions originating in NetBeans in the context of the OpenCms runtime environment and vice versa. Further the CmsShell bridges the gap between the VFS and the RFS enabling the build environment to integrate, annotate and package OpenCms resources automatically.