Latest news

JavaRebel 1.2.1 and Spring Plugin 1.0-M2 Released

We are very proud to present not one, but two simultaneous releases....

JavaRebel used to develop LinkedIn

LinkedIn, Corp. has purchased JavaRebel licenses for all its Java engineers to use in the well-known social networking website dev...

JavaRebel 1.2: Now With Full Spring Support

The latest stable release of the JavaRebel code reloading agent includes a plugin for Spring that reloads Spring configuration on-...

Author Archive

JavaRebel 1.2.1 and Spring Plugin 1.0-M2 Released

Friday, September 26th, 2008

Although this month the ZeroTurnaround Team participates in three conferences (JavaZone, OracleWorld and JAOO) we try to also keep up with our release schedule. Thus we are very proud to present not one, but two simultaneous releases:

  • JavaRebel release includes mostly fixes to the 1.2 branch, but also features installation instructions for the Spring Application Platform. The most notorious issues fixed were the ones causing Java 1.4 users a ExceptionInInitializerError on startup and IBM WebSphere users a StackOverflowError. If you were hit by those issues you should try again with this release. See changelog or download.
  • The Spring plugin release includes fixes and performance improvements. The plugin will no longer rescan all XML files on every web request and the introduced delay should now be measured in milliseconds. A number of problems with Spring Security has been fixed and it should now work without any issues. See changelog or download.

JavaRebel used to develop LinkedIn

Tuesday, September 2nd, 2008

Since we started selling JavaRebel we had quite a few high-profile customers and quite a few large sales. However this is one of the first that combines the two.

LinkedIn, Corp. has purchased JavaRebel licenses for all its Java engineers to use in the well-known social networking website development. The website, written almost exclusively in Java, can now be updated on-the-fly in development, boosting the LinkedIn engineer productivity. We asked LinkedIn to comment and got the following reply from one of the engineers:

I’ve been using JavaRebel regularly for some time now and it’s done a lot to help developer productivity. Because of our unique situation with build/deploy times I can easily say that I’ve saved many hours spent needlessly waiting for a an app to deploy. It’s great for bug fixing or anytime when you may need to make several consecutive tweaks to the code.

That being said JavaRebel is no silver bullet and can start to act wonky sometimes (while making normal compatible changes). I’m not sure what the causes are but at times it seems like JavaRebel gets out of sync with the built classes. Developers need to keep in mind that that there are limits to what kind of changes can be made and there are times when you may need to redeploy your app and or restart your app container.

Overall I’d highly recommend it to anyone where deploy/redeploy to app containers is part of their workflow.

About LinkedIn:
LinkedIn takes your personal business network online, giving you access to people, jobs and opportunities like never before. Built upon trusted connections and relationships, LinkedIn has established the world’s largest and most powerful business network. Currently, more than 23 million professionals are on LinkedIn, representing all five hundred of the Fortune 500 companies, as well as a wide range of household names in technology, financial services, media, consumer packaged goods, entertainment, fashion, and numerous other industries.

JavaRebel 1.2: Now With Full Spring Support

Tuesday, August 26th, 2008

The latest stable release of the JavaRebel code reloading agent includes a plugin for Spring that reloads Spring configuration on-the-fly boosting development productivity even more. See the screencast and download JavaRebel and the plugin.

For this stable JavaRebel release we have focused on two main themes: stability and extensibility. This includes the following changes from 1.1:

  • Reworked core. Thanks to the numerous enhancements to the core JavaRebel can now handle any esoteric code or container there is.
  • Reworked SDK. Thanks to the new API and configuration you can now make any part of your application or library code reloadable, no matter where or how is it located. SDK is available as open-source.
  • JavaRebel plugins. It is now easy to support custom classloaders, containers and frameworks by registering a simple Plugin. Open-source example plugin, plugin development howto and a discussion mailing list are available at ZeroTurnaround Community.
  • Equinox OSGi container, IBM WebSphere and Atlassian Confluence plugins are now supported

See the full list of changes or just download JavaRebel now.

In addition to that we have released a JavaRebel plugin for Spring that allows reloading/reinjecting Spring dependencies on-the-fly without reloading the bean factory or application context. We have prepared a screencast that demonstrates the Spring plugin features. See the plugin installation manual for more details or just download it.

Now that the infrastructure is in place we plan to provide more plugins for the most popular frameworks that enable seamless zero turnaround even when updating configuration or other resources. You are welcome to join our community and contribute a plugin for your favorite framework or platform.

JavaRebel Price and Licensing Changes

Monday, August 18th, 2008

As we have previously announced we are going to introduce pricing changes to JavaRebel licenses after 15th September.

The current perpetual license price will be changed to $249 per license. The volume discounts will apply as follows:

