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(); }