spring-cloud / spring-cloud-stream-binder-kafka

Spring Cloud Stream binders for Apache Kafka and Kafka Streams
Apache License 2.0
331 stars 301 forks source link

Kafka Streams Serdes having nested generic doesn't work #1205

Closed AnandMandhre closed 2 years ago

AnandMandhre commented 2 years ago

Two functions on kafka topics with nested generics like below causes incorrect serde to be selected during deserialization.

    @Bean
    public Function<KStream<String, CloudEvent<ClassA>>, KStream<String, CloudEvent<ClassB>>> method1() {
         ....... //lambda
    }

    @Bean
    public Function<KStream<String, CloudEvent<ClassB>>, KStream<String, CloudEvent<ClassC>>> method2() {
        ...... //lambda
    }

   @Bean
    public Serde<CloudEvent<ClassA>> classASerde(ObjectMapper mapper, Validator validator) {     
        return StreamsSerdes.classASerde(mapper,validator);
    }

    @Bean
    public Serde<CloudEvent<ClassB>> classBSerde(ObjectMapper mapper, Validator validator) {     
        return StreamsSerdes.classBSerde(mapper,validator);
    }

See also https://stackoverflow.com/questions/71351893/kafka-streams-serdes-having-nested-generic-doesnt-work

sobychacko commented 2 years ago

Issue moved to spring-cloud/spring-cloud-stream #2318 via ZenHub

AnandMandhre commented 2 years ago

Hello Sobychacko,

Is the issue solved, if yes then in which version ?

sobychacko commented 2 years ago

@AnandMandhre The issue is not addressed yet but will be soon in a few weeks. Please stay tuned.