Seats 1 - 9 10 - 24 25 - 49 50 - 99 100 - …
Cost $249 $224 $199 $174 $149

We will also introduce a new annual subscription license priced per year as follows:

Seats 1 - 9 10 - 24 25 - 49 50 - 99 100 - …
Cost $99 $89 $79 $69 $59

A new support package with annual subscription will be introduced. The package will include direct contact with the developer team, guaranteed response times and early access to fixes and plugins.

We will continue to sell a non-transferrable personal license priced at $99. We will also continue to issue free licenses to open-source projects.

You may purchase licenses at the current price until September 15th.

JavaRebel 1.1.4 and 1.2-RC1 Released

Friday, August 15th, 2008

This double release is a result of our active users submitting quite a few bugs. 1.1.4 includes among others fixes to regression that 1.1.3 still failed to fix, while 1.2-RC1 starts the countdown to the stable release of the 1.2.x branch. These releases also include support for time-limited licenses. Proceed to download.

Develop Spring applications without restarts

Thursday, August 7th, 2008

For the impatient: see the screencast and download.

Spring is nowadays one of the most popular frameworks for developing enterprise Java applications. It is therefore our greatest pleasure to announce that with the release of JavaRebel 1.2-M2 and the JavaRebel Spring plugin 1.0-M1 it is now possible to develop Spring applications without redeploying the container.

JavaRebel Spring plugin takes advantage of JavaRebel class reloading to reload Spring dependencies. It supports registering new Spring beans, adding/removing dependencies and adding new MVC controllers and handler methods. These can be done using either XML configuration or annotations.

We have prepared a screencast that demonstrates extending Petclinic sample application on-the-fly. You can also check out the Spring plugin installation manual or just proceed to download.

Although we have tested the plugin in several environments it should be considered a beta release and is not guaranteed to work perfectly in your application. However the plugin is open source and we welcome both your feedback and contributions to make future releases better.

JavaRebel 1.2-M2 Released

Thursday, August 7th, 2008

Although this release has mainly bugfixes in the changelog it has a lot of changes under the hood. We have significantly changed the underlying logic so JavaRebel will handle some corner cases without troubles it may have had before. We have also updated the SDK and improved the plugin support with changes necessary to support the Spring plugin we are releasing simultaneously.

Download it right away or check out the changelog first.

JavaRebel 1.1.2 Released

Wednesday, July 23rd, 2008

The last incremental update to the stable branch fixes a few bugs and backports the OSGi support from the development branch. Check out the changelog or download it now.

Get a free JavaRebel license

Thursday, July 17th, 2008

UPDATE: The campaign has finished and the registration is closed. Congratulations to all who won and everyone who didn’t can still grab the discounted personal license.

This week we ran a campaign at DZone giving away 150 JavaRebel personal licenses for free. The campaign was so successful that we decided to extend it to everyone and give 50 licenses extra to those who register here first. Please provide you real name as we find it hard to apply the EULA to “Mr Chocolate Bear”.

As another part of our summer promotional campaign we will discount the personal licenses for JavaRebel to $49 until the end of summer, so if you don’t get the free license you can still grab one cheaply. This offer extends only to single seat licenses, not organizational ones.

Note also that we plan to change the JavaRebel licensing policy in the near future. The license will become a yearly subscription and will be priced differently. The details will be announced two weeks before the change, but we advice everyone who wants to take advantage of the current prices and perpetual licensing policy to make your purchase soon.

Screencast: Developing Swing with JavaRebel

Thursday, June 12th, 2008
We prepared a short screencast that demonstrates how easy it is to develop Swing applications with JavaRebel. We used the simple Metalworks example (a multiwindow mail client mockup) that comes with the Java SDK and played around with adding fields and buttons.

We start by launching the application with “-noverify -javaagent:javarebel.jar” added to the VM params in the Eclipse launch profile. We first add new field “BCC”, which immediately appears in a new window. We then also add a Send button, which first does nothing. We then proceed to add a listener that points to the new send() method. After we make the body of the method to show a message box it is visible in both new and old windows that had a listener added. Finally we refactor the class adding a field and showing its value in the message box. Note that old instances have the field, but it’s initialized to null, while the new instance works properly.

Since most of the Swing initialization will happen only once, a nice trick we found for making a component reinit itself is using the JavaRebel SDK as follows:

JAVA:
  1. ReloaderFactory.getInstance().addClassReloadListener(
  2.     new ClassEventListener() {
  3.   public void onClassEvent(int eventType, Class klass) {
  4.     if (MyClass.class == klass) {
  5.       java.awt.EventQueue.invokeLater(new Runnable() {
  6.         public void run() {
  7.           reinit();
  8.         }
  9.       });
  10.     }
  11.   }
  12. });