With the recent release of Adobe’s CQ5 platform (CQ5.5), there has been no mention of updating the canonical CQ5 IDE, CRXDE. This seems like a perfect opportunity for Velir to announce the beta release of a plugin for IntelliJ IDEA by Jetbrains, making it a suitable replacement for most things usually done in CRXDE by allowing editing of JCR content and synchronization with CQ5’s JCR as well as with an industry-standard version control system.
I won’t sing the praises of IntelliJ here, but there is no shortage of discerning Java developers who prefer it to the alternative Java IDEs. But more than IDEology, it’s important to have a light-weight tool (or plugin) that can fit into a developer’s existing IDE and development process. CRXDE seems to be intended as a complete and self-contained solution to CQ5 development. As such, it may not provide the flexibility to interface with the other tools in a developer’s chest. Velir’s plugin, by being more lightweight, attempts to fill a niche for developers who want a customized CQ5 development process.
A good VCS (Version Control System) is a necessity for long-term success in software development. Although the JCR specification has some support for content versioning, it is not intended to be a robust VCS. Most teams working with CQ5 have relied on Adobe’s FileVault (vlt) tool to import/export JCR content from the JCR to the file system in XML form. This content is then stored in the team’s VCS of choice. This extra layer of check-in and check-out from vlt adds another step to software development that feels a bit awkward when you first begin developing on the CQ5 platform. Velir’s IntelliJ plugin is based on the same XML format that is found in JCR content exported by vlt, but the plugin can handle import/export directly. Dialogs are provided that allow for easy editing of JCR content, and creation of common CQ5 nodes like cq:Component. It also provides suggestions for node creation based on the type of the parent node you’re creating it under. It is actually more robust than CRXDE in a few cases (try editing an array of booleans in CRXDE), although a user will probably still want to use CRXDE (or CRXDE light) for some things like search.
Since JCR import/export functionality has been developed recently, it may have some bugs. Please be careful when importing files to CQ5’s /lib and /etc directories, or you may have to reinstall CQ5.
Velir plans to add many more features, including
- JCR-centric view showing nodes and their properties, the way CRXDE does
- Ability to display files directly from the JCR
- Automatic syncing of content between the JCR and filesystem
- Search for content within the JCR
- Clickthrough from Sling/CQ includes in JSPs to OSGI servlet bundle code
You can find the plugin at https://github.com/Velir/intelliJ-jcr-plugin. Contributors/suggestions/bug reports are welcome!
I really like this plugin. I’ve been playing with it a little the past day or two. Any idea on a timeline when all these future features may be incorporated?
I’m glad you like it, Ryan.
I’m fitting development in around my regular work schedule, so it will definitely be a while before I get to everything on my list.
What I’m most interested in tackling next is the automatic sync of content.
Is there a particular feature that you’re looking to see tackled?
Great Work … What version of vault plugin are you using for this ?
Yogesh, this plugin does not depend on vault at all. You can use it with vault if you wish, but it connects to CQ5 through the JCR API directly.
How can I compile and install it? Some screenshots would be welcome.
Hi Yury,
You need to follow the steps for setting up a plugin development environment here: http://www.jetbrains.org/display/IJOS/Writing+Plug-ins
Sorry there isn’t an easier way yet. I’ll look into getting a binary up so that it’s easier for users.