tzulitai opened a new pull request #119:
URL: https://github.com/apache/flink-statefun/pull/119
This PR is a pre-requisite preparation for adding state TTL for remote
functions.
It refactors the `JsonModule`, so that it'll be easier to manage the parsing
logic of JSON application entities (functions, ingresses, egresses, routers,
etc.) across multiple supported format versions.
## Main changes
All concerns of parsing JSON into specs and binding them to the module is
implemented as several `JsonEntity`s. For example, the `FunctionJsonEntity`
handles the parsing and binding of functions, `IngressJsonEntity` handles
ingresses, etc. The `JsonEntity` interface is:
```
interface JsonEntity {
void bind(Binder binder, JsonNode moduleSpecNode, FormatVersion version)
}
```
With this approach, each `JsonEntity` implementation is responsible of
figuring out how to parse the provided JSON given the format version of the
JSON.
The `JsonModule` then just has a list of `JsonEntity`s that it needs to
fully execute, which completes the parsing and binding of the given module.
## Change log
- ffbb7c5 Adds the `JsonEntity` interface and implementations
- 1c3dff1 Uses the entities in `JsonModule`
- 6b9e29e A minor refactoring that moves the concern of default values to
the right places
- 7e0efb8 Breaks up the pointers in the `Pointers` class to their respective
entities.
## Verifying
This is just refactoring of code, no new functionality is added.
So, existing tests already cover the changes.
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]