Supported frameworks

JRebel is integrated into various frameworks using isolated plugins. Most of these plugins are enabled by default (see notifications of disabled plugins in the JRebel banner on JVM startup).

The integration plugins can be enabled or disabled by adding this JVM parameter:

-Drebel.[plugin_id]=false/true

For example: to disable the EclipseLink plugin, add the JVM argument

-Drebel.eclipselink_plugin=false

Disabling a plugin disables the extra features listed below. The framework and JRebel’s core features (class reloading) will still function. Disabling a plugin might be useful when it causes problems in your environment. Report these incidents via support@zeroturnaround.com. This way we can improve our integration and product.

Note

This list was last updated on September 9th 2014.


Plugins and frameworks

The following is an alphabetical listing of all supported frameworks and plugins.

ADF Core

  • Plugin ID - adf_core_plugin
  • Default state - Enabled.
  • Features - Allows the ADF page definition files to be reloaded.
  • Supported versions - 11G+

ADF Faces

  • Plugin ID - adf_faces_plugin
  • Default state - Enabled.
  • Features - Patches the ADF implementation of the JSF life cycle, allowing the Mojarra plugin to do the rest.
  • Supported versions - 11G+

AspectJ

  • Plugin ID - aspectj_plugin
  • Default state - Enabled.
  • Features - Enables the load-time weaving of AspectJ aspects. This might alter class loading and initialization order during startup.
  • Supported versions - 1.5+

ATG

  • Plugin ID - atg_plugin
  • Default state - Enabled.
  • Features - Reinitializes ATG Nucleuses when the Nucleus elements Java class file has changed. Re-reads the values from the properties file in the reloading process. When the Nucleuses have new connections, they will be initialized. If they have new properties values, those will also be updated.
  • Supported versions - 10.x, 2007.x

Axis2

  • Plugin ID - axis2_plugin
  • Default state - Disabled.
  • Features - Adds, removes and reloads web services defined in the services.xml file. Also adds, removes and reloads web services defined using JAXWS annotations.
  • Supported versions - 1.5.4+

Axis2 WAS

  • Plugin ID - axis2_was_plugin
  • Default state - Enabled.
  • Features - Adds, removes and reloads web services defined using JAXWS annotations.
  • Supported versions - WAS 8.0.0.0+

BVal

  • Plugin ID - bval_plugin
  • Default state - Enabled.
  • Features - Reload changes to MetaBean definitions when the underlying validated class or its composing validation annotations change.
  • Supported versions - 0.5

Camel

  • Plugin ID - camel_plugin
  • Default state - Enabled.
  • Features - Updates the CamelContext when one or more of its associated RouteBuilder classes are changed.
  • Supported versions - 2.8.5+

CaptainCasa

  • Plugin ID - captaincasa_plugin
  • Default state - Enabled.
  • Features - Disables the CaptainCasa layout buffer, making JSP reloading work out of the box.

Click

  • Plugin ID - click_plugin
  • Default state - Enabled.
  • Features - Reloads the menu definition from menu.xml.
  • Supported versions - 2.2+

CXF

  • Plugin ID - cxf_plugin
  • Default state - Enabled.
  • Features - Tracks the changes in the configuration of Apache CXF REST/WS applications.
  • Supported versions - 2.1.2+, 2.4.x, 2.5.x

DeltaSpike

  • Plugin ID - deltaspike_plugin
  • Default state - Enabled.
  • Features - Prevents exceptions during class reloading.
  • Supported versions - 0.x

Ebean

  • Plugin ID - ebean_plugin
  • Default state - Enabled.
  • Features - Integrates with the Ebean load time enhancement.

Eclipse RCP

  • Plugin ID - eclipse_plugin
  • Default state - Enabled.
  • Features - Refreshes plugins when plugin.xml changes.
  • Supported versions - 3.6+

Facelets

  • Plugin ID - facelets_plugin
  • Default state - Enabled.
  • Features - Turns on automatic reloading of Facelets for Facelet development mode. Also provides reloading of Facelet tag libraries.
  • Supported versions - 1.x

FreeMarker

  • Plugin ID - This plugin is integrated.
  • Default state - Enabled.
  • Features - Reloads BeanWrapper. Remedies the flaws of FreeMarker’s own JRebel integration.
  • Supported versions - 2.3.7+

