diff --git a/mcp-annotations-spring/src/main/java/com/logaritex/mcp/spring/SyncMcpAnnotationProvider.java b/mcp-annotations-spring/src/main/java/com/logaritex/mcp/spring/SyncMcpAnnotationProvider.java index 3469fff..f7c44a0 100644 --- a/mcp-annotations-spring/src/main/java/com/logaritex/mcp/spring/SyncMcpAnnotationProvider.java +++ b/mcp-annotations-spring/src/main/java/com/logaritex/mcp/spring/SyncMcpAnnotationProvider.java @@ -16,6 +16,8 @@ package com.logaritex.mcp.spring; import java.lang.reflect.Method; +import java.util.Arrays; +import java.util.Comparator; import java.util.List; import java.util.function.Consumer; import java.util.function.Function; @@ -92,8 +94,12 @@ public SpringAiSyncMcpLoggingConsumerProvider(List loggingObjects) { @Override protected Method[] doGetClassMethods(Object bean) { - return ReflectionUtils - .getDeclaredMethods(AopUtils.isAopProxy(bean) ? AopUtils.getTargetClass(bean) : bean.getClass()); + Method[] methods = ReflectionUtils + .getDeclaredMethods(AopUtils.isAopProxy(bean) ? AopUtils.getTargetClass(bean) : bean.getClass()); + Arrays.sort(methods, Comparator + .comparing(Method::getName) + .thenComparing(method -> Arrays.toString(method.getParameterTypes()))); + return methods; } } diff --git a/mcp-annotations/src/main/java/com/logaritex/mcp/provider/SyncMcpLoggingConsumerProvider.java b/mcp-annotations/src/main/java/com/logaritex/mcp/provider/SyncMcpLoggingConsumerProvider.java index 10961f0..025bc76 100644 --- a/mcp-annotations/src/main/java/com/logaritex/mcp/provider/SyncMcpLoggingConsumerProvider.java +++ b/mcp-annotations/src/main/java/com/logaritex/mcp/provider/SyncMcpLoggingConsumerProvider.java @@ -17,6 +17,8 @@ package com.logaritex.mcp.provider; import java.lang.reflect.Method; +import java.util.Arrays; +import java.util.Comparator; import java.util.List; import java.util.function.Consumer; import java.util.stream.Stream; @@ -103,7 +105,11 @@ public List> getLoggingConsumers() { * @return the methods of the bean class */ protected Method[] doGetClassMethods(Object bean) { - return bean.getClass().getDeclaredMethods(); + Method[] methods = bean.getClass().getDeclaredMethods(); + Arrays.sort(methods, Comparator + .comparing(Method::getName) + .thenComparing(method -> Arrays.toString(method.getParameterTypes()))); + return methods; } }