quarkiverse / quarkus-primefaces

Quarkus PrimeFaces Faces (JSF) Extension
https://github.com/primefaces/primefaces
Apache License 2.0
32 stars 3 forks source link

Native: OpenPdf #31

Closed gesker closed 1 year ago

gesker commented 1 year ago

The guide over at quarkus indicates Data exporter is not supported.

Is it best to add the openpdf dependency OR is there an option so that openpdf does not come into play when compiling natively?

Could this be added to quarkus-primefaces as a dependency to allow native compilation like qrcodegen -- or perhaps a quarkus friendly equivalent like the already included quarkus-poi?

This error is thrown when trying to compile native:

Fatal error: java.lang.NoClassDefFoundError: com/lowagie/text/DocumentException
        at java.base/java.lang.Class.getDeclaredMethods0(Native Method)
        at java.base/java.lang.Class.privateGetDeclaredMethods(Class.java:3402)
        at java.base/java.lang.Class.getDeclaredMethods(Class.java:2504)
        at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.handleDeletedClass(AnnotationSubstitutionProcessor.java:607)
        at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.handleClass(AnnotationSubstitutionProcessor.java:382)
        at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.init(AnnotationSubstitutionProcessor.java:342)
        at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGenerator.createAnnotationSubstitutionProcessor(NativeImageGenerator.java:966)
        at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGenerator.setupNativeImage(NativeImageGenerator.java:868)
        at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGenerator.doRun(NativeImageGenerator.java:575)
        at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGenerator.run(NativeImageGenerator.java:535)
        at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGeneratorRunner.buildImage(NativeImageGeneratorRunner.java:403)
        at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGeneratorRunner.build(NativeImageGeneratorRunner.java:580)
        at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGeneratorRunner.main(NativeImageGeneratorRunner.java:128)
Caused by: java.lang.ClassNotFoundException: com.lowagie.text.DocumentException
        at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:445)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:587)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
        ... 13 more
melloware commented 1 year ago

You can read in this class why it won't work: https://github.com/quarkiverse/quarkus-primefaces/blob/main/quarkus-primefaces/runtime/src/main/java/io/quarkus/primefaces/runtime/graal/DeleteDataTablePdfExporter.java

I am already removing all PDF related code in PF in Native Mode because of this OpenPDF issue: https://github.com/quarkusio/quarkus/issues/31224