Repository: deltaspike Updated Branches: refs/heads/master 6b49da426 -> 08c8cb3b5
sorting our dynamic mbean featureinfo to ease deterministic code without having to map operations etc Project: http://git-wip-us.apache.org/repos/asf/deltaspike/repo Commit: http://git-wip-us.apache.org/repos/asf/deltaspike/commit/08c8cb3b Tree: http://git-wip-us.apache.org/repos/asf/deltaspike/tree/08c8cb3b Diff: http://git-wip-us.apache.org/repos/asf/deltaspike/diff/08c8cb3b Branch: refs/heads/master Commit: 08c8cb3b5643b889698c6c2458be1966d1a1d8ab Parents: 6b49da4 Author: rmannibucau <rmannibu...@apache.org> Authored: Tue May 9 12:11:58 2017 +0200 Committer: rmannibucau <rmannibu...@apache.org> Committed: Tue May 9 12:11:58 2017 +0200 ---------------------------------------------------------------------- .../core/impl/jmx/DynamicMBeanWrapper.java | 16 ++++++++++++++++ .../test/core/impl/jmx/SimpleRegistrationTest.java | 4 ++-- 2 files changed, 18 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/deltaspike/blob/08c8cb3b/deltaspike/core/impl/src/main/java/org/apache/deltaspike/core/impl/jmx/DynamicMBeanWrapper.java ---------------------------------------------------------------------- diff --git a/deltaspike/core/impl/src/main/java/org/apache/deltaspike/core/impl/jmx/DynamicMBeanWrapper.java b/deltaspike/core/impl/src/main/java/org/apache/deltaspike/core/impl/jmx/DynamicMBeanWrapper.java index c37585c..99e60a5 100644 --- a/deltaspike/core/impl/src/main/java/org/apache/deltaspike/core/impl/jmx/DynamicMBeanWrapper.java +++ b/deltaspike/core/impl/src/main/java/org/apache/deltaspike/core/impl/jmx/DynamicMBeanWrapper.java @@ -40,6 +40,7 @@ import javax.management.ImmutableDescriptor; import javax.management.InvalidAttributeValueException; import javax.management.MBeanAttributeInfo; import javax.management.MBeanException; +import javax.management.MBeanFeatureInfo; import javax.management.MBeanInfo; import javax.management.MBeanNotificationInfo; import javax.management.MBeanOperationInfo; @@ -63,6 +64,8 @@ import java.lang.reflect.Modifier; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; +import java.util.Collections; +import java.util.Comparator; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -248,6 +251,10 @@ public class DynamicMBeanWrapper extends NotificationBroadcasterSupport implemen clazz = clazz.getSuperclass(); } + Collections.sort(attributeInfos, MBeanFeatureInfoSorter.INSTANCE); + Collections.sort(operationInfos, MBeanFeatureInfoSorter.INSTANCE); + Collections.sort(notificationInfos, MBeanFeatureInfoSorter.INSTANCE); + info = new MBeanInfo(annotatedMBean.getName(), description, attributeInfos.toArray(new MBeanAttributeInfo[attributeInfos.size()]), @@ -532,4 +539,13 @@ public class DynamicMBeanWrapper extends NotificationBroadcasterSupport implemen { sendNotification(notification); } + + private static class MBeanFeatureInfoSorter<T extends MBeanFeatureInfo> implements Comparator<T> { + private static final Comparator<? super MBeanFeatureInfo> INSTANCE = new MBeanFeatureInfoSorter<MBeanFeatureInfo>(); + + @Override + public int compare(final T o1, final T o2) { + return o1.getName().compareTo(o2.getName()); + } + } } http://git-wip-us.apache.org/repos/asf/deltaspike/blob/08c8cb3b/deltaspike/core/impl/src/test/java/org/apache/deltaspike/test/core/impl/jmx/SimpleRegistrationTest.java ---------------------------------------------------------------------- diff --git a/deltaspike/core/impl/src/test/java/org/apache/deltaspike/test/core/impl/jmx/SimpleRegistrationTest.java b/deltaspike/core/impl/src/test/java/org/apache/deltaspike/test/core/impl/jmx/SimpleRegistrationTest.java index a8ac369..b4f0199 100644 --- a/deltaspike/core/impl/src/test/java/org/apache/deltaspike/test/core/impl/jmx/SimpleRegistrationTest.java +++ b/deltaspike/core/impl/src/test/java/org/apache/deltaspike/test/core/impl/jmx/SimpleRegistrationTest.java @@ -80,8 +80,8 @@ public abstract class SimpleRegistrationTest { MBeanOperationInfo[] operations = mBeanInfo.getOperations(); Assert.assertNotNull(operations); Assert.assertTrue(operations.length > 0); - Assert.assertTrue("Empty Signature on operation: " + operations[0], operations[0].getSignature().length > 0); - MBeanParameterInfo parameterInfo = operations[0].getSignature()[0]; + Assert.assertTrue("Empty Signature on operation: " + operations[1], operations[1].getSignature().length > 0); + MBeanParameterInfo parameterInfo = operations[1].getSignature()[0]; assertEquals("multiplier", parameterInfo.getName()); assertEquals("the multiplier", parameterInfo.getDescription());