diff --git a/docs/src/test/java/io/micrometer/docs/metrics/CountedAspectTest.java b/docs/src/test/java/io/micrometer/docs/metrics/CountedAspectTest.java index b1889f0538..033e21bdc7 100644 --- a/docs/src/test/java/io/micrometer/docs/metrics/CountedAspectTest.java +++ b/docs/src/test/java/io/micrometer/docs/metrics/CountedAspectTest.java @@ -40,7 +40,7 @@ class CountedAspectTest { // end::resolvers[] @ParameterizedTest - @EnumSource(AnnotatedTestClass.class) + @EnumSource void meterTagsWithText(AnnotatedTestClass annotatedClass) { MeterRegistry registry = new SimpleMeterRegistry(); CountedAspect countedAspect = new CountedAspect(registry); @@ -63,7 +63,7 @@ void meterTagsWithText(AnnotatedTestClass annotatedClass) { } @ParameterizedTest - @EnumSource(AnnotatedTestClass.class) + @EnumSource void meterTagsWithResolver(AnnotatedTestClass annotatedClass) { MeterRegistry registry = new SimpleMeterRegistry(); CountedAspect countedAspect = new CountedAspect(registry); @@ -88,7 +88,7 @@ void meterTagsWithResolver(AnnotatedTestClass annotatedClass) { } @ParameterizedTest - @EnumSource(AnnotatedTestClass.class) + @EnumSource void meterTagsWithExpression(AnnotatedTestClass annotatedClass) { MeterRegistry registry = new SimpleMeterRegistry(); CountedAspect countedAspect = new CountedAspect(registry); @@ -108,7 +108,7 @@ void meterTagsWithExpression(AnnotatedTestClass annotatedClass) { } @ParameterizedTest - @EnumSource(AnnotatedTestClass.class) + @EnumSource void multipleMeterTagsWithExpression(AnnotatedTestClass annotatedClass) { MeterRegistry registry = new SimpleMeterRegistry(); CountedAspect countedAspect = new CountedAspect(registry); diff --git a/docs/src/test/java/io/micrometer/docs/metrics/TimedAspectTest.java b/docs/src/test/java/io/micrometer/docs/metrics/TimedAspectTest.java index 7539097ac3..3f721f8aac 100644 --- a/docs/src/test/java/io/micrometer/docs/metrics/TimedAspectTest.java +++ b/docs/src/test/java/io/micrometer/docs/metrics/TimedAspectTest.java @@ -108,7 +108,7 @@ void meterTagsWithExpression(AnnotatedTestClass annotatedClass) { } @ParameterizedTest - @EnumSource(AnnotatedTestClass.class) + @EnumSource void multipleMeterTagsWithExpression(AnnotatedTestClass annotatedClass) { MeterRegistry registry = new SimpleMeterRegistry(); TimedAspect timedAspect = new TimedAspect(registry); diff --git a/micrometer-commons/src/main/java/io/micrometer/common/annotation/AnnotatedObject.java b/micrometer-commons/src/main/java/io/micrometer/common/annotation/AnnotatedObject.java index 05098ba10d..d408b4ff0c 100644 --- a/micrometer-commons/src/main/java/io/micrometer/common/annotation/AnnotatedObject.java +++ b/micrometer-commons/src/main/java/io/micrometer/common/annotation/AnnotatedObject.java @@ -20,8 +20,8 @@ import java.lang.annotation.Annotation; /** - * A container class that holds information about the parameter of the annotated method - * argument. + * A container class that holds information about the parameter or return value of the + * annotated method. * * Code ported from Spring Cloud Sleuth. * diff --git a/micrometer-commons/src/main/java/io/micrometer/common/annotation/AnnotationHandler.java b/micrometer-commons/src/main/java/io/micrometer/common/annotation/AnnotationHandler.java index 838868e84d..69f098e7e1 100644 --- a/micrometer-commons/src/main/java/io/micrometer/common/annotation/AnnotationHandler.java +++ b/micrometer-commons/src/main/java/io/micrometer/common/annotation/AnnotationHandler.java @@ -91,10 +91,10 @@ public void addAnnotatedParameters(T objectToModify, ProceedingJoinPoint pjp) { try { Method method = ((MethodSignature) pjp.getSignature()).getMethod(); method = tryToTakeMethodFromTargetClass(pjp, method); - List annotatedParameters = AnnotationUtils.findAnnotatedObjects(annotationClass, method, + List annotatedParameters = AnnotationUtils.findAnnotatedParameters(annotationClass, method, pjp.getArgs()); - getParametersAnnotationsFromInterfaces(pjp, method, annotatedParameters); - addAnnotatedArguments(objectToModify, annotatedParameters); + addAnnotatedParametersFromInterfaces(pjp, method, annotatedParameters); + addAnnotatedObjects(objectToModify, annotatedParameters); } catch (Exception ex) { log.error("Exception occurred while trying to add annotated parameters", ex); @@ -121,7 +121,7 @@ public void addAnnotatedMethodResult(T objectToModify, ProceedingJoinPoint pjp, .map(annotation -> new AnnotatedObject(annotation, result)) .forEach(annotatedResult::add); - addAnnotatedArguments(objectToModify, annotatedResult); + addAnnotatedObjects(objectToModify, annotatedResult); } catch (Exception ex) { log.error("Exception occurred while trying to add annotated method result", ex); @@ -138,11 +138,11 @@ private static Method tryToTakeMethodFromTargetClass(ProceedingJoinPoint pjp, Me return method; } - private void getParametersAnnotationsFromInterfaces(ProceedingJoinPoint pjp, Method mostSpecificMethod, + private void addAnnotatedParametersFromInterfaces(ProceedingJoinPoint pjp, Method mostSpecificMethod, List annotatedParameters) { traverseInterfacesHierarchy(pjp, mostSpecificMethod, method -> { List annotatedParametersForActualMethod = AnnotationUtils - .findAnnotatedObjects(annotationClass, method, pjp.getArgs()); + .findAnnotatedParameters(annotationClass, method, pjp.getArgs()); // annotations for a single parameter can be `duplicated` by the ones // from parent interface, // however later on during key-based deduplication the ones from @@ -176,7 +176,7 @@ private boolean methodsAreTheSame(Method mostSpecificMethod, Method method) { && Arrays.equals(method.getParameterTypes(), mostSpecificMethod.getParameterTypes()); } - private void addAnnotatedArguments(T objectToModify, List toBeAdded) { + private void addAnnotatedObjects(T objectToModify, List toBeAdded) { Set seen = new HashSet<>(); for (AnnotatedObject container : toBeAdded) { KeyValue keyValue = toKeyValue.apply(container.annotation, container.object); diff --git a/micrometer-commons/src/main/java/io/micrometer/common/annotation/AnnotationUtils.java b/micrometer-commons/src/main/java/io/micrometer/common/annotation/AnnotationUtils.java index 758d512625..4969365dc2 100644 --- a/micrometer-commons/src/main/java/io/micrometer/common/annotation/AnnotationUtils.java +++ b/micrometer-commons/src/main/java/io/micrometer/common/annotation/AnnotationUtils.java @@ -35,7 +35,7 @@ private AnnotationUtils() { } - static List findAnnotatedObjects(Class annotationClazz, Method method, + static List findAnnotatedParameters(Class annotationClazz, Method method, Object[] args) { Parameter[] parameters = method.getParameters(); List result = new ArrayList<>(); diff --git a/samples/micrometer-samples-spring-framework6/src/test/java/io/micrometer/samples/spring6/aop/CountedAspectTest.java b/samples/micrometer-samples-spring-framework6/src/test/java/io/micrometer/samples/spring6/aop/CountedAspectTest.java index e3d795a508..8daf8c9059 100644 --- a/samples/micrometer-samples-spring-framework6/src/test/java/io/micrometer/samples/spring6/aop/CountedAspectTest.java +++ b/samples/micrometer-samples-spring-framework6/src/test/java/io/micrometer/samples/spring6/aop/CountedAspectTest.java @@ -532,7 +532,7 @@ void meterTagsWithResolver(AnnotatedTestClass annotatedClass) { void meterTagsWithExpression(AnnotatedTestClass annotatedClass) { MeterTagClassInterface service = getProxyWithCountedAspect(annotatedClass.newInstance()); - service.getReturnValueAnnotationForTagValueExpression("15L"); + service.getAnnotationForTagValueExpression("15L"); assertThat(registry.get("method.counted").tag("test", "hello characters").counter().count()).isEqualTo(1); } @@ -677,7 +677,7 @@ interface MeterTagClassInterface { String getReturnValueAnnotationForTagValueResolver(); @Counted - void getReturnValueAnnotationForTagValueExpression( + void getAnnotationForTagValueExpression( @MeterTag(key = "test", expression = "'hello' + ' characters'") String test); @Counted @@ -721,7 +721,7 @@ public String getReturnValueAnnotationForTagValueResolver() { @Counted @Override - public void getReturnValueAnnotationForTagValueExpression( + public void getAnnotationForTagValueExpression( @MeterTag(key = "test", expression = "'hello' + ' characters'") String test) { } @@ -786,7 +786,7 @@ public String getReturnValueAnnotationForTagValueResolver() { @Counted @Override - public void getReturnValueAnnotationForTagValueExpression(String test) { + public void getAnnotationForTagValueExpression(String test) { } @Counted diff --git a/samples/micrometer-samples-spring-framework6/src/test/java/io/micrometer/samples/spring6/aop/TimedAspectTest.java b/samples/micrometer-samples-spring-framework6/src/test/java/io/micrometer/samples/spring6/aop/TimedAspectTest.java index b51f824752..d3a15a35ee 100644 --- a/samples/micrometer-samples-spring-framework6/src/test/java/io/micrometer/samples/spring6/aop/TimedAspectTest.java +++ b/samples/micrometer-samples-spring-framework6/src/test/java/io/micrometer/samples/spring6/aop/TimedAspectTest.java @@ -650,7 +650,7 @@ void meterTagOnSuperClass() { } @ParameterizedTest - @EnumSource(AnnotatedTestClass.class) + @EnumSource void meterTagsOnReturnValueWithText(AnnotatedTestClass annotatedClass) { MeterTagClassInterface service = getProxyWithTimedAspect(annotatedClass.newInstance()); @@ -660,7 +660,7 @@ void meterTagsOnReturnValueWithText(AnnotatedTestClass annotatedClass) { } @ParameterizedTest - @EnumSource(AnnotatedTestClass.class) + @EnumSource void meterTagsOnReturnValueWithResolver(AnnotatedTestClass annotatedClass) { MeterTagClassInterface service = getProxyWithTimedAspect(annotatedClass.newInstance()); @@ -673,7 +673,7 @@ void meterTagsOnReturnValueWithResolver(AnnotatedTestClass annotatedClass) { } @ParameterizedTest - @EnumSource(AnnotatedTestClass.class) + @EnumSource void meterTagsOnReturnValueWithExpression(AnnotatedTestClass annotatedClass) { MeterTagClassInterface service = getProxyWithTimedAspect(annotatedClass.newInstance()); @@ -684,7 +684,7 @@ void meterTagsOnReturnValueWithExpression(AnnotatedTestClass annotatedClass) { } @ParameterizedTest - @EnumSource(AnnotatedTestClass.class) + @EnumSource void multipleMeterTagsOnReturnValueWithExpression(AnnotatedTestClass annotatedClass) { MeterTagClassInterface service = getProxyWithTimedAspect(annotatedClass.newInstance()); @@ -698,7 +698,7 @@ void multipleMeterTagsOnReturnValueWithExpression(AnnotatedTestClass annotatedCl } @ParameterizedTest - @EnumSource(AnnotatedTestClass.class) + @EnumSource void multipleMeterTagsOnReturnValueWithinContainerWithExpression(AnnotatedTestClass annotatedClass) { MeterTagClassInterface service = getProxyWithTimedAspect(annotatedClass.newInstance());