Package org.glassfish.admin.mbeanserver
Class PendingConfigBeans
- java.lang.Object
-
- org.glassfish.admin.mbeanserver.PendingConfigBeans
-
- All Implemented Interfaces:
org.glassfish.config.support.ConfigBeanListener,org.glassfish.hk2.api.PostConstruct,org.jvnet.hk2.config.TransactionListener
@Service(name="PendingConfigBeans") public class PendingConfigBeans extends Object implements org.glassfish.config.support.ConfigBeanListener, org.glassfish.hk2.api.PostConstruct, org.jvnet.hk2.config.TransactionListener
Called when ConfigBeans come into the habitat (see GlassfishConfigBean); a job queue is maintained for processing by the AMXConfigLoader, which is lazily loaded.- Author:
- llc
-
-
Constructor Summary
Constructors Constructor Description PendingConfigBeans()/** Singleton: there should be only one instance and hence a private constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description PendingConfigBeanJobadd(org.jvnet.hk2.config.ConfigBean cb, boolean useLatch)voidonEntered(org.glassfish.hk2.api.ActiveDescriptor<org.jvnet.hk2.config.ConfigBean> provider)PendingConfigBeanJobpeek()voidpostConstruct()booleanremove(org.jvnet.hk2.config.ConfigBean cb)Removing a ConfigBean must ensure that all its children are also removed.intsize()voidswapTransactionListener(org.jvnet.hk2.config.TransactionListener newListener)amx-impl has its own TransactionListener which takes over once AMX is loaded.PendingConfigBeanJobtake()voidtransactionCommited(List<PropertyChangeEvent> events)This is a workaround for the fact that the onEntered() is not being called in all cases, namely during deployment before AMX has loaded.voidunprocessedTransactedEvents(List<org.jvnet.hk2.config.UnprocessedChangeEvents> changes)
-
-
-
Method Detail
-
size
public int size()
-
postConstruct
public void postConstruct()
- Specified by:
postConstructin interfaceorg.glassfish.hk2.api.PostConstruct
-
take
public PendingConfigBeanJob take() throws InterruptedException
- Throws:
InterruptedException
-
peek
public PendingConfigBeanJob peek() throws InterruptedException
- Throws:
InterruptedException
-
onEntered
public void onEntered(org.glassfish.hk2.api.ActiveDescriptor<org.jvnet.hk2.config.ConfigBean> provider)
- Specified by:
onEnteredin interfaceorg.glassfish.config.support.ConfigBeanListener
-
add
public PendingConfigBeanJob add(org.jvnet.hk2.config.ConfigBean cb, boolean useLatch)
-
remove
public boolean remove(org.jvnet.hk2.config.ConfigBean cb)
Removing a ConfigBean must ensure that all its children are also removed. This will normally happen if AMX is loaded as a side effect of unregistering MBeans, but if AMX has not loaded we must ensure it directly. This is all caused by an HK2 asymmetry that does not issue REMOVE events for children of removed elements.TODO: remove all children of the ConfigBean.
-
swapTransactionListener
public void swapTransactionListener(org.jvnet.hk2.config.TransactionListener newListener)
amx-impl has its own TransactionListener which takes over once AMX is loaded. Note that it is synchronized with transactionCommited() [sic] to avoid a race condition.
-
transactionCommited
public void transactionCommited(List<PropertyChangeEvent> events)
This is a workaround for the fact that the onEntered() is not being called in all cases, namely during deployment before AMX has loaded. See disableTransactionListener() above.- Specified by:
transactionCommitedin interfaceorg.jvnet.hk2.config.TransactionListener
-
unprocessedTransactedEvents
public void unprocessedTransactedEvents(List<org.jvnet.hk2.config.UnprocessedChangeEvents> changes)
- Specified by:
unprocessedTransactedEventsin interfaceorg.jvnet.hk2.config.TransactionListener
-
-