This is an automated email from the ASF dual-hosted git repository.

jleroux pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/ofbiz-framework.git

commit 7c3a622f08e37d6a68125844383820dac1592f23
Author: Jacques Le Roux <jacques.le.r...@les7arts.com>
AuthorDate: Mon Oct 21 10:33:53 2024 +0200

    Improved: Update to Apache Tika 3.0.0 (OFBIZ-13155)
    
    Implications:
    
    * javax.xml.bind.DatatypeConverter replaced by 
jakarta.xml.bind.DatatypeConverter
    * upload of PDFBox to 3.0.3
    * need of org.apache.pdfbox.Loader in SecuredUpload.java
      (see 
https://pdfbox.apache.org/3.0/migration.html#use-loader-to-get-a-pdf-document)
    
    While reading https://downloads.apache.org/tika/3.0.0/CHANGES-3.0.0.txt
    found that we use a lot of "application/javascript" while "text/javascript" 
is
    recommended by RFC-9239.
---
 dependencies.gradle                                              | 9 +++++----
 .../java/org/apache/ofbiz/entity/serialize/XmlSerializer.java    | 2 +-
 .../src/main/java/org/apache/ofbiz/security/SecuredUpload.java   | 3 ++-
 3 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/dependencies.gradle b/dependencies.gradle
index f902364959..621b9b4327 100644
--- a/dependencies.gradle
+++ b/dependencies.gradle
@@ -53,14 +53,15 @@ dependencies {
     implementation 'org.apache.logging.log4j:log4j-api:2.20.0' // the API of 
log4j 2
     implementation 'org.apache.logging.log4j:log4j-core:2.20.0' // Somehow 
needed by Buildbot to compile OFBizDynamicThresholdFilter.java
     implementation 'org.apache.poi:poi:5.3.0'
-    implementation 'org.apache.pdfbox:pdfbox:2.0.32' // 3.0.1 does not compile
+    implementation 'org.apache.pdfbox:pdfbox:3.0.3'
     implementation 'org.apache.shiro:shiro-core:1.13.0'
     implementation 'org.apache.shiro:shiro-crypto-cipher:2.0.0'
     implementation 'org.apache.sshd:sshd-core:2.13.1'
     implementation 'org.apache.sshd:sshd-sftp:2.13.1'
-    implementation 'org.apache.tika:tika-core:2.9.2'
-    implementation 'org.apache.tika:tika-parsers:2.9.2'
-    implementation 'org.apache.tika:tika-parser-pdf-module:2.9.2'
+    implementation 'jakarta.xml.bind:jakarta.xml.bind-api:4.0.2'
+    implementation 'org.apache.tika:tika-core:3.0.0'
+    implementation 'org.apache.tika:tika-parsers:3.0.0'
+    implementation 'org.apache.tika:tika-parser-pdf-module:3.0.0'
     implementation 'org.apache.cxf:cxf-rt-frontend-jaxrs:3.6.4' // 4.x+ 
requires javax.xml.bind -> jakarta.xml.bind namespace change
     implementation 'org.apache.tomcat:tomcat-catalina-ha:9.0.91' // Remember 
to change the version number (9 now) in javadoc block if needed.
     implementation 'org.apache.tomcat:tomcat-jasper:9.0.91'
diff --git 
a/framework/entity/src/main/java/org/apache/ofbiz/entity/serialize/XmlSerializer.java
 
b/framework/entity/src/main/java/org/apache/ofbiz/entity/serialize/XmlSerializer.java
index ce954005a7..e7e9eadd04 100644
--- 
a/framework/entity/src/main/java/org/apache/ofbiz/entity/serialize/XmlSerializer.java
+++ 
b/framework/entity/src/main/java/org/apache/ofbiz/entity/serialize/XmlSerializer.java
@@ -44,7 +44,7 @@ import java.util.TreeSet;
 import java.util.Vector;
 import java.util.WeakHashMap;
 
-import javax.xml.bind.DatatypeConverter;
+import jakarta.xml.bind.DatatypeConverter;
 import javax.xml.parsers.ParserConfigurationException;
 
 import org.apache.ofbiz.base.util.Debug;
diff --git 
a/framework/security/src/main/java/org/apache/ofbiz/security/SecuredUpload.java 
b/framework/security/src/main/java/org/apache/ofbiz/security/SecuredUpload.java
index 8e83b452bb..7e7670ed88 100644
--- 
a/framework/security/src/main/java/org/apache/ofbiz/security/SecuredUpload.java
+++ 
b/framework/security/src/main/java/org/apache/ofbiz/security/SecuredUpload.java
@@ -76,6 +76,7 @@ import org.apache.ofbiz.base.util.UtilValidate;
 import org.apache.ofbiz.base.util.UtilXml;
 import org.apache.ofbiz.entity.Delegator;
 import org.apache.ofbiz.entity.util.EntityUtilProperties;
+import org.apache.pdfbox.Loader;
 import org.apache.pdfbox.pdmodel.PDDocument;
 import org.apache.pdfbox.pdmodel.PDDocumentNameDictionary;
 import org.apache.pdfbox.pdmodel.PDEmbeddedFilesNameTreeNode;
@@ -530,7 +531,7 @@ public class SecuredUpload {
             }
             // OK no JS code, pass to check 2: detect if the document has any 
embedded files
             PDEmbeddedFilesNameTreeNode efTree = null;
-            try (PDDocument pdDocument = PDDocument.load(file)) {
+            try (PDDocument pdDocument = Loader.loadPDF(file)) {
                 PDDocumentNameDictionary names = new 
PDDocumentNameDictionary(pdDocument.getDocumentCatalog());
                 efTree = names.getEmbeddedFiles();
             }

Reply via email to