[ https://issues.apache.org/jira/browse/FLINK-8000?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16240558#comment-16240558 ]
ASF GitHub Bot commented on FLINK-8000: --------------------------------------- GitHub user tillrohrmann opened a pull request: https://github.com/apache/flink/pull/4958 [FLINK-8000] Sort Rest handler URLS in RestServerEndpoint ## What is the purpose of the change Introduce special `RestHandlerUrlComparator` to sort REST URLs such that URLs with path parameters are sorted after those without or fewer. E.g. the following order would be established ``` /jobs /jobs/overview /jobs/:jobid /jobs/:jobid/config /:* ``` ## Brief change log - Introduce `RestHandlerUrlComparator` - Sort list of returned rest handlers in `RestServerEndpoint` before registering them ## Verifying this change - `RestServerEndpointTest#testRestHandlerUrlSorting` ## Does this pull request potentially affect one of the following parts: - Dependencies (does it add or upgrade a dependency): (no) - The public API, i.e., is any changed class annotated with `@Public(Evolving)`: (no) - The serializers: (no) - The runtime per-record code paths (performance sensitive): (no) - Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Yarn/Mesos, ZooKeeper: (no) - The S3 file system connector: (no) ## Documentation - Does this pull request introduce a new feature? (no) - If yes, how is the feature documented? (not applicable) You can merge this pull request into a Git repository by running: $ git pull https://github.com/tillrohrmann/flink sortRestHandlerUrls Alternatively you can review and apply these changes as the patch at: https://github.com/apache/flink/pull/4958.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #4958 ---- commit d1c436ef0e9e446004e21e3c6be6173d15aba359 Author: Till Rohrmann <trohrm...@apache.org> Date: 2017-11-04T13:56:11Z [FLINK-8000] Sort Rest handler URLS in RestServerEndpoint Introduce special RestHandlerUrlComparator to sort REST URLs such that URLs with path parameters are sorted after those without or fewer. E.g. the following order would be established /jobs /jobs/overview /jobs/:jobid /jobs/:jobid/config /:* ---- > Sort REST handler URLs in RestServerEndpoint > -------------------------------------------- > > Key: FLINK-8000 > URL: https://issues.apache.org/jira/browse/FLINK-8000 > Project: Flink > Issue Type: Improvement > Components: REST > Affects Versions: 1.4.0 > Reporter: Till Rohrmann > Assignee: Till Rohrmann > Priority: Minor > Labels: flip-6 > > In order to make the {{RestServerEndpoint}} more easily extendable, we should > automatically sort the returned list of rest handler when calling > {{RestServerEndpoint#initializeHandlers}}. That way the order in which the > handlers are added to the list is independent of the actual registration > order. This is, for example, important for the static file server which > always needs to be registered last. > I propose to add a special {{String}} {{Comparator}} which considers the > charactor {{':'}} to be the character with the largest value. That way we > should get always the following sort order: > - URLs without path parameters have precedence over similar URLs where parts > are replaced by path parameters (e.g. {{/jobs/overview}}, {{/jobs/:jobid}} > and {{/jobs/:jobid/config}}, {{/jobs/:jobid/vertices/:vertexId}}) > - Prefixes are sorted before URLs containing the prefix (e.g. {{/jobs}}, > {{/jobs/overview}}) -- This message was sent by Atlassian JIRA (v6.4.14#64029)