This is an automated email from the ASF dual-hosted git repository.
apupier pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git
The following commit(s) were added to refs/heads/main by this push:
new fd44a19fb2 PDF generation with image in native with Apache FOP
fd44a19fb2 is described below
commit fd44a19fb241337e0613d30291573829b331ce0b
Author: Aurélien Pupier <[email protected]>
AuthorDate: Mon Jan 12 13:42:51 2026 +0100
PDF generation with image in native with Apache FOP
* use ServiceBuildItem to register all services from Apache FOP
(fop-core) and Apache xmlgraphics-commons
* it requires to add the optional dependency (from fop-core) on rhino.
* Using Service build item allowed to simplify some parts:
* Some class previously registered for runtime initialization are no
more needed
* the META-INF/services/* files are now automatically registered
fixes #8067
Signed-off-by: Aurélien Pupier <[email protected]>
---
extensions/fop/deployment/pom.xml | 4 +
.../component/fop/deployment/FopProcessor.java | 90 ++++++++++++++++++++--
extensions/fop/runtime/pom.xml | 8 ++
.../camel/quarkus/component/fop/it/FopTest.java | 68 ++++++++++++----
pom.xml | 2 +
poms/bom/pom.xml | 15 ++++
poms/bom/src/main/generated/flattened-full-pom.xml | 15 ++++
.../src/main/generated/flattened-reduced-pom.xml | 15 ++++
.../generated/flattened-reduced-verbose-pom.xml | 15 ++++
9 files changed, 212 insertions(+), 20 deletions(-)
diff --git a/extensions/fop/deployment/pom.xml
b/extensions/fop/deployment/pom.xml
index ce47c72ce6..08b74d2c7b 100644
--- a/extensions/fop/deployment/pom.xml
+++ b/extensions/fop/deployment/pom.xml
@@ -33,6 +33,10 @@
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-awt-deployment</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>io.quarkiverse.batik</groupId>
+ <artifactId>quarkus-batik-deployment</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
diff --git
a/extensions/fop/deployment/src/main/java/org/apache/camel/quarkus/component/fop/deployment/FopProcessor.java
b/extensions/fop/deployment/src/main/java/org/apache/camel/quarkus/component/fop/deployment/FopProcessor.java
index d128acf742..f9336e766f 100644
---
a/extensions/fop/deployment/src/main/java/org/apache/camel/quarkus/component/fop/deployment/FopProcessor.java
+++
b/extensions/fop/deployment/src/main/java/org/apache/camel/quarkus/component/fop/deployment/FopProcessor.java
@@ -16,11 +16,13 @@
*/
package org.apache.camel.quarkus.component.fop.deployment;
+import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.List;
import java.util.stream.Collectors;
import javax.xml.namespace.QName;
+import javax.xml.transform.URIResolver;
import io.quarkus.deployment.annotations.BuildProducer;
import io.quarkus.deployment.annotations.BuildStep;
@@ -28,19 +30,42 @@ import
io.quarkus.deployment.builditem.CombinedIndexBuildItem;
import io.quarkus.deployment.builditem.FeatureBuildItem;
import io.quarkus.deployment.builditem.IndexDependencyBuildItem;
import io.quarkus.deployment.builditem.NativeImageFeatureBuildItem;
+import
io.quarkus.deployment.builditem.nativeimage.NativeImageProxyDefinitionBuildItem;
import
io.quarkus.deployment.builditem.nativeimage.NativeImageResourceBuildItem;
import io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem;
import
io.quarkus.deployment.builditem.nativeimage.RuntimeInitializedClassBuildItem;
+import io.quarkus.deployment.builditem.nativeimage.ServiceProviderBuildItem;
+import org.apache.batik.extension.svg.GlyphIterator;
+import org.apache.batik.transcoder.wmf.tosvg.WMFPainter;
import org.apache.camel.quarkus.component.fop.FopRuntimeProxyFeature;
+import org.apache.fop.ResourceEventProducer;
+import org.apache.fop.fo.ElementMapping;
+import org.apache.fop.fo.FOEventHandler;
import org.apache.fop.fo.expr.PropertyException;
import org.apache.fop.fonts.Base14Font;
import org.apache.fop.pdf.PDFSignature;
+import org.apache.fop.render.ImageHandler;
+import org.apache.fop.render.Renderer;
import org.apache.fop.render.RendererEventProducer;
+import org.apache.fop.render.XMLHandler;
+import org.apache.fop.render.bitmap.BitmapRendererOption;
+import org.apache.fop.render.intermediate.IFDocumentHandler;
+import org.apache.fop.render.pcl.PCLPageDefinition;
import org.apache.fop.render.pdf.PDFDocumentHandlerMaker;
import org.apache.fop.render.pdf.extensions.PDFExtensionHandlerFactory;
+import org.apache.fop.render.ps.PSImageHandlerSVG;
+import org.apache.fop.render.rtf.rtflib.rtfdoc.RtfList;
import org.apache.fop.util.ColorUtil;
-import org.apache.xmlgraphics.image.loader.spi.ImageImplRegistry;
+import org.apache.fop.util.ContentHandlerFactory;
+import org.apache.fop.util.bitmap.JAIMonochromeBitmapConverter;
+import org.apache.xmlgraphics.image.loader.ImageException;
+import org.apache.xmlgraphics.image.loader.spi.ImageConverter;
+import org.apache.xmlgraphics.image.loader.spi.ImageLoaderFactory;
+import org.apache.xmlgraphics.image.loader.spi.ImagePreloader;
+import org.apache.xmlgraphics.image.writer.ImageWriter;
import org.apache.xmlgraphics.java2d.color.ICCColorSpaceWithIntent;
+import org.apache.xmlgraphics.ps.ImageEncodingHelper;
+import org.apache.xmlgraphics.ps.PSState;
import org.jboss.jandex.DotName;
import org.jboss.jandex.IndexView;
@@ -57,6 +82,11 @@ class FopProcessor {
return new NativeImageFeatureBuildItem(FopRuntimeProxyFeature.class);
}
+ @BuildStep
+ NativeImageProxyDefinitionBuildItem registerDefinitionBuildTimeProxies() {
+ return new
NativeImageProxyDefinitionBuildItem(ResourceEventProducer.class.getName());
+ }
+
@BuildStep
ReflectiveClassBuildItem registerForReflection(CombinedIndexBuildItem
combinedIndex) {
IndexView index = combinedIndex.getIndex();
@@ -71,6 +101,8 @@ class FopProcessor {
dtos.add(PDFDocumentHandlerMaker.class.getName());
dtos.add(RendererEventProducer.class.getName());
dtos.add(IOException.class.getName());
+ dtos.add(FileNotFoundException.class.getName());
+ dtos.add(ImageException.class.getName());
dtos.add(Integer.class.getName());
dtos.add(QName.class.getName());
dtos.add(PropertyException.class.getName());
@@ -83,11 +115,39 @@ class FopProcessor {
indexDependency.produce(new
IndexDependencyBuildItem("org.apache.xmlgraphics", "fop-core"));
}
+ @BuildStep
+ void initServiceProviders(
+ BuildProducer<ServiceProviderBuildItem> service) {
+ // fop-core
+ service.produce(ServiceProviderBuildItem
+
.allProvidersFromClassPath("org.apache.fop.events.EventExceptionManager$ExceptionFactory"));
+
service.produce(ServiceProviderBuildItem.allProvidersFromClassPath(ElementMapping.class.getName()));
+
service.produce(ServiceProviderBuildItem.allProvidersFromClassPath(FOEventHandler.class.getName()));
+
service.produce(ServiceProviderBuildItem.allProvidersFromClassPath(ImageHandler.class.getName()));
+
service.produce(ServiceProviderBuildItem.allProvidersFromClassPath(IFDocumentHandler.class.getName()));
+
service.produce(ServiceProviderBuildItem.allProvidersFromClassPath(Renderer.class.getName()));
+
service.produce(ServiceProviderBuildItem.allProvidersFromClassPath(XMLHandler.class.getName()));
+
service.produce(ServiceProviderBuildItem.allProvidersFromClassPath(ContentHandlerFactory.class.getName()));
+ service.produce(
+
ServiceProviderBuildItem.allProvidersFromClassPath("org.apache.fop.text.AdvancedMessageFormat$Function"));
+ service.produce(ServiceProviderBuildItem
+
.allProvidersFromClassPath("org.apache.fop.text.AdvancedMessageFormat$ObjectFormatter"));
+ service.produce(
+
ServiceProviderBuildItem.allProvidersFromClassPath("org.apache.fop.text.AdvancedMessageFormat$PartFactory"));
+
+ // both fop-core and xmlgraphics-commons
+
service.produce(ServiceProviderBuildItem.allProvidersFromClassPath(ImageConverter.class.getName()));
+
service.produce(ServiceProviderBuildItem.allProvidersFromClassPath(ImageLoaderFactory.class.getName()));
+
service.produce(ServiceProviderBuildItem.allProvidersFromClassPath(ImagePreloader.class.getName()));
+
+ // xmlgraphics-commons
+
service.produce(ServiceProviderBuildItem.allProvidersFromClassPath(URIResolver.class.getName()));
+
service.produce(ServiceProviderBuildItem.allProvidersFromClassPath(ImageWriter.class.getName()));
+ }
+
@BuildStep
NativeImageResourceBuildItem initResources() {
return new NativeImageResourceBuildItem(
- "META-INF/services/org.apache.fop.fo.ElementMapping",
-
"META-INF/services/org.apache.fop.render.intermediate.IFDocumentHandler",
"org/apache/fop/svg/event-model.xml",
"org/apache/fop/area/event-model.xml",
"org/apache/fop/afp/event-model.xml",
@@ -118,9 +178,29 @@ class FopProcessor {
.map(RuntimeInitializedClassBuildItem::new)
.forEach(runtimeInitializedClass::produce);
- runtimeInitializedClass.produce(new
RuntimeInitializedClassBuildItem(ImageImplRegistry.class.getName()));
runtimeInitializedClass.produce(new
RuntimeInitializedClassBuildItem(ColorUtil.class.getName()));
- runtimeInitializedClass.produce(new
RuntimeInitializedClassBuildItem(ICCColorSpaceWithIntent.class.getName()));
runtimeInitializedClass.produce(new
RuntimeInitializedClassBuildItem(PDFSignature.class.getName()));
+ runtimeInitializedClass.produce(new
RuntimeInitializedClassBuildItem(JAIMonochromeBitmapConverter.class.getName()));
+ runtimeInitializedClass.produce(new
RuntimeInitializedClassBuildItem("org.apache.fop.svg.font.ComplexGlyphVector"));
+ runtimeInitializedClass.produce(new
RuntimeInitializedClassBuildItem(PCLPageDefinition.class.getName()));
+ runtimeInitializedClass.produce(new
RuntimeInitializedClassBuildItem(PSImageHandlerSVG.class.getName()));
+ runtimeInitializedClass.produce(new
RuntimeInitializedClassBuildItem(BitmapRendererOption.class.getName()));
+ runtimeInitializedClass
+ .produce(new
RuntimeInitializedClassBuildItem("org.apache.fop.render.bitmap.BitmapRendererConfig$1"));
+
+ // Using Random class
+ runtimeInitializedClass.produce(new
RuntimeInitializedClassBuildItem(RtfList.class.getName()));
+
+ // batik
+ runtimeInitializedClass.produce(new
RuntimeInitializedClassBuildItem(WMFPainter.class.getName()));
+ runtimeInitializedClass.produce(new
RuntimeInitializedClassBuildItem(GlyphIterator.class.getName()));
+
+ // xmlgraphics-commons
+ runtimeInitializedClass.produce(new
RuntimeInitializedClassBuildItem(ImageEncodingHelper.class.getName()));
+ runtimeInitializedClass.produce(new
RuntimeInitializedClassBuildItem(PSState.class.getName()));
+ runtimeInitializedClass
+ .produce(new
RuntimeInitializedClassBuildItem("org.apache.xmlgraphics.image.codec.png.PNGImage"));
+ runtimeInitializedClass.produce(new
RuntimeInitializedClassBuildItem(ICCColorSpaceWithIntent.class.getName()));
+
}
}
diff --git a/extensions/fop/runtime/pom.xml b/extensions/fop/runtime/pom.xml
index 2339d30a37..c02a83163a 100644
--- a/extensions/fop/runtime/pom.xml
+++ b/extensions/fop/runtime/pom.xml
@@ -40,6 +40,14 @@
<groupId>io.quarkus</groupId>
<artifactId>quarkus-awt</artifactId>
</dependency>
+ <dependency>
+ <groupId>io.quarkiverse.batik</groupId>
+ <artifactId>quarkus-batik</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.mozilla</groupId>
+ <artifactId>rhino</artifactId>
+ </dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-core</artifactId>
diff --git
a/integration-tests/fop/src/test/java/org/apache/camel/quarkus/component/fop/it/FopTest.java
b/integration-tests/fop/src/test/java/org/apache/camel/quarkus/component/fop/it/FopTest.java
index 7cc42b51ca..d67f5849a8 100644
---
a/integration-tests/fop/src/test/java/org/apache/camel/quarkus/component/fop/it/FopTest.java
+++
b/integration-tests/fop/src/test/java/org/apache/camel/quarkus/component/fop/it/FopTest.java
@@ -23,6 +23,7 @@ import java.io.Writer;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
+import java.util.Iterator;
import java.util.function.Function;
import java.util.stream.Stream;
@@ -33,15 +34,20 @@ import io.restassured.response.ExtractableResponse;
import io.restassured.specification.RequestSpecification;
import io.smallrye.common.os.OS;
import org.apache.pdfbox.Loader;
+import org.apache.pdfbox.cos.COSName;
import org.apache.pdfbox.io.RandomAccessReadBuffer;
import org.apache.pdfbox.pdmodel.PDDocument;
+import org.apache.pdfbox.pdmodel.PDPage;
+import org.apache.pdfbox.pdmodel.PDResources;
+import org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject;
import org.apache.pdfbox.text.PDFTextStripper;
+import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Assumptions;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
-import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.*;
@QuarkusTest
class FopTest {
@@ -90,6 +96,32 @@ class FopTest {
tmpDir.resolve("mycfg.xml").toAbsolutePath().toUri().toString());
}
+ @Test
+ void convertToPdfWithImage() throws Exception {
+ RequestSpecification requestSpecification = RestAssured.given()
+ .contentType(ContentType.XML);
+ ExtractableResponse<?> response = requestSpecification
+ .body(createFoContentWithBlock(
+ """
+ <fo:block>
+ <fo:external-graphic
+ content-width="150pt"
+ content-height="150pt"
+
src="url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==')"/>
+ </fo:block>
+ """))
+ .post("/fop/post")
+ .then()
+ .statusCode(201)
+ .extract();
+ PDDocument document = getDocumentFrom(response.asInputStream());
+ PDPage page = document.getPage(0);
+ PDResources resources = page.getResources();
+ Iterator<COSName> iterator = resources.getXObjectNames().iterator();
+ COSName imageName = iterator.next();
+ Assertions.assertInstanceOf(PDImageXObject.class,
resources.getXObject(imageName));
+ }
+
private void convertToPdf(Function<String, String> msgCreator, String
userConfigFile) throws IOException {
RequestSpecification requestSpecification = RestAssured.given()
.contentType(ContentType.XML);
@@ -111,20 +143,26 @@ class FopTest {
public static String decorateTextWithXSLFO(String text, String font) {
String foBlock = font == null ? " <fo:block>" + text +
"</fo:block>\n"
: " <fo:block font-family=\"" + font + "\">" + text +
"</fo:block>\n";
- return "<fo:root xmlns:fo=\"http://www.w3.org/1999/XSL/Format\">\n"
- + " <fo:layout-master-set>\n"
- + " <fo:simple-page-master master-name=\"only\">\n"
- + " <fo:region-body region-name=\"xsl-region-body\"
margin=\"0.7in\" padding=\"0\" />\n"
- + " <fo:region-before region-name=\"xsl-region-before\"
extent=\"0.7in\" />\n"
- + " <fo:region-after region-name=\"xsl-region-after\"
extent=\"0.7in\" />\n"
- + " </fo:simple-page-master>\n"
- + " </fo:layout-master-set>\n"
- + " <fo:page-sequence master-reference=\"only\">\n"
- + " <fo:flow flow-name=\"xsl-region-body\">\n"
- + foBlock
- + " </fo:flow>\n"
- + " </fo:page-sequence>\n"
- + "</fo:root>";
+ return createFoContentWithBlock(foBlock);
+ }
+
+ private static String createFoContentWithBlock(String foBlock) {
+ return """
+ <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
+ <fo:layout-master-set>
+ <fo:simple-page-master master-name="only">
+ <fo:region-body region-name="xsl-region-body"
margin="0.7in" padding="0" />
+ <fo:region-before region-name="xsl-region-before"
extent="0.7in" />
+ <fo:region-after region-name="xsl-region-after"
extent="0.7in" />
+ </fo:simple-page-master>
+ </fo:layout-master-set>
+ <fo:page-sequence master-reference="only">
+ <fo:flow flow-name="xsl-region-body">
+ %s
+ </fo:flow>
+ </fo:page-sequence>
+ </fo:root>
+ """.formatted(foBlock);
}
private PDDocument getDocumentFrom(InputStream inputStream) throws
IOException {
diff --git a/pom.xml b/pom.xml
index 18a690b6f8..2ff069fa4a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -50,6 +50,7 @@
<optaplanner.version>10.0.0</optaplanner.version><!-- This should be
in sync with quarkus-platform
https://repo1.maven.org/maven2/org/optaplanner/optaplanner-quarkus/ -->
<quarkiverse-amazonservices.version>3.12.1</quarkiverse-amazonservices.version><!--
This should be in sync with quarkus-platform
https://repo1.maven.org/maven2/io/quarkiverse/amazonservices/quarkus-amazon-services-parent/
-->
<quarkiverse-artemis.version>3.11.1</quarkiverse-artemis.version><!--
https://repo1.maven.org/maven2/io/quarkiverse/artemis/quarkus-artemis-parent/
-->
+ <quarkiverse-batik.version>1.0.0</quarkiverse-batik.version><!--
https://repo1.maven.org/maven2/io/quarkiverse/batik/quarkus-batik-parent/ -->
<quarkiverse-cxf.version>3.30.0</quarkiverse-cxf.version><!-- This
should be in sync with quarkus-platform
https://repo1.maven.org/maven2/io/quarkiverse/cxf/quarkus-cxf-parent/ -->
<quarkiverse-freemarker.version>1.3.0</quarkiverse-freemarker.version><!--
https://repo1.maven.org/maven2/io/quarkiverse/freemarker/quarkus-freemarker-parent/
-->
<quarkiverse-fory.version>0.5.0</quarkiverse-fory.version><!--
https://repo1.maven.org/maven2/io/quarkiverse/fury/quarkus-fury-parent/ -->
@@ -158,6 +159,7 @@
<reactor-core.version>3.7.11</reactor-core.version><!-- @sync
com.azure:azure-core:${azure-core.version} dep:io.projectreactor:reactor-core
-->
<reactor-netty.version>${reactor-netty-version}</reactor-netty.version>
<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 -->
<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 -->
diff --git a/poms/bom/pom.xml b/poms/bom/pom.xml
index df47f0b0a9..684cc79914 100644
--- a/poms/bom/pom.xml
+++ b/poms/bom/pom.xml
@@ -7560,6 +7560,16 @@
<artifactId>reactor-netty</artifactId>
<version>${reactor-netty.version}</version>
</dependency>
+ <dependency>
+ <groupId>io.quarkiverse.batik</groupId>
+ <artifactId>quarkus-batik</artifactId>
+ <version>${quarkiverse-batik.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>io.quarkiverse.batik</groupId>
+ <artifactId>quarkus-batik-deployment</artifactId>
+ <version>${quarkiverse-batik.version}</version>
+ </dependency>
<dependency>
<groupId>io.quarkiverse.fory</groupId>
<artifactId>quarkus-fory</artifactId>
@@ -8057,6 +8067,11 @@
<artifactId>mapstruct-processor</artifactId>
<version>${mapstruct.version}</version>
</dependency>
+ <dependency>
+ <groupId>org.mozilla</groupId>
+ <artifactId>rhino</artifactId>
+ <version>${rhino.version}</version>
+ </dependency>
<dependency>
<groupId>org.mvel</groupId>
<artifactId>mvel2</artifactId>
diff --git a/poms/bom/src/main/generated/flattened-full-pom.xml
b/poms/bom/src/main/generated/flattened-full-pom.xml
index 7d721a13f1..ca13fe8e9f 100644
--- a/poms/bom/src/main/generated/flattened-full-pom.xml
+++ b/poms/bom/src/main/generated/flattened-full-pom.xml
@@ -7446,6 +7446,16 @@
<artifactId>reactor-netty</artifactId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
<version>1.3.1</version><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
</dependency>
+ <dependency>
+ <groupId>io.quarkiverse.batik</groupId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+ <artifactId>quarkus-batik</artifactId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+ <version>1.0.0</version><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+ </dependency>
+ <dependency>
+ <groupId>io.quarkiverse.batik</groupId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+ <artifactId>quarkus-batik-deployment</artifactId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+ <version>1.0.0</version><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+ </dependency>
<dependency>
<groupId>io.quarkiverse.fory</groupId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
<artifactId>quarkus-fory</artifactId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
@@ -7943,6 +7953,11 @@
<artifactId>mapstruct-processor</artifactId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
<version>1.6.3</version><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
</dependency>
+ <dependency>
+ <groupId>org.mozilla</groupId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+ <artifactId>rhino</artifactId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+ <version>1.7.15.1</version><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+ </dependency>
<dependency>
<groupId>org.mvel</groupId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
<artifactId>mvel2</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 9abe4a5cab..8548e3beb5 100644
--- a/poms/bom/src/main/generated/flattened-reduced-pom.xml
+++ b/poms/bom/src/main/generated/flattened-reduced-pom.xml
@@ -7411,6 +7411,16 @@
<artifactId>reactor-netty</artifactId>
<version>1.3.1</version>
</dependency>
+ <dependency>
+ <groupId>io.quarkiverse.batik</groupId>
+ <artifactId>quarkus-batik</artifactId>
+ <version>1.0.0</version>
+ </dependency>
+ <dependency>
+ <groupId>io.quarkiverse.batik</groupId>
+ <artifactId>quarkus-batik-deployment</artifactId>
+ <version>1.0.0</version>
+ </dependency>
<dependency>
<groupId>io.quarkiverse.fory</groupId>
<artifactId>quarkus-fory</artifactId>
@@ -7862,6 +7872,11 @@
<artifactId>mapstruct-processor</artifactId>
<version>1.6.3</version>
</dependency>
+ <dependency>
+ <groupId>org.mozilla</groupId>
+ <artifactId>rhino</artifactId>
+ <version>1.7.15.1</version>
+ </dependency>
<dependency>
<groupId>org.mvel</groupId>
<artifactId>mvel2</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 742d6ec523..ea8c0b04cb 100644
--- a/poms/bom/src/main/generated/flattened-reduced-verbose-pom.xml
+++ b/poms/bom/src/main/generated/flattened-reduced-verbose-pom.xml
@@ -7411,6 +7411,16 @@
<artifactId>reactor-netty</artifactId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
<version>1.3.1</version><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
</dependency>
+ <dependency>
+ <groupId>io.quarkiverse.batik</groupId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+ <artifactId>quarkus-batik</artifactId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+ <version>1.0.0</version><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+ </dependency>
+ <dependency>
+ <groupId>io.quarkiverse.batik</groupId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+ <artifactId>quarkus-batik-deployment</artifactId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+ <version>1.0.0</version><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+ </dependency>
<dependency>
<groupId>io.quarkiverse.fory</groupId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
<artifactId>quarkus-fory</artifactId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
@@ -7862,6 +7872,11 @@
<artifactId>mapstruct-processor</artifactId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
<version>1.6.3</version><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
</dependency>
+ <dependency>
+ <groupId>org.mozilla</groupId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+ <artifactId>rhino</artifactId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+ <version>1.7.15.1</version><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+ </dependency>
<dependency>
<groupId>org.mvel</groupId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
<artifactId>mvel2</artifactId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->