diff --git a/docs/src/main/asciidoc/cdi-integration.adoc b/docs/src/main/asciidoc/cdi-integration.adoc index 8be356cfb891f..78b630c3645ee 100644 --- a/docs/src/main/asciidoc/cdi-integration.adoc +++ b/docs/src/main/asciidoc/cdi-integration.adoc @@ -208,6 +208,18 @@ void queryAnnotations(TransformedAnnotationsBuildItem transformedAnnotations, Bu NOTE: There are other build items specialized in transformation: <> and <>. +=== How to Enable Trace Logging for Annotation Transformers + +You can set the `TRACE` level for the category `io.quarkus.arc.processor` and try to analyze the log output afterwards. + +.`application.properties` Example +[source,properties] +---- +quarkus.log.category."io.quarkus.arc.processor".min-level=TRACE <1> +quarkus.log.category."io.quarkus.arc.processor".level=TRACE +---- +<1> You also need to adjust the minimum log level for the relevant category. + [[inspect_beans]] == Use Case - Inspect Beans, Observers and Injection Points diff --git a/independent-projects/arc/processor/src/main/java/io/quarkus/arc/processor/AnnotationStore.java b/independent-projects/arc/processor/src/main/java/io/quarkus/arc/processor/AnnotationStore.java index 5793a7d820a00..a43ff39f03f7d 100644 --- a/independent-projects/arc/processor/src/main/java/io/quarkus/arc/processor/AnnotationStore.java +++ b/independent-projects/arc/processor/src/main/java/io/quarkus/arc/processor/AnnotationStore.java @@ -1,6 +1,7 @@ package io.quarkus.arc.processor; import java.util.ArrayList; +import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.EnumMap; @@ -8,6 +9,7 @@ import java.util.Objects; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; +import java.util.stream.Collectors; import org.jboss.jandex.AnnotationInstance; import org.jboss.jandex.AnnotationTarget; @@ -15,6 +17,7 @@ import org.jboss.jandex.DotName; import org.jboss.jandex.FieldInfo; import org.jboss.jandex.MethodInfo; +import org.jboss.logging.Logger; import io.quarkus.arc.processor.AnnotationsTransformer.TransformationContext; import io.quarkus.arc.processor.BuildExtension.BuildContext; @@ -138,6 +141,8 @@ private List initTransformers(Kind kind, Collection> implements TransformationContext { + private static final Logger LOG = Logger.getLogger(TransformationContextImpl.class); + public TransformationContextImpl(BuildContext buildContext, AnnotationTarget target, Collection annotations) { super(buildContext, target, annotations); @@ -145,6 +150,14 @@ public TransformationContextImpl(BuildContext buildContext, AnnotationTarget tar @Override public Transformation transform() { + if (LOG.isTraceEnabled()) { + String stack = Arrays.stream(Thread.currentThread().getStackTrace()) + .skip(2) + .limit(7) + .map(se -> "\n\t" + se.toString()) + .collect(Collectors.joining()); + LOG.tracef("Transforming annotations of %s %s\n\t...", target, stack); + } return new Transformation(new ArrayList<>(getAnnotations()), getTarget(), this::setAnnotations); } diff --git a/independent-projects/arc/processor/src/main/java/io/quarkus/arc/processor/AnnotationsTransformationContext.java b/independent-projects/arc/processor/src/main/java/io/quarkus/arc/processor/AnnotationsTransformationContext.java index c7e994c9a37c4..5a46fac8355de 100644 --- a/independent-projects/arc/processor/src/main/java/io/quarkus/arc/processor/AnnotationsTransformationContext.java +++ b/independent-projects/arc/processor/src/main/java/io/quarkus/arc/processor/AnnotationsTransformationContext.java @@ -4,6 +4,7 @@ import org.jboss.jandex.AnnotationInstance; import org.jboss.jandex.AnnotationTarget; +import org.jboss.logging.Logger; import io.quarkus.arc.processor.BuildExtension.BuildContext; import io.quarkus.arc.processor.BuildExtension.Key; @@ -13,6 +14,8 @@ */ abstract class AnnotationsTransformationContext> implements BuildContext { + private static final Logger LOG = Logger.getLogger(AnnotationsTransformationContext.class); + protected final BuildContext buildContext; protected final AnnotationTarget target; private C annotations; @@ -49,6 +52,7 @@ public C getAnnotations() { } void setAnnotations(C annotations) { + LOG.tracef("Annotations of %s transformed: %s", target, annotations); this.annotations = annotations; }