Ok, why do I need a new JRebel plugin?

The new version of IntelliJ IDEA has incompatible changes in the debugger API (http://youtrack.jetbrains.com/issue/IDEA-81452). It’s important for us that we maintain support and development for the older versions of IDEA as well. Unfortunately, this means we need to fork the plugin and present a new 1.4.x version for IDEA 11.1+.

Do I get anything with the new plugin?

Yes, this presents us with a great opportunity: we can now use all of the newer APIs that we previously did not for compatibility reasons. We will still support and develop the plugin for versions 8 through 11.0.2, but it will be version locked at 1.3.x.

We understand the possibility for confusion, but there are many positives for this as well. We can stop working with older APIs that we only used to maintain backward compatibility, and start using all of the new APIs that allow us to provide a better experience for our users. For example, now you can use the new “fancy file” dialog system, which includes autocomplete. Word.

How do I upgrade to the new JRebel plugin?

You need to first uninstall the existing JRebel plugin, as IntelliJ will natively install over the old version and try to use the same plugins. This won’t work, and the JRebel plugin will be disabled. Either uninstall the JRebel plugin through the Settings->Plugins window or delete the plugin in the USER_HOME/.IntelliJIDEA11/config/plugins/jr-ide-idea directory.

What if I want to keep using an older version of IntelliJ?

Even though the new IntelliJ version (11.1) installs on top of the previous one (11.0.x), you can still separate the configurations. Here’s how: copy the USER_HOME/.IntelliJIDEA11 directory to USER_HOME/.IntelliJIDEA111 directory. Now, you need to tell the new IntelliJ instance that it has to use the new location for the settings. This is done in INTELLIJ_HOME/bin/idea.properties file. The idea.properties file contains a number of parameters that point to the settings directory:
idea.config.path=${user.home}/.IntelliJIdea/config
idea.system.path=${user.home}/.IntelliJIdea/system
idea.plugins.path=${user.home}/.IntelliJIdea/config/plugins
idea.log.path=${user.home}/.IntelliJIdea/system/log

You just need to change it to this:
idea.config.path=${user.home}/.IntelliJIDEA111/config
idea.system.path=${user.home}/.IntelliJIDEA111/system
idea.plugins.path=${user.home}/.IntelliJIDEA111/config/plugins
idea.log.path=${user.home}/.IntelliJIDEA111/system/log

Now you will be able to keep 2 versions of IntelliJ with different set of plugins. This is a very specific case and hardly anyone would like to follow such a setup, but just in case, I wanted to let everyone to know that it is possible.

Anton Arhipov is XRebel Product Manager at ZeroTurnaround. Java Champion, vim fan and IntelliJ IDEA addict. Professional interests include programming languages, middleware and tooling. Anton loves tea and doesn't drink coffee. He tweets from @antonarhipov and you can find him at LinkedIn.