GlassFish EJB

  • Plugin ID - glassfish_plugin
  • Default state - Enabled.
  • Features - Supports adding new EJBs on the fly and altering the existing EJB interfaces.
  • Supported versions - 2+

Groovy

  • Plugin ID - groovy_plugin
  • Default state - Enabled.
  • Features - Refreshes Groovy class metadata and call site cache upon class change.
  • Supported versions - 1.5+

Guice

  • Plugin ID - guice_plugin
  • Default state - Enabled.
  • Features - Supports adding new components and injecting new implicit dependencies. Wires changed dependencies in Guice singletons.
  • Supported versions - 1.0+

GWT

  • Plugin ID - gwt_plugin
  • Default state - Enabled.
  • Features - Enables reloading of client-side classes in hosted (development) mode. Server-side classes should be reloaded without the plugin.
  • Limitations - Native JavaScript methods may not be supported.
  • Supported versions - up to version 2.4

Hibernate

  • Plugin ID - hibernate_plugin
  • Default state - Enabled.
  • Features - Enables configuration reloading (rebuilding of Hibernate’s SessionFactory) when updates are detected to underlying configuration resources (either XML mapping files or model classes with JPA annotations). Enables automatic schema updating if hibernate.hbm2ddl.auto=update or schemaUpdate=true on org.springframework.orm.hibernate3.LocalSessionFactoryBean.
  • Limitations - The SessionFactory rebuilding works when it is being built through classes HibernatePersistence, HibernateService, org.jboss.hibernate.jmx.Hibernate or org.springframework.orm.hibernate3.LocalSessionFactoryBean. All classes that create SessionFactory instances have to be handled separately. If user creates SessionFactory in his own code, the integration won’t capture that.
  • Supported versions - 3.x, 4.x

Hibernate Validator

  • Plugin ID - hibernate_validator_plugin
  • Default state - Enabled.
  • Features - Enables adding/editing/removing Bean Validation constraint annotations on bean classes and parent constraint annotation types (i.e., supports composite constraints). Enables creating/editing custom Bean Validation constraint annotation types.
  • Limitations - Does not alter database schema. Changes to META-INF/validation.xml are not propagated. Changes to XML constraint mappings are not propagated (initial mappings are retained).
  • Supported versions - 3.x, 4.x, 5.x

HK2

  • Plugin ID - hk2_plugin
  • Default state - Enabled.
  • Features - Supports adding new dependencies to services (field, constructor) and as well as PostConstructor annotated methods. Binder classes (subclass of AbstractBinder) are reloaded on changes).
  • Supported versions - 2.2+

iBatis

  • Plugin ID - ibatis_plugin
  • Default state - Enabled.
  • Features - Refreshes changes in iBatis SQL maps.
  • Limitations - Only supports refreshing SQL maps and not anything else. Does not support mappingLocations in Spring SqlMapClientFactoryBean.
  • Supported versions - 2.1.x, 2.2.x, 2.3.x

Jackson 1.x

  • Plugin ID - jackson_plugin
  • Default state - Enabled.
  • Features - Makes Jackson pick up changes (including changed annotations) to classes that it serializes to JSON or de-serializes from JSON. This is done by clearing JSON (de)serializer caches for changed classes.
  • Limitations - Only serializer caches are updated. Doesn’t update de-serializer caches.
  • Supported versions - 1.0+

Jackson 2.x

  • Plugin ID - jackson2_plugin
  • Default state - Enabled.
  • Features - Makes Jackson pick up changes (including changed annotations) to classes that it serializes to JSON or de-serializes from JSON. This is done by clearing JSON (de)serializer caches for changed classes.
  • Limitations - Only serializer caches are updated. Doesn’t update de-serializer caches.
  • Supported versions - 2.0+

Jasypt

  • Plugin ID - jasypt_plugin
  • Default state - Enabled.
  • Features - Allows reloading Jasypt configurations. Defeats password cleaning.
  • Supported versions - 1.9.x

JAXB

  • Plugin ID - jaxb_plugin
  • Default state - Enabled.
  • Features - Enables support for reloadable classes in JAXBContext. Marshaller & Unmarshaller also pick up class changes immediately.

