JRebel’s integration features with other frameworks are implemented as isolated plugins. Most of the plugins are enabled by default (see notifications of disabled plugins in the JRebel banner on JVM startup). Integration plugins can be turned on/off by adding the JVM parameter -Drebel.[plugin_id]=false (/ true). For example, to disable the EclipseLink plugin, add JVM argument -Drebel.eclipselink_plugin=false. If you are using the configuration wizard, you can enable/disable the plugins through the wizard.

Disabling a plugin only disables the extra features listed in the table below for that given plugin. Otherwise, the framework will still function and JRebel’s core features (class reloading) will still be available. Disabling a plugin might be useful when some certain plugin causes problems in your environment or is otherwise buggy. All that kind of incidents should be reported to support@zeroturnaround.com so we can improve our integration and make our product better suit your needs : )

Framework Plugin ID Integration features Tested with versions Expected to work with versions
adf_core_plugin
  • Allows ADF page definition files to be reloaded.
Oracle Fusion Middleware 11.1.1.5.0 11G+
adf_faces_plugin
  • Patches ADF implementation of JSF lifecycle allowing Mojarra plugin to do the rest.
adf-richclient version 33061, adf-richclient version 41532 11G+
aspectj_plugin
  • Enables the load-time-weaving of AspectJ aspects. Can alter class loading/initialization order during startup.
1.5.3, 1.6.8 1.5+
atg_plugin
  • The plugin reinitializes ATG Nucleuses when the Nucleuse elements Java class file has changed.
  • It also re-reads the values from the properties file in the reloading process. So that when Nucleuses have new conntections then they will be initialized and if they have new properties values then those will also be there.
10.1, 2007.4 10.x, 2007.x
axis2_plugin
  • adds, removes, reloads web services defined in the services.xml file
  • adds, removes, reloads web services defined using JAXWS annotations
1.6.2 1.6.2+
camel_plugin
  • Updates a CamelContext when one or more of its associated RouteBuilder classes are changed.
2.8.6 2.8.5+
captaincasa_plugin
  • Disables Captain Casa layout buffer, so that JSP reloading works out of the box.
click_plugin
  • Reloads the menu definition from menu.xml.
2.2.0 2.2+
cxf_plugin
  • Tracks changes in the configuration of Apache CXF REST/WS applications.
2.1.2, 2.4.3, 2.5.2 2.1.2+, 2.4.x, 2.5.x
eclipse_plugin
  • Refreshes plugins when plugin.xml changes.
3.6 3.6+
eclipselink_plugin
  • Reloads an EntityManagerFactory when any of the mapping files or annotated entity classes changes.
  • When an entity class is reloaded the corresponding cache entries are flushed.
1.0.1, 2.0.2, 2.4.x 1.x, 2.x, 2.4.x
facelets_plugin
  • Turns on facelet development mode for automatic reloading of facelets.
  • Provides reloading of facelet tag libraries.
1.1.15.B1 1.x
(integrated)
  • Reloads BeanWrapper. Remedies the flaws of FreeMarker’s own JRebel integration.
2.3.16 2.3.7+
groovy_plugin
  • Refreshes Groovy class metadata and call site cache on class change.
  • After reload, call site cache may be misaligned for obsolete methods on stack.
1.5+
guice_plugin
  • Supports adding new components and injecting new implicit dependencies.
  • Wires changed dependencies in Guice singletons.
1.0, 2.0, 3.0 1.0+
gwt_plugin
  • 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.
2.0.3, 2.4.3 2.x
hibernate_plugin
  • 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.
3.3.2.GA, 4.0.1.Final, 4.1.2 3.x, 4.x
hibernate_validator_plugin
  • 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.
  • Limitations: Changes to META-INF/validation.xml are not propagated.
  • Limitations: Changes to XML constraint mappings are not propagated (initial mappings are retained).
3.2.1.GA, 4.0.2.GA, 4.1.0.Final, 4.2.0.Beta2, 4.3.0.Final, 5.0.0 3.x, 4.x, 5.x
ibatis_plugin
  • Refreshes changes in iBatis SQL maps.
  • Limitations: Only supports refreshing sql maps and not anything else.
  • Limitations: Does not suppor mappingLocations in spring SqlMapClientFactoryBean.
2.1.6, 2.2.0, 2.3.4 2.1.x, 2.2.x, 2.3.x
jackson_plugin
  • Makes Jackson pick up changes (including changed annotations) to classes that it serializes to JSON or deserializes from JSON. Does this by clearing JSON (de)serializer caches for changed classes.
  • Limitations: Only serializer caches are updated. Doesn’t update de-serializer caches.
1.0.0, 1.1.0, 1.5.0, 1.6.1, 1.9.5, 2.0.6 1.0.0+
jaxb_plugin
  • Enables support for reloadable classes in JAXBContext
  • Marshaller & Unmarshaller also pick up class changes immediately
jbossaop_plugin
  • Allows for load-time weaving of JBoss AOP aspects. (JRebel agent must be placed before JBoss AOP agent in JVM arguments.)
2.0
jersey_plugin
  • Reloads Jersey configuration on every request.
