This is an automated email from the ASF dual-hosted git repository. jamesnetherton pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git
commit 51e332808a8ce704a26e5700353e14819a8dbf37 Author: James Netherton <[email protected]> AuthorDate: Wed Feb 25 08:20:09 2026 +0000 Document and test FOP JDK 25 workaround --- docs/modules/ROOT/pages/reference/extensions/fop.adoc | 15 +++++++++------ extensions/fop/runtime/src/main/doc/limitations.adoc | 13 ++++++++----- integration-tests/fop/pom.xml | 7 +++++-- pom.xml | 1 + poms/bom/pom.xml | 5 +++++ poms/bom/src/main/generated/flattened-full-pom.xml | 5 +++++ poms/bom/src/main/generated/flattened-reduced-pom.xml | 5 +++++ .../src/main/generated/flattened-reduced-verbose-pom.xml | 5 +++++ 8 files changed, 43 insertions(+), 13 deletions(-) diff --git a/docs/modules/ROOT/pages/reference/extensions/fop.adoc b/docs/modules/ROOT/pages/reference/extensions/fop.adoc index 3c2f3fe523..a668c47da8 100644 --- a/docs/modules/ROOT/pages/reference/extensions/fop.adoc +++ b/docs/modules/ROOT/pages/reference/extensions/fop.adoc @@ -47,16 +47,19 @@ endif::[] [id="extensions-fop-camel-quarkus-limitations"] == Camel Quarkus limitations -[id="extensions-fop-limitations-supported-jdk-versions"] -=== Supported JDK versions +[id="extensions-fop-limitations-jdk-25"] +=== JDK 25+ -Due to an https://issues.apache.org/jira/browse/FOP-3275[issue] with Apache FOP encountered with JDK 25, it's advised to build and run your application with JDK 21 or JDK 17 when using this extension. +Due to an https://issues.apache.org/jira/browse/FOP-3275[issue] with Apache FOP encountered with JDK 25+, https://www.saxonica.com/documentation12/documentation.xml[`Saxon-HE`] is required to avoid reentrant XML parsing problems. -When running in native mode, you'll need to ensure you build with the appropriate GraalVM / Mandrel version. When using containerized native image builds, you can override the default Quarkus builder image with the following configuration. +`Saxon-HE` can be added to your application as follows. -[source,properties] +[source,xml] ---- -quarkus.native.builder-image=quay.io/quarkus/ubi9-quarkus-mandrel-builder-image:jdk-21 +<dependency> + <groupId>net.sf.saxon</groupId> + <artifactId>Saxon-HE</artifactId> +</dependency> ---- [id="extensions-fop-limitations-supported-output-types"] diff --git a/extensions/fop/runtime/src/main/doc/limitations.adoc b/extensions/fop/runtime/src/main/doc/limitations.adoc index e333a1aff6..cfdaf3e01b 100644 --- a/extensions/fop/runtime/src/main/doc/limitations.adoc +++ b/extensions/fop/runtime/src/main/doc/limitations.adoc @@ -1,12 +1,15 @@ -=== Supported JDK versions +=== JDK 25+ -Due to an https://issues.apache.org/jira/browse/FOP-3275[issue] with Apache FOP encountered with JDK 25, it's advised to build and run your application with JDK 21 or JDK 17 when using this extension. +Due to an https://issues.apache.org/jira/browse/FOP-3275[issue] with Apache FOP encountered with JDK 25+, https://www.saxonica.com/documentation12/documentation.xml[`Saxon-HE`] is required to avoid reentrant XML parsing problems. -When running in native mode, you'll need to ensure you build with the appropriate GraalVM / Mandrel version. When using containerized native image builds, you can override the default Quarkus builder image with the following configuration. +`Saxon-HE` can be added to your application as follows. -[source,properties] +[source,xml] ---- -quarkus.native.builder-image=quay.io/quarkus/ubi9-quarkus-mandrel-builder-image:jdk-21 +<dependency> + <groupId>net.sf.saxon</groupId> + <artifactId>Saxon-HE</artifactId> +</dependency> ---- === Supported Output Types diff --git a/integration-tests/fop/pom.xml b/integration-tests/fop/pom.xml index 4f4938f91f..a647493f84 100644 --- a/integration-tests/fop/pom.xml +++ b/integration-tests/fop/pom.xml @@ -39,6 +39,11 @@ <groupId>io.quarkus</groupId> <artifactId>quarkus-resteasy</artifactId> </dependency> + <!-- TODO: Remove this - https://github.com/apache/camel-quarkus/issues/7936 --> + <dependency> + <groupId>net.sf.saxon</groupId> + <artifactId>Saxon-HE</artifactId> + </dependency> <!-- test dependencies --> <dependency> @@ -79,8 +84,6 @@ </activation> <properties> <quarkus.native.enabled>true</quarkus.native.enabled> - <!-- TODO: Remove this - https://github.com/apache/camel-quarkus/issues/7936 --> - <quarkus.native.builder-image>quay.io/quarkus/ubi9-quarkus-mandrel-builder-image:jdk-21</quarkus.native.builder-image> </properties> <build> <plugins> diff --git a/pom.xml b/pom.xml index 84b94cd8e3..45ef792d33 100644 --- a/pom.xml +++ b/pom.xml @@ -164,6 +164,7 @@ <retrofit.version>3.0.0</retrofit.version><!-- @sync org.kiwiproject:consul-client:${consul-client-version} prop:retrofit.version --> <rhino.version>1.7.15.1</rhino.version><!-- Used by Apache FOP, to sync with transitive dependencies --> <rxjava3.version>3.1.8</rxjava3.version><!-- Used by amazon-kinesis-client and infinispan-client-hotrod-jakarta --> + <saxon.version>${saxon-version}</saxon.version> <smooks-bom.version>${smooks-version}</smooks-bom.version> <smooks.version>2.2.1</smooks.version><!-- @sync org.smooks:smooks-bom:${smooks-bom.version} prop:smooks.version --> <snakeyaml.version>2.5</snakeyaml.version><!-- @sync io.quarkus:quarkus-bom:${quarkus.version} dep:org.yaml:snakeyaml --> diff --git a/poms/bom/pom.xml b/poms/bom/pom.xml index f0292bad2f..a26afc017e 100644 --- a/poms/bom/pom.xml +++ b/poms/bom/pom.xml @@ -7910,6 +7910,11 @@ <artifactId>json-smart</artifactId> <version>${json-smart.version}</version> </dependency> + <dependency> + <groupId>net.sf.saxon</groupId> + <artifactId>Saxon-HE</artifactId> + <version>${saxon.version}</version> + </dependency> <dependency> <groupId>org.antlr</groupId> <artifactId>antlr-runtime</artifactId> diff --git a/poms/bom/src/main/generated/flattened-full-pom.xml b/poms/bom/src/main/generated/flattened-full-pom.xml index 3ee31b0c74..c4c56d37cc 100644 --- a/poms/bom/src/main/generated/flattened-full-pom.xml +++ b/poms/bom/src/main/generated/flattened-full-pom.xml @@ -7793,6 +7793,11 @@ <artifactId>json-smart</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> <version>2.6.0</version><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> </dependency> + <dependency> + <groupId>net.sf.saxon</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> + <artifactId>Saxon-HE</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> + <version>12.9</version><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> + </dependency> <dependency> <groupId>org.antlr</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> <artifactId>antlr-runtime</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> diff --git a/poms/bom/src/main/generated/flattened-reduced-pom.xml b/poms/bom/src/main/generated/flattened-reduced-pom.xml index 06d95c8a4c..96c661cff3 100644 --- a/poms/bom/src/main/generated/flattened-reduced-pom.xml +++ b/poms/bom/src/main/generated/flattened-reduced-pom.xml @@ -7737,6 +7737,11 @@ <artifactId>json-smart</artifactId> <version>2.6.0</version> </dependency> + <dependency> + <groupId>net.sf.saxon</groupId> + <artifactId>Saxon-HE</artifactId> + <version>12.9</version> + </dependency> <dependency> <groupId>org.antlr</groupId> <artifactId>antlr-runtime</artifactId> diff --git a/poms/bom/src/main/generated/flattened-reduced-verbose-pom.xml b/poms/bom/src/main/generated/flattened-reduced-verbose-pom.xml index 6f24acaedf..2ea072d212 100644 --- a/poms/bom/src/main/generated/flattened-reduced-verbose-pom.xml +++ b/poms/bom/src/main/generated/flattened-reduced-verbose-pom.xml @@ -7737,6 +7737,11 @@ <artifactId>json-smart</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> <version>2.6.0</version><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> </dependency> + <dependency> + <groupId>net.sf.saxon</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> + <artifactId>Saxon-HE</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> + <version>12.9</version><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> + </dependency> <dependency> <groupId>org.antlr</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> <artifactId>antlr-runtime</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
