Since the release of JRebel 7.1.0 six months ago, JRebel has become part the robust suite of Java solutions at Rogue Wave Software. To celebrate this, we’ve made the new JRebel release two thousand and eleven times more awesome! Starting with this release, the version number will be based on the year. Making 2018.1.0, the first major release of JRebel in 2018. We’ll follow this up with 2018.2.0, the second major release this year, and so on. The regular minor updates will increment the third digit in the version number, which means the next minor release will be called 2018.1.1. We continuously improve our integrations and deliver support for new framework versions with each JRebel release, be that a major or minor update. So, what are you waiting for?
Java 9 you said? We’re already on Java 10!
Shortly before the release of Java 9, Oracle announced their plans for a new release cadence for the Java Platform — with a feature release twice a year. Previously, two or more years often passed between major Java releases. The upside to the new cadence is that Java 10 is already available, and JRebel 2018.1.0 supports it! From a developer’s point of view, the biggest change in Java 10 is the addition of Local-Variable Type Inference. This is the ability to use
var as the type for local variables, and let the compiler figure out what type it is based on how it gets initialized. This means that you can now write something like:
var list = new ArrayList<String>();
And the compiler will automatically deduce that
list is an:
Java is still a strongly typed language, and
var does not change that. It just enables the compiler to fill in the blanks.
Under the hood, Java 10 brings many other changes to the JVM. For instance, the G1 Garbage Collector now has a parallel full GC. A new Garbage Collector interface has also been introduced. This will make it easier to add new GCs to the JVM in the future — and multiple are already in the pipeline.
Like Java 9, Java 10 is also not a “Long Term Support” (LTS) release. This means that updates from Oracle are only available until the next major release (six months). But don’t worry. If you’re currently using Java 9 with JRebel and are not ready to update to Java 10 just yet, we’ve still got you covered. We plan to support all non-LTS Java versions for two years following their release, giving you plenty of time to upgrade. We intend to support upcoming LTS releases, like Java 11 later this fall, at least for as long as Oracle provides premier support for them. Beyond that, we’ll continue support based on customer demand. Support for releases from other vendors will follow a similar timeline. To conclude, JRebel 2018.1.0 supports the following LTS releases: Java 6, 7, and 8, and the non-LTS releases: Java 9 and 10.
Keeping up with the ecosystem
For JRebel, we’re constantly trying to be at the forefront of the ecosystem, supporting new versions of frameworks as they are released. Spring Boot is no exception. Spring Boot 2 was released a short while ago, and JRebel 2018.1.0 supports it — enabling you to reload your classes and configurations just like you are used to. This includes reloading the new way of defining request handlers in Spring Boot through RouterFunction beans. Changes made to bean producer methods, producing a RouterFunction bean can be reloaded and your request mappings are reloaded accordingly.
In addition to Spring Boot 2, JRebel has also added support for many new application server versions over the past six months including GlassFish 5, Wildfly 12, and JBoss EAP 7.1. New integrations have also been added, so you can reload more configuration changes than ever before. New additions include reloading service activators in Spring Integrations or reloading bean mappings with Dozer.
Out with the old, in with the new
JRebel has shipped with two Agents for over three years now. The JRebel Agent, which was introduced in JRebel 6.0.0 and became the default in 7.0.0, has been received so well that it is time for us to retire the Legacy Agent. The JRebel 7.x versions are the last to include the Legacy Agent as part of the distribution. This means that beginning with JRebel 2018.1.0, Java 5 is no longer supported. If you find yourself in the situation where you still develop or maintain an application running on Java 1.4 or Java 5, the previous versions of JRebel, containing the Legacy Agent, are still available to you through the download archive.