Discussions

News: JRebel 3.0 Released

  1. JRebel 3.0 Released (10 messages)

    This is exciting -- Today is the day that we get to announce the culmination of 8 months of development effort, fine-tuning, bug fixing, and, awesome awesome awesome feature-adding (don't just take our word for it, check out the buzz on Twitter). Today we announce the release of JRebel 3.0!

    JRebel has matured a lot with this release. Adding to the ability to reload classes, it now integrates tightly with all common Enterprise stacks, allowing seamless reloading of almost all changes across the board. We're talking about preventing 100% of your incremental builds and over 90% of the redeploys that you had to do during the day. Keep your focus, stay in flow, and have more fun delivering more features, with less defects, faster -- just by taking your time back from an antiquated process.

    Here's the exciting part -- the new features:

    • Better Java EE support
      • EJB -- JRebel now includes plugins for JBoss (4.x, 5.x), Oracle Weblogic (8.x, 9.x, and 10.x) and IBM WebSphere (6.1 and 7.0) that support changing the Local/Remote EJB interface in EJB 1.x, 2.x and 3.x. It also supports on-the-fly dependency injection for @EJB annotation in JBoss. Unfortunately we don’t support EJB interface changes on IBM WebSphere 6.0 or earlier and require the EJB 3.0 Feature Pack to be installed on IBM WebSphere 6.1, even if you use EJB 1.x or 2.x.
      • JSP <scriptlet>-s -- Now when you change your Java code (e.g. add a new class or method) it can be immediately used in the Java code snippets in the JSP.
      • JSF -- Plugin for Mojarra that supports changes to configuration and annotations, and other JSF implementations are on the way.
      • CDI -- Plugin for Weld that supports changes to annotations.
      • JPA -- Plugin for OpenJPA that supports changes to entities and configuration. We're considering this beta for this release and have it disabled by default. Other JPA implementation are on the way.
    • Framework support
      • Seam -- Supports changes to annotations.
      • Hibernate -- Supports changes to entities, annotations and configuration. This rocks, but we're taking it easy and considering it beta. It's disabled by default.
    • Support for adding static fields and changing enums. Previously when you added a static field to your class you'd see a discouraging warning in the console and get an exception when trying to access the field. Now JRebel will happily print "Reinitialized class" and your application will continue working as if nothing happened. To top it off you can also change Java 1.5 enums in any way you like and they'll continue working!
    • Startup time improvements. We significantly improved class/resource lookup overhead with caching and better server integration. Our nightly users are reporting up to 2x improvements in startup time.
    • 25%-30% less memory use. It is not uncommon to need a lot of PermGen heap with JRebel enabled, so we optimized memory use and will continue to drive it down in the upcoming milestones.
    • Better Proxy Support JRebel now integrates tightly with Javassist and CgLib, providing much better compatibility with changes to class signature in some advanced cases, e.g. JBoss Seam.
    • rebel.xml Editor. A GUI editor for creating JRebel configuration files is now available and will soon be integrated in the IDEs. This makes it easier to setup your project and get started with JRebel.

    We're also happy to announce the release of the JRebel Enterprise Add-On. It's meant for larger enterprises working with a more diverse set of applications, and preferences towards more centralized management. It supports older or discontinued technologies, which often require more maintenance and have longer restart & redeploy times. The Enterprise Add-On will be a free upgrade for all current users - as long as you upgrade before June 1st.

    You can try JRebel free for 30 days, with or without the Enterprise Add-On from the same place where everyone else gets the new version.. right here! Download JRebel

    Threaded Messages (10)

  2. JRebel 3.0 Released[ Go to top ]

    No plugin for Glassfish v3?
  3. JRebel 3.0 Released[ Go to top ]

    There's no EJB interface change support yet, but it's in the works. 
  4. JRebel 3.0 Released[ Go to top ]


    • Better Java EE support
      • EJB -- JRebel now includes plugins for JBoss (4.x, 5.x), Oracle Weblogic (8.x, 9.x, and 10.x) and IBM WebSphere (6.1 and 7.0) that support changing the Local/Remote EJB interface in EJB 1.x, 2.x and 3.x. It also supports on-the-fly dependency injection for @EJB annotation in JBoss. 

    Wow, this is really cool! JRebel is definitely one of the more clever pieces of software in my book.

    I do wonder about one case: adding a completely new EJB and injecting that somewhere. Isn't this supported?

    Anyway, congrats on the release! :-)

  5. JRebel 3.0 Released[ Go to top ]

    We don't support adding new EJBs yet and it won't even be possible on all appservers. 
  6. JRebel 3.0 Released[ Go to top ]

    We don't support adding new EJBs yet and it won't even be possible on all appservers. 

    Will it --theoretically-- be possible on JBoss AS and Glassfish?

    On both these platforms, you might even consider offering a patch for those if the required functionality to reload EJBs is not available. I think at least JBoss is pretty open minded to input from the community.
  7. JRebel 3.0 Released[ Go to top ]

    The JBoss and GlassFish are the most likely to be supported. But we really need to look into this, the initial impression was that it could be very complicated.
  8. JRebel 3.0 Released[ Go to top ]

    The JBoss and GlassFish are the most likely to be supported. But we really need to look into this, the initial impression was that it could be very complicated.

    Hmmm, the client request part should normally be pretty dynamic already. A client can request a bean from JNDI, and because of JNDI federation and remote servers the client shouldn't have any dependencies to a type anyway.

    The bean container of course should take the bean into service, and normally this only happens during startup, where bean graphs are inspected to determine the injection strategy and other dependencies. I'm not sure how dynamic this is. Maybe this series might be of some help: http://java.dzone.com/articles/a-look-inside-jboss-microconta

    Apart from that, you might just want to sent the JBoss guys a mail and ask them about the options already available.
  9. JRebel (j)eases Java[ Go to top ]

    I'm using JRebel for the development of my JeaseCMS-project. The idea behind Jease is to ease Java-web-application-development. With JRebel 3.0 I have now instant turnarounds between a code change and seeing the changes in a browser, no waits, no server restarts, no deployment, it just works.

    I've tested JRebel 3.0 for the whole weekend and didn't had to restart Tomcat once. JRebel is a fantastic product if you want to have all the comfort and type-safety from Java and the turnaround times from scripting languages (like PHP).
  10. JRebel 3.0 Released[ Go to top ]

    One of the few I'm willing to pay for. Kudos!
  11. I wrote this tutorial recently: https://community.jboss.org/wiki/JRebel3withSeam2xtutorial based on JRebel 3.0.1.

    Demonstrates setup and hot redeploy for local interface session bean addition as well as @In Seam injection addition.

    Enjoy!

    I'm wondering what's going to happen in JDK7 with the modular design, etc.  If Oracle will design something similar to (or purchase) JRebel.