Skip to content

Latest commit

 

History

History
20 lines (16 loc) · 975 Bytes

File metadata and controls

20 lines (16 loc) · 975 Bytes

Mojarra plugin

  • Clear resource bundle cache after any *.properties file is changed.
  • Reinject @ViewScoped beans, reinject Omnifaces @ViewScoped beans.
  • Reload ManagedBean annotated beans on class redefinition / change.
  • Register ManagedBean annotated beans on class definition.

Implementation notes:

Plugin initialization is triggered after com.sun.faces.config.ConfigManager.initialize() method in servlet classloader.

The plugin listens defined/changed ManageBean classes and adds them to the dirty bean list. The dirty beans will be reloaded on the next call to the servlet.

BeanManagerTransformer is used to add reloading features to BeanManager. It basically adds a list to the class to hold the dirty beans and it also adds helper methods to process the dirty beans.

LifecycleImplTransformer is used to patch LifecycleImpl.execute() method. This method is patched to call process dirty beans after the execute method.