[ https://issues.apache.org/jira/browse/FLINK-23600?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Tzu-Li (Gordon) Tai closed FLINK-23600. --------------------------------------- Resolution: Fixed flink-statefun/master: f11b3f22b83b6683e67d129a76f02641120ec66c > Rework StateFun's remote module parsing and binding > --------------------------------------------------- > > Key: FLINK-23600 > URL: https://issues.apache.org/jira/browse/FLINK-23600 > Project: Flink > Issue Type: New Feature > Components: Stateful Functions > Reporter: Tzu-Li (Gordon) Tai > Assignee: Tzu-Li (Gordon) Tai > Priority: Major > Labels: pull-request-available > Fix For: statefun-3.1.0 > > > Currently, we have a {{JsonModule}} class that is responsible for parsing > user's module YAML specifications, resolving the specification into > application components (i.e. function providers, ingresses, routers, and > egresses) that is then bound to the application universe. > Over time, the {{JsonModule}} class has overgrown with several changes as we > progressively adapted the YAML format. > * The class handles ALL kinds of components, including ingresses / functions > / egresses etc. The code is extremely fragile and becoming hard to extend. > * Users have no access to extend this class, if they somehow need to plugin > custom components (e.g. adding an unsupported ingress / egress, custom > protocol implementations etc). > We aim to rework this with the following goals in mind: > # The system should only handle {{module.yaml}} parsing up to the point where > it extracts a list of JSON objects that individually represent an application > component. > # The system has no knowledge of what each JSON objects contains, other than > its {{TypeName}} which would map to a corresponding {{ComponentBinder}}. > # A {{ComponentBinder}} is essentially an extension bound to the system that > knows how to parse a specific JSON object, and bind components to the > application universe. -- This message was sent by Atlassian Jira (v8.3.4#803005)