1.5, 1.8 1.5-1.8
liferay_plugin
  • Reloading of JSP hooks
  • Reloading of portlet properties and xml configuration files
Liferay 5 EE SP4, 5 EE SP5, 6 EE, 5.2 CE, 6.0.6 CE, 6.1.0 CE Liferay 5 EE SP4+, 5.2 CE+
lift_plugin
  • Makes Lift pick up more changes in LiftScreens, Wizards, RestHelpers and MVCHelpers. Does this 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.
  • See here for additional information.
Lift 2.1, 2.2 / Scala 2.8.0 Lift 2.1+ / Scala 2.8+
log4j_plugin
  • Remembers the configuration file used for Log4j initialization, monitors it for updates, makes Log4j reinitialize itself when this file is changed.
  • Includes a 3rd party contribution from Julien Richard.
1.2.12, 1.2.15 at least all 1.2.x versions
log4j2_plugin
  • Log4j2 JRebel plugin. Remembers the configuration file used for Log4j2 initialization, monitors it for updates, makes Log4j2 reinitialize itself when this file is changed.
2.0-beta4 2.0+
logback_plugin
  • Remembers configuration files that Logback loaded it’s configuration from (e.g. logback.xml). If updates to those files are detected, framework configuration is rebuilt.
0.9.12, 0.9.13, 0.9.26 0.9.12+
(native)
  • Mentawai supports integration with JRebel natively.
metro_plugin
  • Keeps track of sun-jaxws.xml and class changes, invoking deploymentDescriptorParser to rebuild the mappings
  • Updates Metro’s dynamic servlets on servlet 3.0 environments
2.1.7, 2.2.3 2.1.x, 2.2.x
mojarra_plugin
  • Reloads JSF configuration and reconfigures managed beans.
  • Refreshes Mojarra annotation and XML-based configuration.
  • Turns on Mojarra development mode and Facelet refreshing.
1.2_04-b20-p03, 1.2_13-b01-FCS, 2.0.6-FCS, 2.1.2-FCS 1.2+
mustache_plugin
  • Reloads com.github.spullara.mustache templates to Mustache objects at run time.
0.8.8 0.8.8
mybatis_plugin
  • Reloads modified SQL maps.
myfaces_plugin
  • Reloads JSF configuration and reconfigures managed beans.
1.1.6+, 1.2.2+, 2.1.0+ 1.1.6+, 1.2.2+, 2.1.0+
openjpa_plugin
  • Reloads an EntityManagerFactory when any of the mapping files or annotated entity classes changes.
  • When an entity class is reloaded, the corresponding cache entries are flushed.
1.1 1.x
openwebbeans_plugin
  • Refreshes OpenWebBeans class metadata and wires changed dependencies on class change.
1.1.7 on tomee 1.5.1 1.1.4+
resteasy_plugin
  • 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).
  • Reloading of JAX-RS annotated methods (adding/removing/changing).
  • Limitations: No RestEasy specific/exotic ways of configuration is supported
2.0.1.GA 2.0.x
restlet_plugin
  • Makes Application of RESTlet framework as a reloadable class
scalate_plugin
  • Allows scalate templates to reference new fields and methods in classes.
1.5.3 1.5.3
seam_plugin
  • 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, *.page.xml) outside Seam’s development mode (supported for Seam 2.1.x and 2.2.x).
  • Notice: It is recommended to turn off Seam’s development mode while using Seam together with JRebel.
2.0.2.SP1, 2.1.1.GA, 2.2.0.GA, 2.2.1.CR1 2.x
seam3_plugin
  • Minor Seam3 compatibility fixes.
seam_wicket_plugin
  • Lets Seam Wicket integration load-time-weave Wicket components
solder_plugin
  • Prevents exceptions during class reloading.
3.1.0 3.x+
spring_plugin
  • Monitors Spring bean definitions in xml-files, reloads them when changed.
  • Monitors packages that could contain Spring beans defined by annotations. If new beans (or changes to old ones) are seen, reloads them.
  • Makes Spring re-do the bean auto-wiring and singleton bean configuration.
  • Disables caches for properties that are replaced replaced for property placeholders in Spring’s XML configuration files. When underlying properties files have changed, new values will be inserted on next reloading of these Spring beans.
2.0, 2.5.6, 3.0.2, 3.1.0, 3.1.0, 4.0 2.0, 2.5.x, 3.0.x, 3.1.x, 3.2.x, 4.x
spring_plugin
  • Monitors Spring bean definitions in xml-files, reloads them when changed.
  • Monitors packages that could contain Spring beans defined by annotations. If new beans (or changes to old ones) are seen, reloads them.
  • Makes Spring re-do the bean auto-wiring and singleton bean configuration.
  • Disables caches for properties that are replaced replaced for property placeholders in Spring’s XML configuration files. When underlying properties files have changed, new values will be inserted on next reloading of these Spring beans.
2.0, 2.5.6, 3.0.2, 3.1.0, 3.1.0, 4.0 2.0, 2.5.x, 3.0.x, 3.1.x, 3.2.x, 4.x
spring_plugin
  • Spring Core OSGi bundle support.
