This is essentially a sub-task of, which we decided should be broken up into 2 issues - one to deal with incoming path processing (this one) and one to deal with the outgoing (url generation) side of things. The original issue will be kept for the outgoing side and will build on the work done here.
The goal here, then, is to turn the process for resolving the incoming path to a system path into something that can be mirrored on the outgoing side. The current set-up uses a series of request listeners to perform the necessary futzing:
- one for urldecoding the path
- one that resolves an empty path to the system path for the front page
- one for stripping off the language prefix if there is one
- one for converting an alias to a system path
This patch replaces the series of request listeners with a single listener that uses a PathProcessorManager to resolve the system path. Individual processors are registered to the manager with a priority indicating where in the sequence they should come, and the manager goes through them in sequence to return a fully processed path.
|PASSED: [[SimpleTest]]: [MySQL] 50,909 pass(es).|
|PASSED: [[SimpleTest]]: [MySQL] 49,950 pass(es).|
|PASSED: [[SimpleTest]]: [MySQL] 49,951 pass(es).|