[ https://issues.apache.org/jira/browse/FLINK-15674?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17054264#comment-17054264 ]
Guowei Ma commented on FLINK-15674: ----------------------------------- I think we should make java type extractor stack extensible before we migrate the scala stack into it. So I write a doc about how to make the TypeExrtactor extensible. [https://docs.google.com/document/d/1h8KNYKbBUBYg0Yhj8TwrmpyetgXXdM4bNh7FSJroWNw/edit#] Any comments are welcome. > Let Java and Scala Type Extraction go through the same stack > ------------------------------------------------------------ > > Key: FLINK-15674 > URL: https://issues.apache.org/jira/browse/FLINK-15674 > Project: Flink > Issue Type: Improvement > Components: API / DataStream > Reporter: Stephan Ewen > Priority: Critical > Labels: usability > > Currently, the Java and Scala Type Extraction stacks are completely different. > * Java uses the {{TypeExtractor}} > * Scala uses the type extraction macros. > As a result, the same class can be extracted as different types in the > different stacks, which can lead to very confusing results. In particular, > when you use the TypeExtractor on Scala Classes, you always get a > {{GenericType}}. > *Suggestion for New Design* > There should be one type extraction stack, based on the TypeExtractor. > * The TypeExtractor should be extensible and load additions through service > loaders, similar as it currently loads Avro as an extension. > * The Scala Type Extraction logic should be such an extension. > * The Scala Marcos would only capture the {{Type}} (as in Java type), meaning > {{Class}}, or {{ParameterizedType}}, or {{Array}} (etc.) and delegate this to > the TypeExtractor. -- This message was sent by Atlassian Jira (v8.3.4#803005)