in geronimo-metrics/src/main/java/org/apache/geronimo/microprofile/metrics/cdi/MetricsExtension.java [216:237]
void findInterceptorMetrics(@Observes @WithAnnotations({
Counted.class,
SimplyTimed.class,
Timed.class,
ConcurrentGauge.class,
org.eclipse.microprofile.metrics.annotation.Metered.class,
org.eclipse.microprofile.metrics.annotation.Gauge.class
}) final ProcessAnnotatedType<?> pat) {
final AnnotatedType<?> annotatedType = pat.getAnnotatedType();
final Class<?> javaClass = annotatedType.getJavaClass();
if (javaClass.getName().startsWith("org.apache.geronimo.microprofile.metrics.") ||
Modifier.isAbstract(javaClass.getModifiers()) ||
javaClass.isInterface()) {
return;
}
Stream.concat(annotatedType.getMethods().stream(), annotatedType.getConstructors().stream())
.filter(method -> method.getJavaMember().getDeclaringClass() == javaClass || Modifier.isAbstract(method.getJavaMember().getDeclaringClass().getModifiers()))
.filter(method -> !method.getJavaMember().isSynthetic() && !Modifier.isPrivate(method.getJavaMember().getModifiers()))
.filter(method -> !method.isAnnotationPresent(Produces.class))
.forEach(method -> doRegisterMetric(annotatedType, javaClass, method));
}