下面列出了怎么用javax.management.openmbean.OpenMBeanAttributeInfoSupport的API类实例代码及写法,或者点击链接到github查看源代码。
private static MBeanAttributeInfo
customize(MBeanAttributeInfo ai,
String description) {
if (equal(description, ai.getDescription()))
return ai;
if (ai instanceof OpenMBeanAttributeInfo) {
OpenMBeanAttributeInfo oai = (OpenMBeanAttributeInfo) ai;
return new OpenMBeanAttributeInfoSupport(ai.getName(),
description,
oai.getOpenType(),
ai.isReadable(),
ai.isWritable(),
ai.isIs(),
ai.getDescriptor());
} else {
return new MBeanAttributeInfo(ai.getName(),
ai.getType(),
description,
ai.isReadable(),
ai.isWritable(),
ai.isIs(),
ai.getDescriptor());
}
}
private static MBeanAttributeInfo
customize(MBeanAttributeInfo ai,
String description) {
if (equal(description, ai.getDescription()))
return ai;
if (ai instanceof OpenMBeanAttributeInfo) {
OpenMBeanAttributeInfo oai = (OpenMBeanAttributeInfo) ai;
return new OpenMBeanAttributeInfoSupport(ai.getName(),
description,
oai.getOpenType(),
ai.isReadable(),
ai.isWritable(),
ai.isIs(),
ai.getDescriptor());
} else {
return new MBeanAttributeInfo(ai.getName(),
ai.getType(),
description,
ai.isReadable(),
ai.isWritable(),
ai.isIs(),
ai.getDescriptor());
}
}
private static MBeanAttributeInfo
customize(MBeanAttributeInfo ai,
String description) {
if (equal(description, ai.getDescription()))
return ai;
if (ai instanceof OpenMBeanAttributeInfo) {
OpenMBeanAttributeInfo oai = (OpenMBeanAttributeInfo) ai;
return new OpenMBeanAttributeInfoSupport(ai.getName(),
description,
oai.getOpenType(),
ai.isReadable(),
ai.isWritable(),
ai.isIs(),
ai.getDescriptor());
} else {
return new MBeanAttributeInfo(ai.getName(),
ai.getType(),
description,
ai.isReadable(),
ai.isWritable(),
ai.isIs(),
ai.getDescriptor());
}
}
private static MBeanAttributeInfo
customize(MBeanAttributeInfo ai,
String description) {
if (equal(description, ai.getDescription()))
return ai;
if (ai instanceof OpenMBeanAttributeInfo) {
OpenMBeanAttributeInfo oai = (OpenMBeanAttributeInfo) ai;
return new OpenMBeanAttributeInfoSupport(ai.getName(),
description,
oai.getOpenType(),
ai.isReadable(),
ai.isWritable(),
ai.isIs(),
ai.getDescriptor());
} else {
return new MBeanAttributeInfo(ai.getName(),
ai.getType(),
description,
ai.isReadable(),
ai.isWritable(),
ai.isIs(),
ai.getDescriptor());
}
}
private static MBeanAttributeInfo
customize(MBeanAttributeInfo ai,
String description) {
if (equal(description, ai.getDescription()))
return ai;
if (ai instanceof OpenMBeanAttributeInfo) {
OpenMBeanAttributeInfo oai = (OpenMBeanAttributeInfo) ai;
return new OpenMBeanAttributeInfoSupport(ai.getName(),
description,
oai.getOpenType(),
ai.isReadable(),
ai.isWritable(),
ai.isIs(),
ai.getDescriptor());
} else {
return new MBeanAttributeInfo(ai.getName(),
ai.getType(),
description,
ai.isReadable(),
ai.isWritable(),
ai.isIs(),
ai.getDescriptor());
}
}
private static MBeanAttributeInfo
customize(MBeanAttributeInfo ai,
String description) {
if (equal(description, ai.getDescription()))
return ai;
if (ai instanceof OpenMBeanAttributeInfo) {
OpenMBeanAttributeInfo oai = (OpenMBeanAttributeInfo) ai;
return new OpenMBeanAttributeInfoSupport(ai.getName(),
description,
oai.getOpenType(),
ai.isReadable(),
ai.isWritable(),
ai.isIs(),
ai.getDescriptor());
} else {
return new MBeanAttributeInfo(ai.getName(),
ai.getType(),
description,
ai.isReadable(),
ai.isWritable(),
ai.isIs(),
ai.getDescriptor());
}
}
private static MBeanAttributeInfo
customize(MBeanAttributeInfo ai,
String description) {
if (equal(description, ai.getDescription()))
return ai;
if (ai instanceof OpenMBeanAttributeInfo) {
OpenMBeanAttributeInfo oai = (OpenMBeanAttributeInfo) ai;
return new OpenMBeanAttributeInfoSupport(ai.getName(),
description,
oai.getOpenType(),
ai.isReadable(),
ai.isWritable(),
ai.isIs(),
ai.getDescriptor());
} else {
return new MBeanAttributeInfo(ai.getName(),
ai.getType(),
description,
ai.isReadable(),
ai.isWritable(),
ai.isIs(),
ai.getDescriptor());
}
}
private static MBeanAttributeInfo
customize(MBeanAttributeInfo ai,
String description) {
if (equal(description, ai.getDescription()))
return ai;
if (ai instanceof OpenMBeanAttributeInfo) {
OpenMBeanAttributeInfo oai = (OpenMBeanAttributeInfo) ai;
return new OpenMBeanAttributeInfoSupport(ai.getName(),
description,
oai.getOpenType(),
ai.isReadable(),
ai.isWritable(),
ai.isIs(),
ai.getDescriptor());
} else {
return new MBeanAttributeInfo(ai.getName(),
ai.getType(),
description,
ai.isReadable(),
ai.isWritable(),
ai.isIs(),
ai.getDescriptor());
}
}
private static MBeanAttributeInfo
customize(MBeanAttributeInfo ai,
String description) {
if (equal(description, ai.getDescription()))
return ai;
if (ai instanceof OpenMBeanAttributeInfo) {
OpenMBeanAttributeInfo oai = (OpenMBeanAttributeInfo) ai;
return new OpenMBeanAttributeInfoSupport(ai.getName(),
description,
oai.getOpenType(),
ai.isReadable(),
ai.isWritable(),
ai.isIs(),
ai.getDescriptor());
} else {
return new MBeanAttributeInfo(ai.getName(),
ai.getType(),
description,
ai.isReadable(),
ai.isWritable(),
ai.isIs(),
ai.getDescriptor());
}
}
private static MBeanAttributeInfo
customize(MBeanAttributeInfo ai,
String description) {
if (equal(description, ai.getDescription()))
return ai;
if (ai instanceof OpenMBeanAttributeInfo) {
OpenMBeanAttributeInfo oai = (OpenMBeanAttributeInfo) ai;
return new OpenMBeanAttributeInfoSupport(ai.getName(),
description,
oai.getOpenType(),
ai.isReadable(),
ai.isWritable(),
ai.isIs(),
ai.getDescriptor());
} else {
return new MBeanAttributeInfo(ai.getName(),
ai.getType(),
description,
ai.isReadable(),
ai.isWritable(),
ai.isIs(),
ai.getDescriptor());
}
}
private static MBeanAttributeInfo
customize(MBeanAttributeInfo ai,
String description) {
if (equal(description, ai.getDescription()))
return ai;
if (ai instanceof OpenMBeanAttributeInfo) {
OpenMBeanAttributeInfo oai = (OpenMBeanAttributeInfo) ai;
return new OpenMBeanAttributeInfoSupport(ai.getName(),
description,
oai.getOpenType(),
ai.isReadable(),
ai.isWritable(),
ai.isIs(),
ai.getDescriptor());
} else {
return new MBeanAttributeInfo(ai.getName(),
ai.getType(),
description,
ai.isReadable(),
ai.isWritable(),
ai.isIs(),
ai.getDescriptor());
}
}
private static MBeanAttributeInfo
customize(MBeanAttributeInfo ai,
String description) {
if (equal(description, ai.getDescription()))
return ai;
if (ai instanceof OpenMBeanAttributeInfo) {
OpenMBeanAttributeInfo oai = (OpenMBeanAttributeInfo) ai;
return new OpenMBeanAttributeInfoSupport(ai.getName(),
description,
oai.getOpenType(),
ai.isReadable(),
ai.isWritable(),
ai.isIs(),
ai.getDescriptor());
} else {
return new MBeanAttributeInfo(ai.getName(),
ai.getType(),
description,
ai.isReadable(),
ai.isWritable(),
ai.isIs(),
ai.getDescriptor());
}
}
private static MBeanAttributeInfo
customize(MBeanAttributeInfo ai,
String description) {
if (equal(description, ai.getDescription()))
return ai;
if (ai instanceof OpenMBeanAttributeInfo) {
OpenMBeanAttributeInfo oai = (OpenMBeanAttributeInfo) ai;
return new OpenMBeanAttributeInfoSupport(ai.getName(),
description,
oai.getOpenType(),
ai.isReadable(),
ai.isWritable(),
ai.isIs(),
ai.getDescriptor());
} else {
return new MBeanAttributeInfo(ai.getName(),
ai.getType(),
description,
ai.isReadable(),
ai.isWritable(),
ai.isIs(),
ai.getDescriptor());
}
}
private static MBeanAttributeInfo
customize(MBeanAttributeInfo ai,
String description) {
if (equal(description, ai.getDescription()))
return ai;
if (ai instanceof OpenMBeanAttributeInfo) {
OpenMBeanAttributeInfo oai = (OpenMBeanAttributeInfo) ai;
return new OpenMBeanAttributeInfoSupport(ai.getName(),
description,
oai.getOpenType(),
ai.isReadable(),
ai.isWritable(),
ai.isIs(),
ai.getDescriptor());
} else {
return new MBeanAttributeInfo(ai.getName(),
ai.getType(),
description,
ai.isReadable(),
ai.isWritable(),
ai.isIs(),
ai.getDescriptor());
}
}
private static MBeanAttributeInfo
customize(MBeanAttributeInfo ai,
String description) {
if (equal(description, ai.getDescription()))
return ai;
if (ai instanceof OpenMBeanAttributeInfo) {
OpenMBeanAttributeInfo oai = (OpenMBeanAttributeInfo) ai;
return new OpenMBeanAttributeInfoSupport(ai.getName(),
description,
oai.getOpenType(),
ai.isReadable(),
ai.isWritable(),
ai.isIs(),
ai.getDescriptor());
} else {
return new MBeanAttributeInfo(ai.getName(),
ai.getType(),
description,
ai.isReadable(),
ai.isWritable(),
ai.isIs(),
ai.getDescriptor());
}
}
private static MBeanAttributeInfo
customize(MBeanAttributeInfo ai,
String description) {
if (equal(description, ai.getDescription()))
return ai;
if (ai instanceof OpenMBeanAttributeInfo) {
OpenMBeanAttributeInfo oai = (OpenMBeanAttributeInfo) ai;
return new OpenMBeanAttributeInfoSupport(ai.getName(),
description,
oai.getOpenType(),
ai.isReadable(),
ai.isWritable(),
ai.isIs(),
ai.getDescriptor());
} else {
return new MBeanAttributeInfo(ai.getName(),
ai.getType(),
description,
ai.isReadable(),
ai.isWritable(),
ai.isIs(),
ai.getDescriptor());
}
}
private OpenMBeanAttributeInfo getAttribute(String name) {
final String escapedName = NameConverter.convertToCamelCase(name);
ModelNode attribute = providedDescription.require(ATTRIBUTES).require(name);
AttributeAccess access = resourceRegistration.getAttributeAccess(PathAddress.EMPTY_ADDRESS, name);
if (access == null) {
// Check for a bogus attribute in the description that's really a child
Set<String> childTypes = resourceRegistration.getChildNames(PathAddress.EMPTY_ADDRESS);
if (childTypes.contains(name)) {
return null;
}
}
final boolean writable = mutabilityChecker.mutable(pathAddress) && (access != null && access.getAccessType() == AccessType.READ_WRITE);
return new OpenMBeanAttributeInfoSupport(
escapedName,
getDescription(attribute),
converters.convertToMBeanType(attribute),
true,
writable,
false,
createAttributeDescriptor(attribute));
}
@Override
public MBeanInfo getMBeanInfo() {
ArrayList<MBeanAttributeInfo> attrInfoList = new ArrayList<>();
Map<String,Object> stats = getValue(true);
if (useCachedStatsBetweenGetMBeanInfoCalls) {
cachedValue = stats;
}
jmxAttributes.forEach((k, v) -> {
attrInfoList.add(new MBeanAttributeInfo(k, String.class.getName(),
null, true, false, false));
});
try {
stats.forEach((k, v) -> {
if (jmxAttributes.containsKey(k)) {
return;
}
@SuppressWarnings({"rawtypes"})
Class type = v.getClass();
@SuppressWarnings({"rawtypes"})
OpenType typeBox = determineType(type);
if (type.equals(String.class) || typeBox == null) {
attrInfoList.add(new MBeanAttributeInfo(k, String.class.getName(),
null, true, false, false));
} else {
attrInfoList.add(new OpenMBeanAttributeInfoSupport(
k, k, typeBox, true, false, false));
}
});
} catch (Exception e) {
// don't log issue if the core is closing
if (!(SolrException.getRootCause(e) instanceof AlreadyClosedException))
log.warn("Could not get attributes of MetricsMap: {}", this, e);
}
MBeanAttributeInfo[] attrInfoArr = attrInfoList
.toArray(new MBeanAttributeInfo[attrInfoList.size()]);
return new MBeanInfo(getClass().getName(), "MetricsMap", attrInfoArr, null, null, null);
}
/**
* Initialize the open mbean metadata
*/
private void initOpenMBeanInfo() {
OpenMBeanAttributeInfoSupport[] attributes = new OpenMBeanAttributeInfoSupport[4];
OpenMBeanConstructorInfoSupport[] constructors = new OpenMBeanConstructorInfoSupport[1];
OpenMBeanOperationInfoSupport[] operations = new OpenMBeanOperationInfoSupport[2];
MBeanNotificationInfo[] notifications = new MBeanNotificationInfo[0];
try {
// Define the attributes
attributes[0] = new OpenMBeanAttributeInfoSupport(ATTR_ID,
"Knowledge Base Id",
SimpleType.STRING,
true,
false,
false);
attributes[1] = new OpenMBeanAttributeInfoSupport(ATTR_SESSION_COUNT,
"Number of created sessions for this Knowledge Base",
SimpleType.LONG,
true,
false,
false);
attributes[2] = new OpenMBeanAttributeInfoSupport(ATTR_GLOBALS,
"List of globals",
globalsTableType,
true,
false,
false );
attributes[3] = new OpenMBeanAttributeInfoSupport( ATTR_PACKAGES,
"List of Packages",
new ArrayType( 1,
SimpleType.STRING ),
true,
false,
false );
//No arg constructor
constructors[0] = new OpenMBeanConstructorInfoSupport( "KnowledgeBaseMonitoringMXBean",
"Constructs a KnowledgeBaseMonitoringMXBean instance.",
new OpenMBeanParameterInfoSupport[0] );
//Operations
OpenMBeanParameterInfo[] params = new OpenMBeanParameterInfoSupport[0];
operations[0] = new OpenMBeanOperationInfoSupport( OP_START_INTERNAL_MBEANS,
"Creates, registers and starts all the dependent MBeans that allow monitor all the details in this KnowledgeBase.",
params,
SimpleType.VOID,
MBeanOperationInfo.INFO );
operations[1] = new OpenMBeanOperationInfoSupport( OP_STOP_INTERNAL_MBEANS,
"Stops and disposes all the dependent MBeans that allow monitor all the details in this KnowledgeBase.",
params,
SimpleType.VOID,
MBeanOperationInfo.INFO );
//Build the info
info = new OpenMBeanInfoSupport( this.getClass().getName(),
"Knowledge Base Monitor MXBean",
attributes,
constructors,
operations,
notifications );
} catch ( Exception e ) {
e.printStackTrace();
}
}