2.0, 2.5.6, 3.0.2, 3.1.0, 3.1.0, 4.0 2.0, 2.5.x, 3.0.x, 3.1.x, 3.2.x, 4.x
spring_data_plugin
  • Reloads Spring Data repositories and persistent entities.
1.3.2 1.x
spring_plugin
  • Reload URL mappings (defined by @RequestPath annotations) when Spring beans have changed. (Before processing a request, Spring MVC plugin tells 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 one of Spring core plugin. Spring MVC integration depends on Spring core integration and cannot be enabled independently.
2.0, 2.5.6, 3.0.2, 3.1.0, 3.1.0, 4.0 2.0, 2.5.x, 3.0.x, 3.1.x, 3.2.x, 4.x
spring_plugin
  • Handles adding/editing of annotation-based security checks. Handles adding/modifying/removing of blocks in xml configuration files
3.0.x, 3.1.x 3.x
spring_webflow_plugin
  • Turns on flow definitions hot-loading even in production mode.
2.1.1 2.x
springws_plugin
  • Reloads endpoint mappings when classes have changed (annotation-driven conf) or new endpoint is added in via xml (xml conf)
  • Republishes wsdl after xsd is changed (when using dynamicWsdlDefinition)
2.0.2 2.x
stripes_plugin
  • 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. (available since JRebel 4.0 M2)
  • Includes 3rd party contributions from Andreas Knifh.
1.5.3, 1.5.5 1.5.x
struts1_plugin
  • 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.)
  • Reloads Struts’s 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.)
1.0.2, 1.1, 1.2.7, 1.3.10 1.x.x (1.0.x, 1.1.x, 1.2.x, 1.3.x)
struts2_plugin
  • 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.
2.0.14, 2.1.8.1, 2.2.3.1 2.0.x, 2.1.x, 2.2.x
tapestry4_plugin
  • Enables adding new listener methods to Tapestry’s Page classes.
  • 3rd party contribution.
4.1.6 4.x
thymeleaf_plugin
  • Disables cache mechanism completely.
2.0.15 2.0.15
tiles1_struts_plugin
  • Enabled reloading of Tiles definitions from XML configuration files. Implements it by recreating DefinitionsFactory instance when the underlying XML configuration resources have changed.
  • See the JRebel+Tiles tutorial.
Struts 1.1, 1.2.4, 1.2.9, 1.3.10 Struts 1.1, 1.2.x, 1.3.x
tiles2_plugin
  • 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’s own definitions monitoring and lets it do the job itself.
  • Tested and working also when set up through Spring.
  • See the JRebel+Tiles tutorial.
2.0.7, 2.1.4, 2.2.2, 3.0.1 2.0.x, 2.1.x, 2.2.x, 3.0.x
toplink_plugin
  • Reloads an EntityManagerFactory (SessionFactory) when any of the mapping files or annotated entity classes change.
  • Works with JPA configuration and non-JPA configuration if using org.springframework.orm.toplink.LocalSessionFactoryBean (requires TopLinkSpringPlugin).
  • Limitations: Custom non-JPA configuration cannot be supported as we do not know how the configuration was loaded.
10.1.3 10.x
toplink_spring_plugin
  • Reloads a SessionFactory when any of the mapping files or annotated entity classes changes. (Works with non-JPA configuration if using org.springframework.orm.toplink.LocalSessionFactoryBean).
  • Requires TopLinkPlugin.
  • See here for additional details.
TopLink 10.1.3 / Spring 2.5.6 TopLink 10.x / Spring 1.2.x, 2.x, 3.x
(native)
  • JRebel works out of the box with Vaadin framework. Read more here.
6.7, 7 6.7.x, 7.x
vaadin_cdiutils_plugin
  • Vaadin CDI utils plugin. Prevents creation of duplicate observer methods by org.vaadin.virkki.cdiutils.mvp.MvpExtension.
2.1.1 2.0+
velocity_plugin
  • 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: cache will be emptied only for the bean that was reloaded.
1.6.3 1.6.x, probably others as well
vraptor_plugin
  • Supports adding, modifying and removing controllers with @Resource annotation
  • Reloads methods marked with @GET, @POST, @DELETE, @PUT, @Path annotations
  • Works on Guice, Pico, Spring containers
3.4.1 3.4.1+
webobjects_plugin
  • 3rd contribution by Quinton Dolan
weld_plugin
  • Refreshes Weld class metadata and wires changed dependencies on class change.
1.0.1 1.x+
wicket_plugin
  • Automatically turns on 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 that cache the @SpringBean annotations, forcing Wicket to reload the metadata and enabling annotations to take effect.
  • See the JRebel+Wicket tutorial.
1.2.7, 1.3.7, 1.4.12, 1.5.0, 6.3.0 1.2.x, 1.3.x, 1.4.x, 1.5.x, 6.x
wink_plugin
  • Reloads changes in configuration files and application, resource and provider classes.
1.1.3-incubating 1.1.3+
zk_plugin
  • Integrates with ZK Framework caches
6.0.1 6.0.x