From 3597879608acc1ddfb9b57f14c664cbbcb7acd9d Mon Sep 17 00:00:00 2001 From: Sam Brannen Date: Tue, 29 Mar 2016 17:50:54 +0200 Subject: [PATCH] Revert merged support for @ManagedNotification & @ManagedOperationParameter This commit reverts the recently added merged annotation support for Spring's JMX annotations by once again using the simpler searches for repeatable annotations in AnnotationUtils. Issue: SPR-13973 --- .../AnnotationJmxAttributeSource.java | 5 ++--- .../export/annotation/AnnotationTestBean.java | 21 +------------------ 2 files changed, 3 insertions(+), 23 deletions(-) diff --git a/spring-context/src/main/java/org/springframework/jmx/export/annotation/AnnotationJmxAttributeSource.java b/spring-context/src/main/java/org/springframework/jmx/export/annotation/AnnotationJmxAttributeSource.java index 9dc192a173f..bb0a0abd007 100644 --- a/spring-context/src/main/java/org/springframework/jmx/export/annotation/AnnotationJmxAttributeSource.java +++ b/spring-context/src/main/java/org/springframework/jmx/export/annotation/AnnotationJmxAttributeSource.java @@ -29,7 +29,6 @@ import org.springframework.beans.factory.BeanFactory; import org.springframework.beans.factory.BeanFactoryAware; import org.springframework.beans.factory.config.ConfigurableBeanFactory; import org.springframework.beans.factory.config.EmbeddedValueResolver; -import org.springframework.core.annotation.AnnotatedElementUtils; import org.springframework.core.annotation.AnnotationUtils; import org.springframework.jmx.export.metadata.InvalidMetadataException; import org.springframework.jmx.export.metadata.JmxAttributeSource; @@ -107,7 +106,7 @@ public class AnnotationJmxAttributeSource implements JmxAttributeSource, BeanFac public org.springframework.jmx.export.metadata.ManagedOperationParameter[] getManagedOperationParameters(Method method) throws InvalidMetadataException { - Set anns = AnnotatedElementUtils.getMergedRepeatableAnnotations( + Set anns = AnnotationUtils.getRepeatableAnnotations( method, ManagedOperationParameter.class, ManagedOperationParameters.class); return copyPropertiesToBeanArray(anns, org.springframework.jmx.export.metadata.ManagedOperationParameter.class); } @@ -116,7 +115,7 @@ public class AnnotationJmxAttributeSource implements JmxAttributeSource, BeanFac public org.springframework.jmx.export.metadata.ManagedNotification[] getManagedNotifications(Class clazz) throws InvalidMetadataException { - Set anns = AnnotatedElementUtils.getMergedRepeatableAnnotations( + Set anns = AnnotationUtils.getRepeatableAnnotations( clazz, ManagedNotification.class, ManagedNotifications.class); return copyPropertiesToBeanArray(anns, org.springframework.jmx.export.metadata.ManagedNotification.class); } diff --git a/spring-context/src/test/java/org/springframework/jmx/export/annotation/AnnotationTestBean.java b/spring-context/src/test/java/org/springframework/jmx/export/annotation/AnnotationTestBean.java index 28752c41c95..fbdf9e30fbf 100644 --- a/spring-context/src/test/java/org/springframework/jmx/export/annotation/AnnotationTestBean.java +++ b/spring-context/src/test/java/org/springframework/jmx/export/annotation/AnnotationTestBean.java @@ -16,13 +16,7 @@ package org.springframework.jmx.export.annotation; -import java.lang.annotation.Inherited; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; - -import org.springframework.core.annotation.AliasFor; import org.springframework.jmx.IJmxTestBean; -import org.springframework.jmx.export.annotation.AnnotationTestBean.MyManagedNotification; import org.springframework.jmx.support.MetricType; import org.springframework.stereotype.Service; @@ -34,7 +28,7 @@ import org.springframework.stereotype.Service; @ManagedResource(objectName = "bean:name=testBean4", description = "My Managed Bean", log = true, logFile = "jmx.log", currencyTimeLimit = 15, persistPolicy = "OnUpdate", persistPeriod = 200, persistLocation = "./foo", persistName = "bar.jmx") -@MyManagedNotification(notificationTypes = { "type.foo", "type.bar" }) +@ManagedNotification(name = "My Notification", notificationTypes = { "type.foo", "type.bar" }) public class AnnotationTestBean implements IJmxTestBean { private String name; @@ -123,17 +117,4 @@ public class AnnotationTestBean implements IJmxTestBean { return 3; } - - @ManagedNotification(name = "My Notification", notificationTypes = {}) - @Retention(RetentionPolicy.RUNTIME) - @Inherited - public static @interface MyManagedNotification { - - @AliasFor(annotation = ManagedNotification.class) - String description() default ""; - - @AliasFor(annotation = ManagedNotification.class) - String[] notificationTypes(); - } - }