Right now the filter chain is determined up front. We'd like to be able to dynamically determine the list of filters while processing the filter chain.
We will re-write the PowerFilterChain class in Scala to allow us to write proper unit tests for it and be able to add this capability.
The features included in this class are:
- Filter chain determination
- This feature will be getting expanded in another story, so for now, the feature-set will be maintained as-is aside from when to determine when a filter should be run.
- Filter chain routing
- Metrics for filters
- x-trace-request timing tracing
- Intrafilter logging
- For now, we'll be maintaining the same behavior, but we'll be changing it in another story.
- Splitting headers
- We'll be dropping this feature as this will be moved into a dedicated filter.
We don't need to put this on a Repose 9 branch since we'll be putting the code side-by-side the existing code. We just won't be calling the code directly yet (i.e. won't be running any functional tests against it at this time). However, if we find it easy enough to be able to run functional tests against this code, then let's consider it (i.e. we can optionally have the new implementation be used instead of the old one).
- The PowerFilterChain is re-written in Scala and renamed to ReposeFilterChain.
- The current feature-set of the PowerFilterChain, except for splitting headers, is maintained (i.e. regression tests continue to pass).