From c457077aeb8568b66e2496444630229759645707 Mon Sep 17 00:00:00 2001
From: melloware <mellowaredev@gmail.com>
Date: Wed, 2 Oct 2024 16:25:11 -0400
Subject: [PATCH] Enable RTF

---
 .../deployment/JasperReportsProcessor.java    | 44 ++++++++++++++++++-
 runtime/pom.xml                               | 30 +++++++++++++
 2 files changed, 73 insertions(+), 1 deletion(-)

diff --git a/deployment/src/main/java/io/quarkiverse/jasperreports/deployment/JasperReportsProcessor.java b/deployment/src/main/java/io/quarkiverse/jasperreports/deployment/JasperReportsProcessor.java
index 4b01c84..b4a76f3 100644
--- a/deployment/src/main/java/io/quarkiverse/jasperreports/deployment/JasperReportsProcessor.java
+++ b/deployment/src/main/java/io/quarkiverse/jasperreports/deployment/JasperReportsProcessor.java
@@ -42,13 +42,16 @@ void indexTransitiveDependencies(BuildProducer<IndexDependencyBuildItem> index)
         index.produce(new IndexDependencyBuildItem("org.apache.xmlgraphics", "batik-bridge"));
         index.produce(new IndexDependencyBuildItem("com.ibm.icu", "icu4j"));
         index.produce(new IndexDependencyBuildItem("com.drewnoakes", "metadata-extractor"));
+        index.produce(new IndexDependencyBuildItem("org.jfree", "jcommon"));
+        index.produce(new IndexDependencyBuildItem("org.jfree", "jfreechart"));
     }
 
     @BuildStep
     void runtimeInitializedClasses(BuildProducer<RuntimeInitializedPackageBuildItem> runtimeInitializedPackages) {
         //@formatter:off
         Stream.of(
-                javax.swing.plaf.metal.MetalIconFactory.class.getPackageName()
+                javax.swing.plaf.metal.MetalIconFactory.class.getPackageName(),
+                org.jfree.chart.servlet.ServletUtilities.class.getName()
                 )
                 .map(RuntimeInitializedPackageBuildItem::new)
                 .forEach(runtimeInitializedPackages::produce);
@@ -87,6 +90,45 @@ void registerForReflection(BuildProducer<ReflectiveClassBuildItem> reflectiveCla
         classNames.addAll(collectClassesInPackage(combinedIndex,
                 net.sf.jasperreports.renderers.WrappingSvgDataToGraphics2DRenderer.class.getPackageName()));
 
+        classNames.addAll(collectClassesInPackage(combinedIndex,
+                net.sf.jasperreports.charts.ChartContext.class.getPackageName()));
+        classNames.addAll(collectClassesInPackage(combinedIndex,
+                net.sf.jasperreports.charts.util.ChartUtil.class.getPackageName()));
+
+        // JFREECHART
+        classNames.addAll(collectClassesInPackage(combinedIndex,
+                org.jfree.chart.JFreeChart.class.getPackageName()));
+        classNames.addAll(collectClassesInPackage(combinedIndex,
+                org.jfree.chart.axis.Axis.class.getPackageName()));
+        classNames.addAll(collectClassesInPackage(combinedIndex,
+                org.jfree.chart.labels.CategoryItemLabelGenerator.class.getPackageName()));
+        classNames.addAll(collectClassesInPackage(combinedIndex,
+                org.jfree.chart.plot.Plot.class.getPackageName()));
+        classNames.addAll(collectClassesInPackage(combinedIndex,
+                org.jfree.chart.plot.dial.DialBackground.class.getPackageName()));
+        classNames.addAll(collectClassesInPackage(combinedIndex,
+                org.jfree.chart.renderer.category.BarRenderer.class.getPackageName()));
+        classNames.addAll(collectClassesInPackage(combinedIndex,
+                org.jfree.chart.renderer.xy.CandlestickRenderer.class.getPackageName()));
+        classNames.addAll(collectClassesInPackage(combinedIndex,
+                org.jfree.chart.title.LegendTitle.class.getPackageName()));
+        classNames.addAll(collectClassesInPackage(combinedIndex,
+                org.jfree.data.Range.class.getPackageName()));
+        classNames.addAll(collectClassesInPackage(combinedIndex,
+                org.jfree.data.category.CategoryDataset.class.getPackageName()));
+        classNames.addAll(collectClassesInPackage(combinedIndex,
+                org.jfree.data.gantt.GanttCategoryDataset.class.getPackageName()));
+        classNames.addAll(collectClassesInPackage(combinedIndex,
+                org.jfree.data.general.Dataset.class.getPackageName()));
+        classNames.addAll(collectClassesInPackage(combinedIndex,
+                org.jfree.data.time.TimeSeriesCollection.class.getPackageName()));
+        classNames.addAll(collectClassesInPackage(combinedIndex,
+                org.jfree.data.xy.DefaultHighLowDataset.class.getPackageName()));
+        classNames.addAll(collectClassesInPackage(combinedIndex,
+                org.jfree.data.xy.XYDataset.class.getPackageName()));
+        classNames.addAll(collectClassesInPackage(combinedIndex,
+                org.jfree.ui.TextAnchor.class.getPackageName()));
+
         reflectiveClass.produce(
                 ReflectiveClassBuildItem.builder(classNames.toArray(new String[0])).constructors().methods().fields()
                         .serialization()
diff --git a/runtime/pom.xml b/runtime/pom.xml
index 98aee82..55f5709 100644
--- a/runtime/pom.xml
+++ b/runtime/pom.xml
@@ -69,11 +69,41 @@
             <version>75.1</version>
         </dependency>
 
+        <dependency>
+            <groupId>org.apache.xmlgraphics</groupId>
+            <artifactId>batik-anim</artifactId>
+            <version>1.17</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.xmlgraphics</groupId>
+            <artifactId>batik-awt-util</artifactId>
+            <version>1.17</version>
+        </dependency>
         <dependency>
             <groupId>org.apache.xmlgraphics</groupId>
             <artifactId>batik-bridge</artifactId>
             <version>1.17</version>
         </dependency>
+        <dependency>
+            <groupId>org.apache.xmlgraphics</groupId>
+            <artifactId>batik-dom</artifactId>
+            <version>1.17</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.xmlgraphics</groupId>
+            <artifactId>batik-gvt</artifactId>
+            <version>1.17</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.xmlgraphics</groupId>
+            <artifactId>batik-svg-dom</artifactId>
+            <version>1.17</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.xmlgraphics</groupId>
+            <artifactId>batik-svggen</artifactId>
+            <version>1.17</version>
+        </dependency>
 
         <dependency>
             <groupId>antlr</groupId>