[ 
https://issues.apache.org/jira/browse/FLINK-36612?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Hong Liang Teoh updated FLINK-36612:
------------------------------------
    Description: 
When creating a POJO using Lombok, the getters and setters are automatically 
generated.

It would be good for Flink to recognise the generated getters and setters 
generated by Lombok.
h2. Steps to replicate

Create a class using Lombok
{code:java}
@Builder(toBuilder = true)
@Data
@AllArgsConstructor
@ToString
public class TestClass {
    
    private String label;
    private String source;
    private boolean isDroppable;
    private List<String> values;
} {code}
Check the serializer used for the class
{code:java}
            var config = new ExecutionConfig();
            TypeSerializer<?> serializer = TypeExtractor.getForClass(clazz)
                    .createSerializer(config);
            System.out.println("Class: " + clazz + " Serializer: " + 
serializer);{code}
h2. References

Blogpost:w

[https://www.linkedin.com/pulse/eliminating-kryo-serialisation-apache-flink-120-remove-jason-taylor-qoase/]

Type extractor checks for method names:

[https://github.com/apache/flink/blob/cddb14eddcd607daa9f74c3e276d68a4e614c014/flink-core/src/main/java/org/apache/flink/api/java/typeutils/TypeExtractor.java#L2034-L2036]

  was:
When creating a POJO using Lombok, the getters and setters are automatically 
generated.

It would be good for Flink to recognise the generated getters and setters 
generated by Lombok.

 

 

 
h2. Steps to replicate

Create a class using Lombok
{code:java}
@Builder(toBuilder = true)
@Data
@AllArgsConstructor
@ToString
public class Telemetry {
    
    private String label;
    private String source;
    private boolean isDroppable;
    private List<String> values;
} {code}
Check the serializer used for the class
{code:java}
            var config = new ExecutionConfig();
            TypeSerializer<?> serializer = TypeExtractor.getForClass(clazz)
                    .createSerializer(config);
            System.out.println("Class: " + clazz + " Serializer: " + 
serializer);{code}
h2. References

Blogpost:w

[https://www.linkedin.com/pulse/eliminating-kryo-serialisation-apache-flink-120-remove-jason-taylor-qoase/]

Type extractor checks for method names:

[https://github.com/apache/flink/blob/cddb14eddcd607daa9f74c3e276d68a4e614c014/flink-core/src/main/java/org/apache/flink/api/java/typeutils/TypeExtractor.java#L2034-L2036]


> Flink TypeSerializer doesn't recognize valid POJO getters/setters generated 
> by Lombok
> -------------------------------------------------------------------------------------
>
>                 Key: FLINK-36612
>                 URL: https://issues.apache.org/jira/browse/FLINK-36612
>             Project: Flink
>          Issue Type: Bug
>          Components: API / Type Serialization System
>    Affects Versions: 2.0.0, 1.20.1
>            Reporter: Hong Liang Teoh
>            Priority: Major
>
> When creating a POJO using Lombok, the getters and setters are automatically 
> generated.
> It would be good for Flink to recognise the generated getters and setters 
> generated by Lombok.
> h2. Steps to replicate
> Create a class using Lombok
> {code:java}
> @Builder(toBuilder = true)
> @Data
> @AllArgsConstructor
> @ToString
> public class TestClass {
>     
>     private String label;
>     private String source;
>     private boolean isDroppable;
>     private List<String> values;
> } {code}
> Check the serializer used for the class
> {code:java}
>             var config = new ExecutionConfig();
>             TypeSerializer<?> serializer = TypeExtractor.getForClass(clazz)
>                     .createSerializer(config);
>             System.out.println("Class: " + clazz + " Serializer: " + 
> serializer);{code}
> h2. References
> Blogpost:w
> [https://www.linkedin.com/pulse/eliminating-kryo-serialisation-apache-flink-120-remove-jason-taylor-qoase/]
> Type extractor checks for method names:
> [https://github.com/apache/flink/blob/cddb14eddcd607daa9f74c3e276d68a4e614c014/flink-core/src/main/java/org/apache/flink/api/java/typeutils/TypeExtractor.java#L2034-L2036]



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to