Skip to content

Commit 3597879

Browse files
committed
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
1 parent eec22f5 commit 3597879

File tree

2 files changed

+3
-23
lines changed

2 files changed

+3
-23
lines changed

spring-context/src/main/java/org/springframework/jmx/export/annotation/AnnotationJmxAttributeSource.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@
2929
import org.springframework.beans.factory.BeanFactoryAware;
3030
import org.springframework.beans.factory.config.ConfigurableBeanFactory;
3131
import org.springframework.beans.factory.config.EmbeddedValueResolver;
32-
import org.springframework.core.annotation.AnnotatedElementUtils;
3332
import org.springframework.core.annotation.AnnotationUtils;
3433
import org.springframework.jmx.export.metadata.InvalidMetadataException;
3534
import org.springframework.jmx.export.metadata.JmxAttributeSource;
@@ -107,7 +106,7 @@ public org.springframework.jmx.export.metadata.ManagedOperation getManagedOperat
107106
public org.springframework.jmx.export.metadata.ManagedOperationParameter[] getManagedOperationParameters(Method method)
108107
throws InvalidMetadataException {
109108

110-
Set<ManagedOperationParameter> anns = AnnotatedElementUtils.getMergedRepeatableAnnotations(
109+
Set<ManagedOperationParameter> anns = AnnotationUtils.getRepeatableAnnotations(
111110
method, ManagedOperationParameter.class, ManagedOperationParameters.class);
112111
return copyPropertiesToBeanArray(anns, org.springframework.jmx.export.metadata.ManagedOperationParameter.class);
113112
}
@@ -116,7 +115,7 @@ public org.springframework.jmx.export.metadata.ManagedOperationParameter[] getMa
116115
public org.springframework.jmx.export.metadata.ManagedNotification[] getManagedNotifications(Class<?> clazz)
117116
throws InvalidMetadataException {
118117

119-
Set<ManagedNotification> anns = AnnotatedElementUtils.getMergedRepeatableAnnotations(
118+
Set<ManagedNotification> anns = AnnotationUtils.getRepeatableAnnotations(
120119
clazz, ManagedNotification.class, ManagedNotifications.class);
121120
return copyPropertiesToBeanArray(anns, org.springframework.jmx.export.metadata.ManagedNotification.class);
122121
}

spring-context/src/test/java/org/springframework/jmx/export/annotation/AnnotationTestBean.java

Lines changed: 1 addition & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,7 @@
1616

1717
package org.springframework.jmx.export.annotation;
1818

19-
import java.lang.annotation.Inherited;
20-
import java.lang.annotation.Retention;
21-
import java.lang.annotation.RetentionPolicy;
22-
23-
import org.springframework.core.annotation.AliasFor;
2419
import org.springframework.jmx.IJmxTestBean;
25-
import org.springframework.jmx.export.annotation.AnnotationTestBean.MyManagedNotification;
2620
import org.springframework.jmx.support.MetricType;
2721
import org.springframework.stereotype.Service;
2822

@@ -34,7 +28,7 @@
3428
@ManagedResource(objectName = "bean:name=testBean4", description = "My Managed Bean", log = true,
3529
logFile = "jmx.log", currencyTimeLimit = 15, persistPolicy = "OnUpdate", persistPeriod = 200,
3630
persistLocation = "./foo", persistName = "bar.jmx")
37-
@MyManagedNotification(notificationTypes = { "type.foo", "type.bar" })
31+
@ManagedNotification(name = "My Notification", notificationTypes = { "type.foo", "type.bar" })
3832
public class AnnotationTestBean implements IJmxTestBean {
3933

4034
private String name;
@@ -123,17 +117,4 @@ public int getCacheEntries() {
123117
return 3;
124118
}
125119

126-
127-
@ManagedNotification(name = "My Notification", notificationTypes = {})
128-
@Retention(RetentionPolicy.RUNTIME)
129-
@Inherited
130-
public static @interface MyManagedNotification {
131-
132-
@AliasFor(annotation = ManagedNotification.class)
133-
String description() default "";
134-
135-
@AliasFor(annotation = ManagedNotification.class)
136-
String[] notificationTypes();
137-
}
138-
139120
}

0 commit comments

Comments
 (0)