JBoss AOP

  • Plugin ID - jbossaop_plugin
  • Default state - Enabled.
  • Features - Allows for load-time weaving of JBoss AOP aspects.
  • Limitations - The JRebel agent must be placed before JBoss AOP agent in JVM arguments.

JBoss EJB

  • Plugin ID - jboss_plugin
  • Default state - Enabled.
  • Features - Supports adding new EJBs on the fly, altering existing EJB interfaces and injecting new @EJB fields.

JBoss 7

  • Plugin ID - jboss7_plugin
  • Default state - Enabled.
  • Features - Supports adding new EJBs on the fly, altering existing EJB interfaces and injecting new @EJB fields. set -Drebel.jboss7_plugin.reload_ejb=false to disable adding & injecting new EJB beans. Set -Drebel.jboss7_plugin.add_new_packages=false to disable adding EJB beans with new packages.
  • Supported versions - JBoss-as: 7.1, 7.1.1 , 7.2+, 7.3+, 6E, 610E; Wildfly 8.

Jersey

  • Plugin ID - jersey_plugin
  • Default state - Enabled.
  • Features - Supports reloading the configuration of Jersey 1.x applications.
  • Supported versions - 1.5-1.8

Jersey 2

  • Plugin ID - jersey2_plugin
  • Default state - Enabled.
  • Features - Support for Jersey 2 configuration reloading.
  • Supported versions - 2.

JRuby

  • Plugin ID - jruby_plugin
  • Default state - Enabled.

Liferay

  • Plugin ID - liferay_plugin
  • Default state - Enabled.
  • Features - Enables the reloading of JSP hooks, reloading of portlet properties and XML configuration files.
  • Supported versions - Liferay 5 EE SP4+, 5.2 CE+

Liferay status

  • Plugin ID - liferay_status_plugin
  • Default state - Enabled.

Lift

  • Plugin ID - lift_plugin
  • Default state - Enabled.
  • Features - Makes Lift pick up more changes in LiftScreens, Wizards, RestHelpers and MVCHelpers. This is done by re-instantiating any singletons that extend the above-mentioned classes. Keep in mind that the singletons you write that extend the mentioned Lift classes may be initialized multiple times when using this plug-in.
  • Limitations - Some changes in closures/anonymous functions will still cause problems that require restarts.
  • Supported versions - Lift 2.1+ / Scala 2.8+
  • Additional information - First-class Scala Lift support in JRebel

Log4j

  • Plugin ID - log4j_plugin
  • Default state - Enabled.
  • Features - Remembers the configuration file used for Log4j initialization, monitors it for updates and makes Log4j reinitialize itself when this file is changed. Includes a third party contribution from Julien Richard.
  • Supported versions - 1.2.x

Log4j 2

  • Plugin ID - log4j2_plugin
  • Default state - Enabled.
  • Features - Remembers the configuration file used for Log4j 2 initialization, monitors it for updates and makes Log4j 2 reinitialize itself when this file is changed..
  • Supported versions - 2.0+

Logback

  • Plugin ID - logback_plugin
  • Default state - Enabled.
  • Features - Remembers the configuration files that Logback loaded its configuration from (e.g. logback.xml). When updates to those files are detected, the framework configuration is rebuilt.
  • Supported versions - 0.9.12+

Magnolia

  • Plugin ID - magnolia_plugin
  • Default state - Enabled.
  • Features - Updates content2bean and node2bean mappings on class changes. Makes Magnolia root path ignore redirected locations in rebel.xml.
  • Supported versions - 5.1+

Mentawai

  • Features - Mentawai supports integration with JRebel natively.

Metro (JAX-WS)

  • Plugin ID - metro_plugin
  • Default state - Enabled.
  • Features - Keeps track of sun-jaxws.xml and class changes, invoking deploymentDescriptorParser to rebuild the mappings. Has some support for recreating endpoints defined as spring beans. Updates Metro’s dynamic servlets on servlet 3.0 environments.
  • Supported versions - 2.1.x, 2.2.x

Mojarra

  • Plugin ID - mojarra_plugin
  • Default state - Enabled.
  • Features - Reloads JSF configuration and reconfigures managed beans. Refreshes Mojarra annotation and XML-based configuration. Turns on Mojarra development mode and Facelet refreshing.
  • Supported versions - 1.2+

