We here on the IDE team are pleased to announce the new release of Liferay IDE: Liferay IDE 2.0 Milestone 1. Since this is an Eclipse release all you need is to use the following update site url in the Help > Install New Software... dialog.
This milestone release is the first in a series of milestones leading up to Liferay IDE 2.0 GA release that is planned for just after Liferay Portal 6.2 GA. Below are some highlights Liferay IDE 2.0 M1:
The reason that we are releasing 2.0 in a series of milestones is because of all the changes that happened since 1.6.x namely the integration of maven projects which have a totally different layout than ordinary SDK based projects. So we need your feedback if you run into problems when you upgrade from previous version. We plan to have at least 2 more milestones of IDE 2.0 until we are all finished with adding the planned features.
Liferay Portal 6.2 Support
Now that the Liferay Portal 6.2 Beta releases are out IDE uses can finally have a way to use them using the Eclipse server adapter support. The new 6.2 runtime/servers have been added right along side 6.0/6.1.
Liferay Maven Project Support - New m2e-liferay Feature
One of the most requested features for Liferay IDE has been maven support. This release now provides that support through a separate installable feature called m2e-liferay.
This is an extension of the existing Eclipse built-in maven support (m2e) but specialized to support the liferay-maven-plugin available for Liferay projects. This topic is quite log and involved so it needs its own page about m2e-liferay
. But below is an image that shows a properly configured Liferay Portlet project that is using the liferay-maven-plugin
and is correctly configured in Liferay IDE 2.0M1. Notice that the Liferay Portlet facets are installed and that you can drag-n-drop these projects onto the Liferay Portal Server adapter.
Ivy support for Plugins SDK projects
In the latest version of the portal 6.1.2, 6.1.30, and upcoming 6.2.0 Ivy support has been added to the Plugins SDK. So now some of the projects created by SDK will come with their own ivy.xml file for dependency management along with the common infrastructure for Ivy (cache dir) residing in the root of the Plugins SDK. In order for these projects to work full in Eclipse (all classes compile) we need to enable Ivy dependency management for Eclipse. This is going to be accomplished by integrating the great work by the IvyDE team, using their plugin for Eclipse (IvyDE) to support Ivy enabled Liferay plugin projects.
So starting with 2.0M1 of Liferay IDE it will come bundled with IvyDE plugin. Also if any project that is created in the SDK contains an ivy.xml file (e.g. JSF projects) then the New Liferay Wizard will automatically add a Ivy nature, add an Ivy container configured to use Plugins SDK cache and ivy-settings.xml from the Plugins SDK and will also automatically invoke the resolve for the container (i.e. download the dependencies).
If in the new project wizard you select that you want to create theme project, you can see additional options for specifiying the theme parent and the template langauge you want to use. By default we have switched to Freemarker mainly because of the next biggest new feature, the Freemarker debugger.
Included in the 2.0M1 release is a new feature for debugging Freemarker templates executed for Liferay theme plugins. This feature creates a Freemarker debugger client integrated with Eclipse debug view. When you launch a Liferay Portal 6.2 Server in "Debug" mode it will automatically enable the embedded Freemarker debugger. Then you can add breakpoints to any FTL file that is opened with the Liferay Freemarker Editor. When the Portal evaluates those FTL templates it will pause execution and activate the debug view Eclipse.
You can then inspect variables, step, resume as you would expect in normal java debugger.
Also you can suspend the calling Java thread in order to see the stacktrace from Liferay that calls into the Freemarker template engine.
There are some missing features that you would expect, like watchpoints, native stepping, run-to-line, making changes to stack, etc. We are working with Freemarker team in order to deliver a advanced debugger for future versions of Freemarker that will have more features equivalent with all modern java debuggers.
Various Layout Template Visual Editor improvements
Remote server adapter supports proxy servers
Portlet wizard now supports adding portlets to Control Panel
We really need the communities help in providing feedback on this milestone release. Especially issues involved in migrating from IDE 1.6.x projects, or using Maven and Ivy enabled projects. Also since the Maven support (m2e-liferay) is in its first version so there are going to be some rough edges to be smoothed out in the upcoming milestone releases. But the quality will be much better if the community will report issues they have with 2.0M1. Post issues to Liferay IDE Forums or the JIRA project.
Before I finished this blog post I wanted to mention a couple of words of thanks. Firstly, I need to mention my QA team members, Ashley Yuan and Vicky Wang that were in charge of QA for the 2.0M1 release. They have written lots of UI functional tests and regresion tests the past year as we have been working up to this release. A massive change in the codebase that this involved would have been impossible with their efforts. Thanks team!
Also special thanks goes out to a couple of other super-smart engineers, Neil Griffin and Mika Koivisto for all of their help with maven. Neil for being my maven mentor and Mika for fielding my pull requests and helping me understand the liferay-maven-plugin when both of those guys are super busy and have bigger fish to fry! :)