JRebel ?

I use JRebel to speed up my development. It is a really impressive tool allowing to develop full blended Java EE application as you would develop in PHP. No redeploy, at the cost of a little slow-down in development mode. The tool does what it says, and it's worth the price ! The JRebel plugin for maven does the job very well by generating the rebel.xml file that does the magic.

What's the deal ?

Although JRebel is an awesome tool, there is some magic within, and, in special corner cases it might not work as expected. In my case I have a quite typical web application split in multiple parts:

  • a web application (war)
  • an ejb module (jar)
  • other modules not involved in my problem

The web application includes, in its WEB-INF/lib folder, the ejb-client artifact of my ejb module. To make it clear, ejb-client artifact is typically the jar containing the interfaces to be used by the client module(s).

The problem I had was that JRebel magic was reloading too much things : in fact, it reloaded classes even if they were not in the ejb-client. My application container (Glassfish 3.x) was not very keen on this thing. I opened a thread on ZeroTurnAround's forum and the answer I got is that I have to find a way to ignore files in my ejb-client module. By digging in maven-ejb-plugin, I didn't find anything to rename a file in the ejb-client module, and I didn't find a parameter to pass to JRebel to specify which filenames can contain its configuration.

I just found out a great web comic site A programmer's life, don't hesitate to put it in your bookmarks next to Geek And Poke.

Classic tailing

In my day to day activities, there is one thing I do everytime and I think every developer does : I tail the logs. The problem with logs checking is that you are rapidly facing a huge file, and the classic tail -f is not enough. The sad part of log tailing is that you only have monochrome logs, without any colouring of any kind helping you identify critical lines against more common ones.

General Launchpad thoughts

I continue my tips regarding OS X Lion. As I said in my OS X Lion walkthrough, Lion come with a very iOS-ish application launcher : Launchpad. Out of the box, it is automatically populated with every application you have and application you download from the Mac App Store are added there too.
Although I keep on thinking it is a useless feature for power users, newcomers will surely find this useful, and it will help switchers to find their applications. As I was cleaning my machine I tried to rearrange Launchpad by making folders and then I discovered that you can't easily remove a shortcut to an application (except the ones coming from the Mac App Store which are uninstalled when you remove their icons).

Let me remove things !

By digging around, I found that Launchpad stores its preferences in a SQLite database, that you can explore and manipulate using the sqlite3 command line program.
Please notice that the steps described here might make your Launchpad unusable, so please backup every file you change in case something goes wrong !

Update ! Easy technique, use Launchpad-Control which is a preference pane allowing to visually hide / show icons on Launchpad. I detail here the step involved for the records.