As the application server evolves many developers are wondering which is the most effective IDE for developing applications with JBoss AS. This short tutorial tries to investigate on it.
In terms of popularity, it's sure that lots of developers prefer using JBoss Tools set of plugin for JBoss AS products. Actually JBoss Tools is a project which encapsulates a set of Eclipse plugins that supports almost all JBoss and related technology; besides the Application Server, there is support for Hibernate, Drools, jBPM 5, JSF 2, (X)HTML, Seam, Maven, JBoss ESB, JBoss Portal and even more.
The simplest way is to install the plugins from within Eclipse: move to the upper Menu and choose Help | Install New Software. From there, choose "Add" and paste the URL of the update site which is in our case: http://download.jboss.org/jbosstools/updates/development/indigo/
A detailed tutorial about JBoss and Eclipse was published some time ago. You can check it as a reference.
If you are running JBoss Enterprise Platform (EAP) you might consider using the JBoss Developer Studio Portfolio Edition which integrates out of the box with:
JBoss Enterprise Application Platform
JBoss Enterprise SOA Platform
JBoss Enterprise Data Services Platform
JBoss Enterprise Portal Platform
JBoss Enterprise BRMS Platform
JBoss Operations Network
If you are new to the JBoss products, you should be aware that the EAP, although derived from the Community version, is called the certified version which means that it has passed different quality tests and might be different in terms of features/packaging from the Community version.
Another free IDE which can be used for developing applications with JBoss AS is Netbeans which provides some project editing / refactoring capabilities which make it a good choice for developing Java Enterprise Applications.
I have recentely downloaded and tested NetBeans 7.2 and I was quite pleased to check that finally the IDE bootstrap time has been drastically reduced ( you could fall asleep at the splash screen in the earlier releases of NetBeans :-) ). Also I enjoyed a perfect Maven integration of this tool which out of the box is able to pickup, compile and deploy Maven projects. (Just choose to Open a Project and the wizard detects that a folder contains a Maven project with its configuration file).
One thing which still lacks in NetBeans is JBoss AS 7 integration, as a matter of fact you can use it just for the releases 4, 5 and 6.
Check out the following bug http://netbeans.org/bugzilla/show_bug.cgi?id=200132 which contains the Change Request which you could vote if you are interested in adding support for AS 7 on this IDE.
If you are willing to pay a license for your IDE, then you could consider using IntelliJ IDEA tool. IntelliJ IDEA is a code-centric IDE highly focused on developer productivity. The editor exhibits a nice understanding of your code and makes great suggestions right when you need them, and is always ready to help you shape your code.
Actually two version of this product exist: the Community Edition and the Ultimate edition, which is the one that requires a license. In order to use Java EE and JBoss AS plugin you can download a trial version of the Ultimate edition (http://www.jetbrains.com/idea/download/index.html) and then simply install it using the installation wizard.
Once installed the Ultimate edition you will be able to get started developing application with JBoss AS 7 by selecting the File | Settings option and from there choose the IDE Settings option. There you can choose to Add new application server environments.
One great advantage of using IntelliJ Idea is that, besides the advanced refactoring / suggestions options, it provides a quick and easy integration with all the core Java EE project and frameworks.
Say for example that you need to provide a Java EE applications using CDI + JSF 2.0 and Primefaces libraries, well it's just a matter of checking a few option buttons in the Create New Java Project option. From there the wizard will suggest to automatically download the library in the project or take care of it later.