Believe it or not, but I’ve been using Intellij IDEA for more than 10 years (I think it was back in 2003) and I love it ! Because of that, at each conference I go, I usually pay a visit to the JetBrains booth and chat with the guys. Mostly to tell them how good their products are, but also to give them some ideas about possible improvements (I’ve already told them that using Intellij IDEA on Mac OSX with a French keyboard is a real drag). So last time I was at Devoxx UK I talked with Hadi Hariri about how to get better application server support within the IDE (let’s say WildFly). He asked me to send him an email… so I wrote this blog.
AppServer Support in Intellij IDEA
At the moment Intellij IDEA has good support for most application servers in these areas :
- Servers management (starting and stopping local and remote server instances)
- Debugging of Java and JSP files with breakpoints, step-by-step execution, evaluating expressions, etc.
- Automatic deployment and removal of Web, JavaEE, and EJB modules to and from supported servers.
In terms of GUI it’s split between a couple of screens allowing you to visualize the server logs, stop/start/redeploy. The Run/Debug screen (below) allows you to start/stop the app server, deploy/undeploy/refresh the artifact :
The Application Server screen is a bit disappointing as it doesn’t give much more :
AppServer Support in Eclipse
The Eclipse Servers screen brings more functionality than Intellij IDEA. Of course it has run/debug/deploy/undeploy features, but it brings a few extra information that are nice to have.
First of all, I can see the content of my artifact (an ear file in this case). I can right click on it and view it in the File Browser (which is handy when you quickly want to hack some files). You can also quickly see in which port the server is listening to (here 9999 and 8080) and best of all, you have direct access to the configuration file (here the standalone.xml). Right click on it, edit the file, change bits and pieces, save the content and redeploy you app. Very handy.
AppServer Support in NetBeans
NetBeans has great support for GlassFish. Like all the other IDEs you can start/stop your app server, deploy/undeploy your artifact. But it also gives you some information about the deployed resources.
In the Services screen you can visualize the deployed JDBC datasources, connection pools, JMS connection factories and destinations. You only have read access to this information.
What new features would you like to see in Intellij IDEA?
In my point of view, Intellij IDEA could improve its app server support to be as good as the others, or even better. This is what I would like to have in Intellij IDEA:
- Start an app server without deploying any artifact (this way I could easily start the server and check the admin console)
- Like in Eclipse, visualize the content of deployed artifact and view it on the file browser
- Visualize port and change them (this way I could easily start several servers with different ports)
- Have direct access to the configuration file (like the standalone.xml) and be able to change the content and save it
- Visualize the deployed resources (datasource, JMS destinations…) using JMX to be portable
And you, what features would you like to have in Intellij Idea ?