@Override protected JmxAttributeSource getAttributeSource() { return new AnnotationJmxAttributeSource(); }
@Override public void setBeanFactory(BeanFactory beanFactory) { super.setBeanFactory(beanFactory); this.annotationSource.setBeanFactory(beanFactory); }
@Override @Nullable public org.springframework.jmx.export.metadata.ManagedOperation getManagedOperation(Method method) throws InvalidMetadataException { ManagedOperation ann = AnnotationUtils.findAnnotation(method, ManagedOperation.class); return copyPropertiesToBean(ann, org.springframework.jmx.export.metadata.ManagedOperation.class); }
@Override public org.springframework.jmx.export.metadata.ManagedOperationParameter[] getManagedOperationParameters(Method method) throws InvalidMetadataException { Set<ManagedOperationParameter> anns = AnnotationUtils.getRepeatableAnnotations( method, ManagedOperationParameter.class, ManagedOperationParameters.class); return copyPropertiesToBeanArray(anns, org.springframework.jmx.export.metadata.ManagedOperationParameter.class); }
@SuppressWarnings("unchecked") @Override public ManagedResource getManagedResource(Class beanClass) throws InvalidMetadataException { ManagedResource resource = super.getManagedResource(beanClass); if (resource != null && appName != null) { String objectName = resource.getObjectName(); if(StringUtils.isNotBlank(objectName)) { objectName += "." + appName; } resource.setObjectName(objectName); } return resource; }
@Override public org.springframework.jmx.export.metadata.ManagedNotification[] getManagedNotifications(Class<?> clazz) throws InvalidMetadataException { Set<ManagedNotification> anns = AnnotationUtils.getRepeatableAnnotations( clazz, ManagedNotification.class, ManagedNotifications.class); return copyPropertiesToBeanArray(anns, org.springframework.jmx.export.metadata.ManagedNotification.class); }
public SpringManagementMBeanAssembler(CamelContext camelContext) { super(camelContext); this.springAssembler = new MetadataMBeanInfoAssembler(); this.springAssembler.setAttributeSource(new AnnotationJmxAttributeSource()); }
@SuppressWarnings("unchecked") private static <T> T[] copyPropertiesToBeanArray(Collection<? extends Annotation> anns, Class<T> beanClass) { T[] beans = (T[]) Array.newInstance(beanClass, anns.size()); int i = 0; for (Annotation ann : anns) { beans[i++] = copyPropertiesToBean(ann, beanClass); } return beans; }
@Override public void setBeanFactory(BeanFactory beanFactory) { super.setBeanFactory(beanFactory); this.annotationSource.setBeanFactory(beanFactory); }
@Override public org.springframework.jmx.export.metadata.ManagedNotification[] getManagedNotifications(Class<?> clazz) throws InvalidMetadataException { Set<ManagedNotification> anns = AnnotationUtils.getRepeatableAnnotations( clazz, ManagedNotification.class, ManagedNotifications.class); return copyPropertiesToBeanArray(anns, org.springframework.jmx.export.metadata.ManagedNotification.class); }
public AnnotationMBeanInfoAssembler() { attributeSource = new AnnotationJmxAttributeSource(); }
@Override @Nullable public org.springframework.jmx.export.metadata.ManagedMetric getManagedMetric(Method method) throws InvalidMetadataException { ManagedMetric ann = AnnotationUtils.findAnnotation(method, ManagedMetric.class); return copyPropertiesToBean(ann, org.springframework.jmx.export.metadata.ManagedMetric.class); }
@Override public void setBeanFactory(BeanFactory beanFactory) { super.setBeanFactory(beanFactory); if (beanFactory instanceof ConfigurableBeanFactory) { this.valueResolver = new EmbeddedValueResolver((ConfigurableBeanFactory) beanFactory); } }
@Override public org.springframework.jmx.export.metadata.ManagedOperationParameter[] getManagedOperationParameters(Method method) throws InvalidMetadataException { Set<ManagedOperationParameter> anns = AnnotationUtils.getRepeatableAnnotations( method, ManagedOperationParameter.class, ManagedOperationParameters.class); return copyPropertiesToBeanArray(anns, org.springframework.jmx.export.metadata.ManagedOperationParameter.class); }
@Bean public JmxAttributeSource jmxAttributeSource() { log.debug("Creating jmx attribute source"); return new AnnotationJmxAttributeSource(); }
@Override @Nullable public org.springframework.jmx.export.metadata.ManagedOperation getManagedOperation(Method method) throws InvalidMetadataException { ManagedOperation ann = AnnotationUtils.findAnnotation(method, ManagedOperation.class); return copyPropertiesToBean(ann, org.springframework.jmx.export.metadata.ManagedOperation.class); }
@Override public void setBeanFactory(BeanFactory beanFactory) { super.setBeanFactory(beanFactory); this.annotationSource.setBeanFactory(beanFactory); }
@Override public org.springframework.jmx.export.metadata.ManagedOperationParameter[] getManagedOperationParameters(Method method) throws InvalidMetadataException { Set<ManagedOperationParameter> anns = AnnotationUtils.getRepeatableAnnotations( method, ManagedOperationParameter.class, ManagedOperationParameters.class); return copyPropertiesToBeanArray(anns, org.springframework.jmx.export.metadata.ManagedOperationParameter.class); }
@Component // This is a copy of the AnnotationMBeanExporter with a public version of getRegisteredObjectNames() public class AnnotationMBeanExporter extends MBeanExporter { @Autowired MBeanServer mbeanServer; AnnotationJmxAttributeSource annotationSource = new AnnotationJmxAttributeSource(); AnnotationMBeanExporter() { setServer(mbeanServer); setNamingStrategy(new MetadataNamingStrategy(annotationSource)); setAssembler(new MetadataMBeanInfoAssembler(annotationSource)); setAutodetectMode(MBeanExporter.AUTODETECT_ALL); } public ObjectName[] getExportedObjectNames() { return getRegisteredObjectNames(); } }
@Override @Nullable public org.springframework.jmx.export.metadata.ManagedMetric getManagedMetric(Method method) throws InvalidMetadataException { ManagedMetric ann = AnnotationUtils.findAnnotation(method, ManagedMetric.class); return copyPropertiesToBean(ann, org.springframework.jmx.export.metadata.ManagedMetric.class); }