Class AMXConfigImpl
- java.lang.Object
-
- org.glassfish.admin.amx.impl.mbean.MBeanImplBase
-
- org.glassfish.admin.amx.impl.mbean.AMXImplBase
-
- org.glassfish.admin.amx.impl.config.AMXConfigImpl
-
- All Implemented Interfaces:
DynamicMBean
,MBeanRegistration
,NotificationBroadcaster
,NotificationEmitter
,AMX_SPI
,NotificationSender
@Taxonomy(stability=NOT_AN_INTERFACE) public class AMXConfigImpl extends AMXImplBase
Base class from which all AMX Config MBeans should derive (but not "must").
-
-
Field Summary
-
Fields inherited from class org.glassfish.admin.amx.impl.mbean.AMXImplBase
EMPTY_OBJECT_NAMES, GET, GET_PREFIX, mMBeanInfo, OBJECT_NAME_SUFFIX, SET
-
Fields inherited from class org.glassfish.admin.amx.impl.mbean.MBeanImplBase
EMPTY_STRING_ARRAY, mSelfObjectName, mServer
-
-
Constructor Summary
Constructors Constructor Description AMXConfigImpl(ObjectName parentObjectName, ConfigBean configBean)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected String[]
attributeNameToType(String attributeName)
Supply possible types to be tried based on attribute namestatic String
convertAttributeName(String s)
ObjectName
createChild(String type, Map<String,Object> params)
ObjectName[]
createChildren(Map<String,Map<String,Object>[]> childrenMaps, Map<String,Object> attrs)
protected Object
getAttributeFromConfigBean(String amxName)
Get an Attribute.protected Object
getAttributeManually(String name)
Subclasses should override this to handle getAttribute( attrName ).protected ConfigModel.Property
getConfigModel_Property(String xmlName)
Map<String,String>
getDefaultValues(boolean useAMXAttributeNames)
Map<String,String>
getDefaultValues(String type, boolean useAMXAttributeNames)
String
getName()
The actual name could be different than the 'name' property in the ObjectName if it contains characters that are illegal for an ObjectName.protected Object
invokeManually(String operationName, Object[] args, String[] types)
Automatically figure out getFactory(), create Config(), remove Config(). static List<String>
listOfString()
exists so we can get the parameterized return typeObjectName
removeChild(String type)
ObjectName
removeChild(String type, String name)
String
resolveAttribute(String attrName)
AttributeList
resolveAttributes(String[] attrNames)
String
resolveAttributeValue(String varString)
Resolve a template String.Boolean
resolveBoolean(String attrName)
Integer
resolveInteger(String attrName)
Long
resolveLong(String attrName)
void
sendConfigCreatedNotification(ObjectName configObjectName)
void
sendConfigRemovedNotification(ObjectName configObjectName)
protected void
setAttributeManually(Attribute attr)
Subclasses should override this to handle setAttribute( attr ).AttributeList
setAttributes(AttributeList attrs)
Note that the default implementation sets attributes one at a time, but that MBeans with transactional requirements (eg configuration) may wish to set them as a group.AttributeList
setAttributesInConfigBean(AttributeList attrsIn)
AttributeList
setAttributesTransactionally(AttributeList attrs)
-
Methods inherited from class org.glassfish.admin.amx.impl.mbean.AMXImplBase
attributeTypeMatches, child, child, child, findGetter, findMethod, findSetter, getAncestorByType, getAttribute, getAttributeByMethod, getAttributeInfo, getAttributeInfos, getAttributeInternal, getAttributeNames, getAttributeNoThrow, getAttributes, getAttributeType, getChildren, getChildren, getChildren, getChildren, getChildrenMap, getDomainRoot, getDomainRootProxy, getLogger, getMBeanInfo, getMBeanTracker, getNotificationInfo, getObjectNameAttribute, getObjectNames, getObjectNamesForAttribute, getParent, getParentProxy, getProxy, getProxyFactory, getSelf, getSelf, getterNameMatches, handleException, handleGetAttributeException, handleInvokeThrowable, impossible, invoke, isReadOnlyAttribute, isUtilityMBean, java, operationNameMatches, postRegisterHook, postRegisterModifyMBeanInfo, preDeregisterHook, preRegister, preRegisterDone, preRegisterHook, preRegisterModifyName, registerChild, registerChildren, sendAttributeChangeNotification, setAttribute, setAttributeByMethod, setAttributeInternal, shouldEmitNotifications, stringify, supportsChildren, toString, unimplementedAttribute, unimplementedOperation, unregisterChildren
-
Methods inherited from class org.glassfish.admin.amx.impl.mbean.MBeanImplBase
_getMBeanLogLevel, addNotificationListener, addNotificationListener, createNotificationBuilder, debug, debug, debugMethod, debugMethod, enableAMXDebug, getAMXDebug, getDebugID, getDebugOutput, getJMXDomain, getListenerCount, getMBeanLogger, getMBeanLoggerName, getMBeanLogLevel, getMBeanLogLevelInt, getMBeanServer, getNotificationBuilder, getNotificationEmitter, getNotificationTypeListenerCount, getObjectName, logFine, logFiner, logFinest, logInfo, logSevere, logWarning, postDeregister, postDeregisterHook, postRegister, preDeregister, quote, removeNotificationListener, removeNotificationListener, sendNotification, sendNotification, sendNotification, sendNotification, setAMXDebug, setMBeanLogLevel, shouldOmitObjectNameForDebug, toString, trace
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface javax.management.NotificationBroadcaster
addNotificationListener, removeNotificationListener
-
Methods inherited from interface javax.management.NotificationEmitter
removeNotificationListener
-
-
-
-
Constructor Detail
-
AMXConfigImpl
public AMXConfigImpl(ObjectName parentObjectName, ConfigBean configBean)
-
-
Method Detail
-
setAttributeManually
protected void setAttributeManually(Attribute attr) throws AttributeNotFoundException, InvalidAttributeValueException
Description copied from class:AMXImplBase
Subclasses should override this to handle setAttribute( attr ). It will be called if no appropriate setter is found.- Overrides:
setAttributeManually
in classAMXImplBase
- Throws:
AttributeNotFoundException
InvalidAttributeValueException
-
setAttributes
public AttributeList setAttributes(AttributeList attrs)
Note that the default implementation sets attributes one at a time, but that MBeans with transactional requirements (eg configuration) may wish to set them as a group.- Specified by:
setAttributes
in interfaceDynamicMBean
- Overrides:
setAttributes
in classAMXImplBase
-
setAttributesTransactionally
public AttributeList setAttributesTransactionally(AttributeList attrs) throws Exception
- Throws:
Exception
-
getName
public String getName()
The actual name could be different than the 'name' property in the ObjectName if it contains characters that are illegal for an ObjectName. Also, there can be a Name attribute which is not a key value.- Specified by:
getName
in interfaceAMX_SPI
- Overrides:
getName
in classAMXImplBase
-
resolveAttributeValue
public String resolveAttributeValue(String varString)
Resolve a template String. SeeAttributeResolver
for details.
-
resolveAttributes
public AttributeList resolveAttributes(String[] attrNames)
-
createChildren
public ObjectName[] createChildren(Map<String,Map<String,Object>[]> childrenMaps, Map<String,Object> attrs)
-
createChild
public ObjectName createChild(String type, Map<String,Object> params)
-
listOfString
public static List<String> listOfString()
exists so we can get the parameterized return type
-
removeChild
public ObjectName removeChild(String type)
-
removeChild
public ObjectName removeChild(String type, String name)
-
invokeManually
protected Object invokeManually(String operationName, Object[] args, String[] types) throws MBeanException, ReflectionException, NoSuchMethodException, AttributeNotFoundException
Automatically figure out getFactory(), create Config(), remove Config(). - Overrides:
invokeManually
in classAMXImplBase
- Throws:
MBeanException
ReflectionException
NoSuchMethodException
AttributeNotFoundException
-
sendConfigCreatedNotification
public void sendConfigCreatedNotification(ObjectName configObjectName)
-
sendConfigRemovedNotification
public void sendConfigRemovedNotification(ObjectName configObjectName)
-
getDefaultValues
public final Map<String,String> getDefaultValues(String type, boolean useAMXAttributeNames)
-
attributeNameToType
protected String[] attributeNameToType(String attributeName)
Description copied from class:AMXImplBase
Supply possible types to be tried based on attribute name- Overrides:
attributeNameToType
in classAMXImplBase
-
getAttributeManually
protected Object getAttributeManually(String name) throws AttributeNotFoundException, ReflectionException, MBeanException
Description copied from class:AMXImplBase
Subclasses should override this to handle getAttribute( attrName ). It will be called if no appropriate getter is found.- Overrides:
getAttributeManually
in classAMXImplBase
- Throws:
AttributeNotFoundException
ReflectionException
MBeanException
-
getAttributeFromConfigBean
protected final Object getAttributeFromConfigBean(String amxName)
Get an Attribute. This is a bit tricky, because the target can be an XML attribute, an XML string element, or an XML list of elements.
-
getConfigModel_Property
protected ConfigModel.Property getConfigModel_Property(String xmlName)
-
setAttributesInConfigBean
public AttributeList setAttributesInConfigBean(AttributeList attrsIn) throws TransactionFailure
- Throws:
TransactionFailure
-
-