Currently ValidationModelProviders are asked once for validation models for a specific resource type. The result is cached, which may be invalidated as a whole by the ValidationModelProvider as well.
While this works, it always requires a full cache invalidation whenever a new model come into play. Consider the following use case:
- Only one model for resource type a is available with applicablePath = /content
- The model is retrieved from the ValidationModelProvider for a validation of a resource below /content/test/c
- A new model for resource type a becomes available with applicablePath = /content/test
That new model should take precedence because its applicable path is more specific. This would only work if between 2. and 3. the cache is fully invalidated.
The new model is actually never leveraged unless the full cache is invalidated in between.