Mustache

  • Plugin ID - mustache_plugin
  • Default state - Enabled.
  • Features - Reloads com.github.spullara.mustache templates to Mustache objects at runtime.
  • Supported versions - 0.8.8

MyBatis

  • Plugin ID - mybatis_plugin
  • Default state - Enabled.
  • Features - Reloads modified SQL maps.

MyFaces

  • Plugin ID - myfaces_plugin
  • Default state - Enabled.
  • Features - Reloads JSF configuration and reconfigures managed beans.
  • Supported versions - 1.1.6+, 1.2.2+, 2.1.0+, 2.2.2

OpenJPA

  • Plugin ID - openjpa_plugin
  • Default state - Enabled.
  • Features - Reloads an EntityManagerFactory when any of the mapping files or annotated entity classes change. When an entity class is reloaded, the corresponding cache entries are flushed.
  • Supported versions - 1.x

OpenWebBeans

  • Plugin ID - openwebbeans_plugin
  • Default state - Enabled.
  • Features - Refreshes the OpenWebBeans class metadata and wires changed dependencies on class change.
  • Supported versions - 1.1.4+, 1.2.2+

PrettyFaces

  • Plugin ID - prettyfaces_plugin
  • Default state - Enabled.
  • Features - Enables prettyfaces-config.xml reloading.
  • Supported versions - 2.x

RESTEasy

  • Plugin ID - resteasy_plugin
  • Default state - Enabled.
  • Features - Enables configuring through context-param javax.ws.rs.Application. Configuring through listener (org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap); configuring through filter (org.jboss.resteasy.plugins.server.servlet.FilterDispatcher); configuring through servlet (org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher). Only configuring an Application class is supported (a class that extends javax.ws.rs.core.Application – it is a standard JAX-RS way). Enables reloading of JAX-RS annotated methods (adding/removing/changing).
  • Limitations - No RestEasy specific/exotic ways of configuration is supported.
  • Supported versions - 2.0.x

RESTlet

  • Plugin ID - restlet_plugin
  • Default state - Enabled.
  • Features - Makes Application of RESTlet framework as a reloadable class.

Scalate

  • Plugin ID - scalate_plugin
  • Default state - Enabled.
  • Features - Allows Scalate templates to reference new fields and methods in classes.
  • Supported versions - 1.5.3

Seam 2

  • Plugin ID - seam_plugin
  • Default state - Enabled.
  • Features - Supports loading new Seam 2 component definitions, either from annotated Java classes or from components.xml. Renaming or removing existing definitions is not supported. Refreshes Seam component metadata and interceptors on class change. Supports reloading Seam method metadata annotations like @Observer, @RaiseEvent, etc. Supports reloading navigation files (pages.xml, any.page.xml) outside Seam’s development mode (supported for Seam 2.1.x and 2.2.x).
  • Limitations - It is recommended to turn off Seam’s development mode while using Seam with JRebel.
  • Supported versions - 2.x

Seam 3

  • Plugin ID - seam3_plugin
  • Default state - Enabled.
  • Features - This plugin provides some minor Seam3 compatibility fixes.

Seam Wicket

  • Plugin ID - seam_wicket_plugin
  • Default state - Enabled.
  • Features - Allows Seam Wicket integration load time-weave Wicket components.

Solder

  • Plugin ID - solder_plugin
  • Default state - Enabled.
  • Features - Prevents exceptions during class reloading.
  • Supported versions - 3.x

Spring Bean

  • Plugin ID - spring_plugin
  • Default state - Enabled.
  • Features - Monitors Spring bean definitions in xml-files, reloads them when changed. Also monitors packages that could contain Spring beans defined by annotations. If new beans (or changes to old ones) are seen, they are reloaded. Forces Spring to redo the bean auto-wiring and singleton bean configuration. Disables caches for properties that are replaced by property placeholders in Spring’s XML configuration files. When underlying properties files have changed, new values will be inserted upon the next reloading of these Spring beans.
  • Supported versions - 2.0, 2.5.x, 3.0.x, 3.1.0, 4.1

Spring Core

  • Plugin ID - spring_plugin
  • Default state - Enabled.
  • Features - Provides Spring Core OSGi bundle support.
  • Supported versions - 2.0, 2.5.x, 3.0.x, 3.1.x, 3.2.x, 4.1

