Skip to content

quarkus‐kafka‐streams‐processor 2.0 migration guide

Emile de Weerd edited this page Oct 8, 2024 · 2 revisions

CDI decorators

Quarkus 3.8 presents a random incompatibility with Processor decorators annotated with CDI's Decorator annotation. If you are using custom Processor decorators, this is what you will need to change:

-@Decorator
+@Dependent
 @Priority(ProcessorDecoratorPriorities.DLQ)
-public class MyDecorator implements AbstractProcessorDecorator {
+public class MyDecorator implements AbstractProcessorDecorator {
-   @lombok.experimental.Delegate(excludes = Excludes.class)
-   private final Processor<KIn, VIn, KOut, VOut> delegate;

    private final MyBean myBean;

    @Inject
-   public MyDecorator(@Delegate Processor<KIn, VIn, KOut, VOut> delegate, MyBean myBean) {
-       this.delegate = delegate;
+   public MyDecorator(MyBean myBean) {
        this.myBean = myBean;
    }

    @Override
-   public void process(Record<KIn, VIn> record) {
+   public void process(Record record) {
         // before process logic
-        delegate.process(record);
+        getDelegate().process(record);
         // post process logic
     }

-    private interface Excludes {
-        <KIn, VIn> void process(Record<KIn, VIn> record);
-    }
 }

This change will be removed in quarkus-kafka-streams-processor 3.0, which will be based on Quarkus 3.15 LTS.

Clone this wiki locally