Writen by one of the first JavaRebel users, Nathan Hamblen, this JavaWorld article talks about building applications with a text editor, Buildr, Jetty and JavaRebel. Bringing examples from Wicket and Scala applications it is worth a read whether you plan to develop without an IDE or not.
December 18, 2007
December 17, 2007
JavaRebel 1.0.1 Released
JavaRebel 1.0.1 includes support for GlassFish v2 or later and some minor fixes to reflection support.
December 6, 2007
Cartoon: Story of a Java Rebel
In addition to the final release we are proud to present the first ZeroTurnaround animated short. It tells a story of an enthusiastic Java programmer who found JavaRebel and how it changed him forever. And you may just know that guy :)
We would also like to apologize to the DZone community, which saw the said short mislabeled as pure entertainment. Yes, this is a promotional animation and it should have been labeled as such and we are very sorry for doing just the opposite. Regrettably DZone does not provide a way to change title or description after submission.
December 5, 2007
JavaRebel 1.0 Final Release Available
We are proud to announce the immediate availability of the JavaRebel 1.0 Final Release! The final release incorporates all of the improvements of the previous releases and fixes a number of issues reported by our users. To celebrate the final release we have also made this cartoon.
JavaRebel eliminates the need for application server redeployment by instantly reloading changes to Java classes. It can also be used for standalone Java applications to pick up changes without restarting. For the impatient: watch the demonstration screencast (~5 mins) and download!
November 27, 2007
JavaRebel 1.0 Final Release Countdown
With the release of the first release candidate the final release of JavaRebel is approaching fast. Although there will be no new features in the final release we will also release an Eclipse plugin that integrates JavaRebel directly with WTP. You can expect the final release before mid-December.
Let us remind you that the early adopter discount will only be valid until the final release. After it is over the price of a JavaRevel 1 seat license will be 150$ with volume discounts adjusted accordingly. Hurry up with your JavaRebel purchases!
JavaRebel 1.0 RC1 Released
We have finished working on JavaRebel features for the 1.0 release and will now focus on fixing the last issues. The first release candidate includes the following changes as compared to the previous milestone:
- Reflection support. Methods added to classes will be properly visible via the Reflection API under Java 5+.
- Eclipse PDE support. Plugin code can now be reloaded using JavaRebel. See this post and screencast for details. Instructions are in the installation manual.
- IntelliJ IDEA plugin development support. Plugin code can now be reloaded using JavaRebel. Instructions are in the installation manual.
- Java EE container support. We now support Orion and Caucho Resin under Java 5. Instructions are in the installation manual.
- Custom classloader support. If JavaRebel doesn’t officially support your container or you use a custom classloader there is a good chance it will work now. See this article for details.
November 6, 2007
JSP Weaver 1.0 M2 Released
Usually JSP is first translated to regular Java code and then compiled into a Java servlet. JSP Weaver eliminates the Java generation and compilation stage by interpreting the JSP files on-the-fly. This reduces the time taken to reload a JSP up to 50 times bringing it from seconds down to milliseconds.
We have launched the next milestone of the JSP interpreter JSP Weaver. This release brings you the long awaited JSP standard syntax support and includes several fixes. All the known limitations have been addressed we are getting ready to release the final version. Now JSP Weaver supports full JSP specification from 1.0 to 2.1. However we do not support Java 5 language changes like generics and enums in scriptlets at the moment.
November 5, 2007
JavaRebel 1.0 M3 Released
We are glad to announce the immediate availability of JavaRebel 1.0 M3! Thanks to all the feedback we received from our users this release is greatly improved in terms of installation simplicity, compatibility, stability and performance.
Since previous version suffered from some problems that stopped our users from taking full advantage of JavaRebel we decided to restart the evaluation period with this release. So you are free to try JavaRebel for 14 days whether you have used the previous version or not.
JavaRebel 1.0 M3 features the following changes:
- Simpler installation. Now to install JavaRebel on Java 5 you need only to add “-noverify -javaagent:javarebel.jar” to the command line.
- Better performance. This especially concerns startup times and background CPU usage. Some users have reported 2-3 times faster application server startup with this version than with previous.
- Improved compatibility. We have worked hard to make JavaRebel play well with others. Special thanks to Scala, Tapestry and Mule communities.
- Expanded support for Java 1.4. We now support in addition to BEA Weblogic 8.x also Oracle OC4J 9.x, 10.x and Tomcat 4.x.
- Numerous bugfixes. Thanks to your bug reports we have fixed a large number of problems with the previous version. This release should be considerably stabler and work out-of-the-box on all supported systems.
See changelog for details.
October 17, 2007
Testing JavaRebel
Quite a few of our users have contributed small pieces of code that test reloading of some parts of Java classes. Some of them have discovered genuine bugs and we are working on fixing them. However there was also some confusion that we want to clear up.
If you want to write a small test for JavaRebel you have to be aware of the two following things:
- JavaRebel will not reload code of currently running method. All new invocations of the method (even concurrent ones) will get reloaded, but the code in a running method will not reload. This means that if you have a method with
while (true) {/*body*/}the body will never reload since you never leave the method. This is not a restriction in any real application, but this does show up in the small tests. - The second issue is more particular to JavaRebel — if all running methods are of the same class they might not get reloaded (this does not always apply, but may compromise your test). This issue may come if you have only one class (e.g. Main) and try to change a method inside the same class.
The recommended way to test JavaRebel is to make a separate Launcher class with a while loop and call a method test() in another class (e.g. Test) with it. If you want to test concurrency make a separate class for threads (inner or anonymous will be enough).
October 10, 2007
JavaRebel for Open Source Development
Although JavaRebel is a commercial product we do support the open source movement by providing free licenses of JavaRebel to qualified Open-Source projects (as you may know we’re developing the open source Aranea Web Application Platform ourselves).
To request a personal OSS license please e-mail support@zeroturnaround.com with the following information
- Project name
- Developer name and e-mail
- Proof of association (link to a page or mailing list associating the developer with the project). This is not needed if the e-mail belongs to the project.
To request a committer license for all project committers a project leader or representative should contact us.










