Have you ever wondered about the number of deployments and server restarts you do per day ? For example, a single deployment takes 30 seconds and a server restart takes 1 minute (and these numbers are actually very optimistic). For a typical scenario of 7 deployments and 2 server restarts per hour you need 60 re-deployments and 20 server restarts per day. That adds up to almost 1 hour per day, 5 hours per week and 20 hours per month - that's almost 3 working days!.
So you spent 20 hours per month simply by doing nothing, or waiting. Ok, maybe not by doing nothing, there are some creative types who can spend their time being quite useful...
The fact that you end up spending 20 hours each month doing nothing would be definitely interesting to your boss :) But it's also frustrating for developers who cannot work as efficiently as they would like to. Especially in a portal enviroment, there are lots of deployments needed, both to the Application server and Liferay as well. These facts are very often a pain for new developers coming into the portal world.
No need to despair, though. We at mimacom believe that there is always a way to do things better. That's why we have decided to work with Liferay and Zeroturnaround (creators of JRebel) to start a new Liferay project to focus on solving this problem. The goal is to be able to develop with Liferay without the need of redeployments or server restarts.
JRebel/Liferay Integration Project
A few months ago, Neil Griffin posted a blog post about JRebel , which was the inspiration for me to dig into this tool a bit more and start using it. If you want to learn more about this tool, you will find all the important information at the JRebel project page. If you are developing Open Source Software, you can get your licence for free!
As Neil posted in his article, JRebel is works pretty good with Liferay when working on portlet plugins. However, there are some issues when using JRebel with Liferay hooks and themes. That's why we have decided to create a Liferay project to develop a plugin for JRebel with the following goals:
- Full support of Liferay theme framework (allow user to edit all static files in the IDE)
- Full support of Liferay hook framework (allow any changes in any type of hook to be automatically reflected in the portal)
- Full support of instance changes made in plugin descriptors (portlet.xml,liferay-hook.xml...)
This project will be the first of hopefully many community-driven projects, and will soon have its own project page on liferay.org. The project page will allow the community to have an entry point to find all relevant information about this project and how to get involved. Additionaly you will be also able to see the latest features of the plugin, report your bugs, and even contribute to the plugin.
I hope that with this article, you can see how this tool can make your everyday life easier and save you a lot of time. At the moment we have identified some issues to tackle, but we know, that there are definitely more. We would be very happy if the Liferay community can provide us your experiences, problems, and any feedback related to using this tool. Your feedback and contributions will help us improve the plugin and move Liferay development to a new level, which will allow the whole community to develop application at a speed of light :) So until the project page is ready, feel free to post your problems, or experiences just by posting comments on this blog.
So from now on, I am not accepting any complaints about the inefficiency of Liferay development and look forward to seeing all of you saving time in your developement tasks!