CAMEL-8159: dump stats should sort the processors
Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/d04e5c9c Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/d04e5c9c Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/d04e5c9c Branch: refs/heads/master Commit: d04e5c9cce351a194d22db4b41071950ae334329 Parents: 0368fcb Author: Claus Ibsen <davscl...@apache.org> Authored: Thu Dec 18 07:26:15 2014 +0100 Committer: Claus Ibsen <davscl...@apache.org> Committed: Thu Dec 18 07:43:25 2014 +0100 ---------------------------------------------------------------------- .../management/mbean/ManagedCamelContext.java | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/d04e5c9c/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedCamelContext.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedCamelContext.java b/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedCamelContext.java index d955cc6..f5cf263 100644 --- a/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedCamelContext.java +++ b/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedCamelContext.java @@ -21,7 +21,8 @@ import java.io.InputStream; import java.net.URLDecoder; import java.util.ArrayList; import java.util.Collection; -import java.util.LinkedHashSet; +import java.util.Collections; +import java.util.Comparator; import java.util.List; import java.util.Map; import java.util.Properties; @@ -383,7 +384,7 @@ public class ManagedCamelContext extends ManagedPerformanceCounter implements Ti ObjectName query = ObjectName.getInstance("org.apache.camel:context=" + prefix + getContext().getManagementName() + ",type=routes,*"); Set<ObjectName> routes = server.queryNames(query, null); - Set<ManagedProcessorMBean> processors = new LinkedHashSet<ManagedProcessorMBean>(); + List<ManagedProcessorMBean> processors = new ArrayList<ManagedProcessorMBean>(); if (includeProcessors) { // gather all the processors for this CamelContext, which requires JMX query = ObjectName.getInstance("org.apache.camel:context=" + prefix + getContext().getManagementName() + ",type=processors,*"); @@ -393,7 +394,8 @@ public class ManagedCamelContext extends ManagedPerformanceCounter implements Ti processors.add(processor); } } - + Collections.sort(processors, new OrderProcessorMBeans()); + // loop the routes, and append the processor stats if needed sb.append(" <routeStats>\n"); for (ObjectName on : routes) { @@ -588,4 +590,15 @@ public class ManagedCamelContext extends ManagedPerformanceCounter implements Ti } } + /** + * Used for sorting the processor mbeans accordingly to their index. + */ + private static final class OrderProcessorMBeans implements Comparator<ManagedProcessorMBean> { + + @Override + public int compare(ManagedProcessorMBean o1, ManagedProcessorMBean o2) { + return o1.getIndex().compareTo(o2.getIndex()); + } + } + }