From e5477ea19d856fb6f39ec4d71971e53e33ef7795 Mon Sep 17 00:00:00 2001 From: Stephane Nicoll Date: Mon, 18 Jan 2016 14:14:17 +0100 Subject: [PATCH] Add interface-based detection test Add a test that explicitely validates that `@ManagedResource` and friends can be set on an interface. Issue: SPR-13138 (cherry picked from commit eb49f3c) --- .../annotation/AnotherAnnotationTestBean.java | 38 ++++++++++++++ .../AnotherAnnotationTestBeanImpl.java | 49 +++++++++++++++++++ .../jmx/export/annotation/annotations.xml | 20 +++----- 3 files changed, 95 insertions(+), 12 deletions(-) create mode 100644 spring-context/src/test/java/org/springframework/jmx/export/annotation/AnotherAnnotationTestBean.java create mode 100644 spring-context/src/test/java/org/springframework/jmx/export/annotation/AnotherAnnotationTestBeanImpl.java diff --git a/spring-context/src/test/java/org/springframework/jmx/export/annotation/AnotherAnnotationTestBean.java b/spring-context/src/test/java/org/springframework/jmx/export/annotation/AnotherAnnotationTestBean.java new file mode 100644 index 00000000000..59d084f414d --- /dev/null +++ b/spring-context/src/test/java/org/springframework/jmx/export/annotation/AnotherAnnotationTestBean.java @@ -0,0 +1,38 @@ +/* + * Copyright 2002-2016 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.jmx.export.annotation; + +import org.springframework.jmx.support.MetricType; + +/** + * @author Stephane Nicoll + */ +@ManagedResource(objectName = "bean:name=interfaceTestBean", description = "My Managed Bean") +public interface AnotherAnnotationTestBean { + + @ManagedOperation(description = "invoke foo") + void foo(); + + @ManagedAttribute(description = "Bar description") + String getBar(); + + void setBar(String bar); + + @ManagedMetric(description = "a metric", metricType = MetricType.COUNTER) + int getCacheEntries(); + +} diff --git a/spring-context/src/test/java/org/springframework/jmx/export/annotation/AnotherAnnotationTestBeanImpl.java b/spring-context/src/test/java/org/springframework/jmx/export/annotation/AnotherAnnotationTestBeanImpl.java new file mode 100644 index 00000000000..1acaefb0328 --- /dev/null +++ b/spring-context/src/test/java/org/springframework/jmx/export/annotation/AnotherAnnotationTestBeanImpl.java @@ -0,0 +1,49 @@ +/* + * Copyright 2002-2016 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.jmx.export.annotation; + +/** + * @author Stephane Nicoll + */ +class AnotherAnnotationTestBeanImpl implements AnotherAnnotationTestBean { + + private String bar; + + @Override + public void foo() { + } + + public void doNotExpose() { + + } + + @Override + public String getBar() { + return this.bar; + } + + @Override + public void setBar(String bar) { + this.bar = bar; + } + + @Override + public int getCacheEntries() { + return 42; + } + +} diff --git a/spring-context/src/test/resources/org/springframework/jmx/export/annotation/annotations.xml b/spring-context/src/test/resources/org/springframework/jmx/export/annotation/annotations.xml index c9c15cf7714..0124173f05c 100644 --- a/spring-context/src/test/resources/org/springframework/jmx/export/annotation/annotations.xml +++ b/spring-context/src/test/resources/org/springframework/jmx/export/annotation/annotations.xml @@ -20,26 +20,22 @@ - - TEST - - - 100 - + + + + + + - - - + - - - +