Spring Data

  • Plugin ID - spring_data_plugin
  • Default state - Enabled.
  • Features - Reloads Spring Data repositories and persistent entities.
  • Supported versions - 1.x

Spring MVC

  • Plugin ID - spring_plugin
  • Default state - Enabled.
  • Features - Reloads URL mappings (defined by @RequestPath annotations) when Spring beans have changed. Before processing a request, Spring MVC plugin tells the Spring core plugin to check/reload the beans; if any bean was reloaded, Spring core plugin sends notification to Spring MVC plugin, which then triggers URL mappings rebuilding. Also supports reloading other annotations: @ExceptionHandler, @ModelAttribute, @RequestParam. The plugin ID intentionally collides with the Spring core plugin. Spring MVC integration depends on Spring core integration and cannot be enabled independently.
  • Supported versions - 2.0, 2.5.x, 3.0.x, 3.1.x, 3.2.x

Spring Security

  • Plugin ID - spring_plugin
  • Default state - Enabled.
  • Features - Handles adding/editing of annotation-based security checks. Also handles adding/modifying/removing of blocks in XML configuration files.
  • Supported versions - 3.x

Spring Webflow

  • Plugin ID - spring_webflow_plugin
  • Default state - Enabled.
  • Features - Turns on the hot-loading of flow definitions even in production mode.
  • Supported versions - 2.x

Spring WS

  • Plugin ID - springws_plugin
  • Default state - Enabled.
  • Features - Reloads endpoint mappings when classes have changed (annotation-driven configuration) or when a new endpoint is added in via XML (XML conf). Republishes wsdl after xsd is changed (when using dynamicWsdlDefinition).
  • Supported versions - 2.x

Stripes

  • Plugin ID - stripes_plugin
  • Default state - Enabled.
  • Features - Fixes Stripes’s annotations metadata caching to work with reloading. Classes that have fields with @Validate annotations will be removed from caches and re-processed by Stripes after being reloaded by JRebel. Fixes UrlBinding caching for ActionBeans. UrlBindings configured with the @UrlBinding annotations are reloaded by overriding the behaviour of the NameBasedActionResolver. Supports stripes-guice and stripes-guicer plug-ins for instantiating Guice ActionBeans. Includes third party contribution by Andreas Knifh.
  • Supported versions - 1.5.x

Struts 1

  • Plugin ID - struts1_plugin
  • Default state - Enabled.
  • Features - Reloads full Struts configuration by forcing Struts to re-create it’s ActionServlet when updates to underlying configuration XML-files are detected (XML configuration files are remembered when Struts is initializing itself). Also reloads Struts message resources by emptying the message caches when there are any updates to message resources (message resource files are remembered when Struts is initializing itself).
  • Supported versions - 1.0.x, 1.1.x, 1.2.x, 1.3.x

Struts 2

  • Plugin ID - struts2_plugin
  • Default state - Enabled.
  • Features - Keeps track of XML configuration file updates and triggers the Struts2 configuration reloading when there are any. Keeps track of annotated action-classes. If the set of action-classes has changed or there are changes to any of the action-classes, trigger configuration reloading.
  • Supported versions - 2.0.x, 2.1.x, 2.2.x

Tapestry 4

  • Plugin ID - tapestry4_plugin
  • Default state - Enabled.
  • Features - Enables adding new listener methods to Tapestry’s Page classes. This is a third party contribution.
  • Supported versions - 4.x

Thymeleaf

  • Plugin ID - thymeleaf_plugin
  • Default state - Enabled.
  • Features - Disables the cache mechanism completely.
  • Supported versions - 2.0.15

Tiles 1

  • Plugin ID - tiles1_struts_plugin
  • Default state - Enabled.
  • Features - Enabled reloading of Tiles definitions from XML configuration files. This is implemented by recreating the DefinitionsFactory instance when the underlying XML configuration resources have changed.
  • Supported versions - Struts 1.1, 1.2.x, 1.3.x
  • Additional information - JRebel+Tiles tutorial

