[SPR-3635] [SPR-5039] [SPR-5813] JMX annotation inheritance fixed
This commit is contained in:
@@ -16,17 +16,32 @@
|
||||
|
||||
package org.springframework.jmx.export.annotation;
|
||||
|
||||
import javax.management.modelmbean.ModelMBeanInfo;
|
||||
import javax.management.modelmbean.ModelMBeanAttributeInfo;
|
||||
import javax.management.modelmbean.ModelMBeanOperationInfo;
|
||||
|
||||
import org.springframework.jmx.IJmxTestBean;
|
||||
import org.springframework.jmx.export.assembler.AbstractMetadataAssemblerTests;
|
||||
import org.springframework.jmx.export.metadata.JmxAttributeSource;
|
||||
|
||||
/**
|
||||
* @author Rob Harrop
|
||||
*/
|
||||
/** @author Rob Harrop */
|
||||
public class AnnotationMetadataAssemblerTests extends AbstractMetadataAssemblerTests {
|
||||
|
||||
private static final String OBJECT_NAME = "bean:name=testBean4";
|
||||
|
||||
public void testAttributeFromInterface() throws Exception {
|
||||
ModelMBeanInfo inf = getMBeanInfoFromAssembler();
|
||||
ModelMBeanAttributeInfo attr = inf.getAttribute("Colour");
|
||||
assertTrue("The name attribute should be writable", attr.isWritable());
|
||||
assertTrue("The name attribute should be readable", attr.isReadable());
|
||||
}
|
||||
|
||||
public void testOperationFromInterface() throws Exception {
|
||||
ModelMBeanInfo inf = getMBeanInfoFromAssembler();
|
||||
ModelMBeanOperationInfo op = inf.getOperation("fromInterface");
|
||||
assertNotNull(op);
|
||||
}
|
||||
|
||||
protected JmxAttributeSource getAttributeSource() {
|
||||
return new AnnotationJmxAttributeSource();
|
||||
}
|
||||
@@ -36,11 +51,20 @@ public class AnnotationMetadataAssemblerTests extends AbstractMetadataAssemblerT
|
||||
}
|
||||
|
||||
protected IJmxTestBean createJmxTestBean() {
|
||||
return new AnnotationTestBean();
|
||||
return new AnnotationTestSubBean();
|
||||
}
|
||||
|
||||
protected String getApplicationContextPath() {
|
||||
return "org/springframework/jmx/export/annotation/annotations.xml";
|
||||
}
|
||||
|
||||
@Override
|
||||
protected int getExpectedAttributeCount() {
|
||||
return super.getExpectedAttributeCount() + 1;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected int getExpectedOperationCount() {
|
||||
return super.getExpectedOperationCount() + 3;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,51 @@
|
||||
/*
|
||||
* Copyright 2002-2009 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 Rob Harrop
|
||||
*/
|
||||
public class AnnotationTestSubBean extends AnnotationTestBean implements IAnnotationTestBean {
|
||||
|
||||
private String colour;
|
||||
|
||||
@Override
|
||||
public long myOperation() {
|
||||
return 123L;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setAge(int age) {
|
||||
super.setAge(age);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getAge() {
|
||||
return super.getAge();
|
||||
}
|
||||
|
||||
public String getColour() {
|
||||
return this.colour;
|
||||
}
|
||||
|
||||
public void setColour(String colour) {
|
||||
this.colour = colour;
|
||||
}
|
||||
|
||||
public void fromInterface() {
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
/*
|
||||
* Copyright 2002-2009 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 Rob Harrop
|
||||
*/
|
||||
public interface IAnnotationTestBean {
|
||||
|
||||
@ManagedAttribute
|
||||
String getColour();
|
||||
|
||||
@ManagedAttribute
|
||||
void setColour(String colour);
|
||||
|
||||
@ManagedOperation
|
||||
void fromInterface();
|
||||
}
|
||||
@@ -19,7 +19,7 @@
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean id="testBean" class="org.springframework.jmx.export.annotation.AnnotationTestBean">
|
||||
<bean id="testBean" class="org.springframework.jmx.export.annotation.AnnotationTestSubBean">
|
||||
<property name="name">
|
||||
<value>TEST</value>
|
||||
</property>
|
||||
|
||||
@@ -18,6 +18,7 @@ package org.springframework.jmx.export.assembler;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Arrays;
|
||||
|
||||
import javax.management.Descriptor;
|
||||
import javax.management.MBeanInfo;
|
||||
|
||||
Reference in New Issue
Block a user