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-...

Archive for the ‘news’ Category

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.

JSP Weaver 1.1 released

Tuesday, August 19th, 2008

After a long wait we have released the 1.1 version of JSP Weaver. The new version includes all the accumulated fixes and also adds couple of new features.

  • JSP Weaver can be used to verify JSP files offline. As an automated task or a manual check on the JSP codebase.
  • With special configuration it is possible to load JSP files from the CLASSPATH instead of the Servlet path. Solves the problem with complex configurations where JSP files are packaged in JAR files.

See the changelog for the full list of changes or head off to the download section to get the latest version.

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.

JavaRebel and Eclipse WTP configuration

Monday, August 11th, 2008

There has been a lot of discussion regarding the use of JavaRebel with Eclipse Web Tools Project (WTP). JavaRebel does work with WTP but the configuration is not that straightforward. In this article we’ll try to give step by step instructions on how to make WTP and JavaRebel get along.

The article is divided into two parts. If you have JavaRebel installed under WTP you can skip to the configuration section. If you are an old time WTP user just enable autopublishing and disable auto reloading for modules.

JavaRebel Installation under WTP

Lets get started by downloading the JavaRebel zip archive from the download page. Unzip the archive somewhere on your harddisk. Copy the javarebel.jar from the uncompressed folder to a location that you can use later on. We’ll assume on Windows that this is c:\javarebel.jar and on Linux /home/john/javarebel.jar.

We’ll configure the startup of the container next. I will be using Tomcat v6.0 version. Open up the “Run Configurations” dialog from the Eclipse menu Run » Run Configurations. You should see the following dialog.

Click for original size - Run Configurations dialog

Next open the (x)= Arguments tab in the dialog and edit the VM arguments text area as seen on the next screenshot. Add the following option to the end of the area.

Windows
-noverify -javaagent:c:\javarebel.jar

Linux
-noverify -javaagent:/home/john/javarebel.jar

Click for original size - Run Configurations JavaRebel Configured

Now apply the settings and run the configuration. You should see the following message in the console output.

Installation Confirmation

You have installed JavaRebel under WTP now. Next you need to configure some WTP options so that WTP auto publish would not interfere with JavaRebel class reloading.

WTP Specific Configurations

Automatic publishing should be enabled in the server configuration. Double click on your server name and a configuration page opens. Under the Publish section you should have the Automatically publish when resources change option selected. I’ve outlined the automatic publishing settings in the following screenshot.

Click for original size - Automatic Publishing Settings

All your modules should have Auto Reload disabled. You can achieve this by opening the Modules tab of the server configuration and editing each module to disable auto reloading.

Click for original size - Disable Auto reloading

This is it. Once you have these configurations in place and you have restarted the container you are ready to use JavaRebel with WTP.

Make changes to your Java source files and they will be reloaded by JavaRebel. Make changes to your static content under you WebContent and they will be copied by WTP to your deployment folder.

If you have any questions or problems about setting up WTP and JavaRebel leave a comment or send an email to support [at] zeroturnaround.com.

Eclipse 3.4 and WTP 3.0 were used to test the functionality. The article is inspired by Utilisation de JavaRebel avec Eclipse.

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.