Tiles 2

  • Plugin ID - tiles2_plugin
  • Default state - Enabled.
  • Features - In Tiles 2.0.x and 2.1.x, monitors XML-files containing Tiles definitions and makes Tiles reload them when there are any changes to those files. For Tiles 2.2.x and 3.0.x, just turns on Tiles own definitions monitoring and lets it do the job itself. Tested and working also when set up through Spring.
  • Supported versions - 2.0.x, 2.1.x, 2.2.x, 3.0.x
  • Additional information - JRebel+Tiles tutorial

Undertow

  • Plugin ID - undertow_plugin
  • Default state - Enabled.
  • Features - Undertow integration with JRebel.
  • Supported versions - 8.0.0

Undertow Servlet

  • Plugin ID - undertow_servlet_plugin
  • Default state - Enabled.
  • Features - Undertow integration with JRebel.
  • Supported versions - 8.0.0

Vaadin

  • Features - JRebel works with Vaadin out of the box.
  • Supported versions - 6.7.x, 7.x
  • Additional information - JRebel for Vaadin announced.

Vaadin CDI utils

  • Plugin ID - vaadin_cdiutils_plugin
  • Default state - Enabled.
  • Features - Prevents the creation of duplicate observer methods by org.vaadin.virkki.cdiutils.mvp.MvpExtension.
  • Supported versions - 2.0+

Velocity

  • Plugin ID - velocity_plugin
  • Default state - Enabled.
  • Features - Velocity has a method cache for its known beans that prevents changes to those beans (new getter methods) to become accessible from associated Velocity templates. The plugin remedies this by triggering a cache rebuild each time a bean accessed by velocity has been reloaded by JRebel. The implementation is fine-grained: the cache will be emptied only for the bean that was reloaded.
  • Supported versions - 1.6.x

VRaptor

  • Plugin ID - vraptor_plugin
  • Default state - Enabled.
  • Features - Supports adding, modifying and removing controllers with @Resource annotation. Reloads methods marked with @GET, @POST, @DELETE, @PUT, @Path annotations. Works on Guice, Pico and Spring containers.
  • Supported versions - 3.4.1+

WebObjects

  • Plugin ID - webobjects_plugin
  • Default state - Enabled.
  • Features - Third party contribution by Quinton Dolan.

WebLogic

  • Plugin ID - webobjects_plugin
  • Default state - Enabled.
  • Features - Third party contribution by Quinton Dolan.

WebSphere 8.5.5 EJB

  • Plugin ID - websphere855_plugin
  • Default state - Enabled.
  • Features - Supports adding new methods to EJB interfaces.
  • Supported versions - 8.5.5

WebSphere EJB

  • Plugin ID - websphere_plugin
  • Default state - Enabled.
  • Features - Supports adding new methods to EJB interfaces.
  • Supported versions - 6.1, 7.0, 8.5.0.2

Weld

  • Plugin ID - weld_plugin
  • Default state - Enabled.
  • Features - Refreshes the Weld class metadata and wires changed dependencies on class change.
  • Supported versions - 1.x

Weld 2

  • Plugin ID - weld2_plugin
  • Default state - Enabled.
  • Features - Refreshes the Weld class metadata and wires changed dependencies on class change.
  • Supported versions - 2.0.0.SP+

Wicket

  • Plugin ID - wicket_plugin
  • Default state - Enabled.
  • Features - Automatically enables Wicket’s HTML template reloading. Tells Spring to try refreshing its context when Spring bean lookup operations fail. Listens for class reload events. When received, cleans Wicket’s class metadata caches for the reloaded classes which cache the @SpringBean annotations, forcing Wicket to reload the metadata and allowing the annotations to take effect.
  • Supported versions - 1.2.x, 1.3.x, 1.4.x, 1.5.x, 6.x
  • Additional information - JRebel Wicket tutorial.

WildFly

  • Plugin ID - wildfly_plugin
  • Default state - Enabled.
  • Features - WildFly Undertow extension integration.
  • Supported versions - 8.0.0

Wink

  • Plugin ID - wink_plugin
  • Default state - Enabled.
  • Features - Reloads changes in configuration files and application, resource and provider classes.
  • Supported versions - 1.1.3+

ZK Framework

  • Plugin ID - zk_plugin
  • Default state - Enabled.
  • Features - Integrates with the ZK Framework caches.
  • Supported versions - 6.0.x