Ce contenu n'est pas disponible dans la langue sélectionnée.
Chapter 44. JSLT
Query or transform JSON payloads using an JSLT.
44.1. What’s inside Copier lienLien copié sur presse-papiers!
-
JSLT component, URI syntax:
jslt:resourceUri
Please refer to the above link for usage and configuration details.
44.2. Maven coordinates Copier lienLien copié sur presse-papiers!
Create a new project with this extension on code.quarkus.redhat.com
Or add the coordinates to your existing project:
<dependency> <groupId>org.apache.camel.quarkus</groupId> <artifactId>camel-quarkus-jslt</artifactId> </dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-jslt</artifactId>
</dependency>
44.3. allowContextMapAll option in native mode Copier lienLien copié sur presse-papiers!
The allowContextMapAll
option is not supported in native mode as it requires reflective access to security sensitive camel core classes such as CamelContext
& Exchange
. This is considered a security risk and thus access to the feature is not provided by default.
44.4. Additional Camel Quarkus configuration Copier lienLien copié sur presse-papiers!
44.4.1. Loading JSLT templates from classpath in native mode Copier lienLien copié sur presse-papiers!
This component typically loads the templates from classpath. To make it work also in native mode, you need to explicitly embed the templates files in the native executable by using the quarkus.native.resources.includes
property.
For instance, the route below would load the JSLT schema from a classpath resource named transformation.json
:
from("direct:start").to("jslt:transformation.json");
from("direct:start").to("jslt:transformation.json");
To include this (an possibly other templates stored in .json
files) in the native image, you would have to add something like the following to your application.properties
file:
quarkus.native.resources.includes = *.json
quarkus.native.resources.includes = *.json
44.4.2. Using JSLT functions in native mode Copier lienLien copié sur presse-papiers!
When using JSLT functions from camel-quarkus in native mode, the classes hosting the functions would need to be registered for reflection. When registering the target function is not possible, one may end up writing a stub as below.
The target function Math.pow(…)
is now accessible through the MathFunctionStub
class that could be registered in the component as below: