From 4fa11e334f5367de81401fc2cc256c2142f51593 Mon Sep 17 00:00:00 2001 From: Sam Brannen Date: Sat, 26 Mar 2016 20:10:20 +0100 Subject: [PATCH] Test @ManagedNotification as a merged, composed annotation Issue: SPR-13973 --- .../export/annotation/AnnotationTestBean.java | 21 ++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) 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 0618e8422c..28752c41c9 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,7 +16,13 @@ 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; @@ -28,7 +34,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") -@ManagedNotification(name="My Notification", notificationTypes={"type.foo", "type.bar"}) +@MyManagedNotification(notificationTypes = { "type.foo", "type.bar" }) public class AnnotationTestBean implements IJmxTestBean { private String name; @@ -117,4 +123,17 @@ 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(); + } + }