]
Samba Kolusu commented on CDI-682:
----------------------------------
another argument in support of registering & unregistering beans, interceptors,
decorators, producers etc at runtime could be "micro-services" - each module
(with cdi beans & interceptors, injection-points, etc) being deployed & undeployed
(or installed & uninstalled) at run time - each module providing a subset of the
functionality that a monolithic web application provides in entirety.
isn't microservices the hot topic that is being targeted for javaee 8?
Allow unregistration of CDI beans at run time, through API
----------------------------------------------------------
Key: CDI-682
URL:
https://issues.jboss.org/browse/CDI-682
Project: CDI Specification Issues
Issue Type: Feature Request
Components: Beans, Events, Interceptors
Affects Versions: 1.2.Final
Reporter: Samba Kolusu
much like the ability to register beans at runtime through API
(
https://issues.jboss.org/browse/CDI-114)
also provide API
BeanManager::unregister("beanName"), or BeanManager::unregister(XYZBean.class)
to unregister beans at runtime, and corresponding events (BeforeUnregisteringBean,
AfterUnregisteringBean, etc) so that interested listeners can take appropriate actions in
the event of a bean getting removed from CDI context.
these two together will help build pluggable web applications much like OSGI modules.
right now, installing new beans or removing exiting beans requires restart of CDI
container, if not web application. with the addition of these two features [registering
beans at run time, through BeanManager::register(XYZBean.class) ], and unregistering beans
at runtime [BeanManager::unregister(XYZBean.class) ] true modularity comes to Java EE
world, without the necessity to restart