Details
-
Improvement
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
-
None
-
Patch Available
-
Unknown
Description
The validator endpoint allows already to specify custom resource resolvers, via the parameter resourceResolver. However, there is a use case where this functionality is not sufficient. If you have a dynamically created validator endpoint, like
<camel:recipientList>
<camel:simple>validator:${header.XSD_FILE}?resourceResolver=#resourceResolver</camel:simple>
</camel:recipientList>
where the resource URI of the XSD document is also dynamic (in the example via the header XSD_FILE) and if your resource resolver depends on the resource URI of the XSD document, then the current implementation gives you no solution for this problem. You cannot hand-over the dynamic resource URI to the custom resource resolver.
Therefore we introduce the new parameter resourceResolverFactory where you can specify a factory which implements the method
LSResourceResolver createResourceResolver(CamelContext camelContext, String rootResourceUri);
This method is called when the endpoint is created and gives you access to the endpoint resource URI (parameter rootResourceUri).
Remark: resource resolvers need to have the root resource URI in the case of relative URIs.