OpenCms Module Developer
OpenCms is a fine Content Management System. It is extendable through a mechanism of modules that can be added to an OpenCms installation. A module can consist of various elements, e.g. jsp-pages, compiled Java code, third party libraries, custom resource types etc.
However, OpenCms does not provide a development environment to develop new modules. Modules are best developed in an IDE, like Eclipse or NetBeans, and then uploaded to OpenCms. Although there are already several mechanisms for uploading your module to OpenCms, each method has it's own disadvantages. The Eclipse plug-in OpenCms Module Developer presented here is created to provide the developer with a convenient synchronisation mechanism to communicate his module with OpenCms from within Eclipse.
This plug-in is aimed at module developers. It can only synchronise with modules located in the VFS folder /system/modules/. It's intention is that the developer can develop his module with the tools provided by Eclipse and periodically upload his module to a local OpenCms installation to test his work.
The plug-in is released under the Eclipse Public License v1.0 and the source code can be viewed from the git repository.
The OpenCms Module Developer plug-in requires that every module is a separate Eclipse project. Below is a list of current features of the first release.
- New Module wizard
- Support for OpenCms 6.x through 7.0 (rc2 or newer)
- Support for special web container configurations, such as database drivers that are located in a shared lib folder
- Eclipse Library containing the OpenCms binaries is automatically added to your project's classpath
- Upload your module to OpenCms, overwriting existing files and removing obsolete files. OpenCms properties set on existing files are preserved.
- Upload (as above) and publish your module to OpenCms.
- Download your module from OpenCms, overwriting existing files and removing obsolete files.
More features will be added in future releases and the goal of this plug-in is to become a full featured OpenCms development environment for Eclipse. Features currently on the wishlist are:
- Maintain OpenCms file- and folder properties from within Eclipse
- Maintain module configuration information from within Eclipse, such as resources, exportpoints, parameters, dependencies and administrative information
- Create a module zip file that can be imported in an OpenCms installation
- Support for XmlContent schema validation
You need Eclipse 3.2 or newer and a working local OpenCms installation. The latest version of the plugin supports OpenCms versions 6.0 through 8.5.x. When communicating with OpenCms, about 22 MB of memory from Eclipse is used. Please adjust your memory settings of Eclipse as appropriate.
As of release 0.0.5 of this plugin, Java 5 is required.
Download the jar-file and drop it into the /plugins directory of Eclipse and (re)start Eclipse. After (re)start, first set the preferences on the OpenCms module Developer preferences pages in Eclipse (Window | preferences...)
Exit Eclipse. Drop new plugin jar in the plugins directory of your Eclipse installation and remove the old one. Start Eclipse with the -clean option as startup parameter. And you're done.
For a short presentation on the usage of the plug-in, you can view the tutorial presentation.
Show presentation... (You need Flash enabled in your webbrowser to view this presentation, download size approx. 1.2MB)
Not working as expected?
You can file a bugreport or feature request, but please first check if your issue is not already reported in the system. When you file a bugreport, please be as specific as possible, describing the relevant actions that you executed prior to the fault situation. Also, please add error messages displayed to you and / or stacktraces from the Eclipse logfile.
Please be patient and remain hopefull when you file issues. The plugin is developed and maintained in my spare time, I get no revenues from it. Of course when you file a bugreport or feature request and make a donation, you will stimulate my ego for sure and I will be eager to pay you back.