JmxGetter getter = m.getAnnotation(JmxGetter.class);
if(getter != null) {
getters.put(getter.name(), m);
descriptions.put(getter.name(), getter.description());
}
JmxSetter setter = m.getAnnotation(JmxSetter.class);
if(setter != null) {
setters.put(setter.name(), m);
descriptions.put(setter.name(), setter.description());
}
}
Set<String> attributes = new HashSet<String>(getters.keySet());
attributes.addAll(setters.keySet());
List<ModelMBeanAttributeInfo> infos = new ArrayList<ModelMBeanAttributeInfo>();
for(String name: attributes) {
try {
Method getter = getters.get(name);
Method setter = setters.get(name);
ModelMBeanAttributeInfo info = new ModelMBeanAttributeInfo(name,
descriptions.get(name),
getter,
setter);
Descriptor descriptor = info.getDescriptor();
if(getter != null)
descriptor.setField("getMethod", getter.getName());
if(setter != null)
descriptor.setField("setMethod", setter.getName());
info.setDescriptor(descriptor);
infos.add(info);
} catch(IntrospectionException e) {
throw new VoldemortException(e);
}