diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml
index 562b5c18..dd03b27b 100644
--- a/.github/workflows/maven.yml
+++ b/.github/workflows/maven.yml
@@ -12,11 +12,11 @@ jobs:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v3
- - uses: actions/setup-java@v3 # the log states the default ~/.m2/toolchains.xml is being created pointing to the JDK
+ - uses: actions/checkout@v6
+ - uses: actions/setup-java@v5 # the log states the default ~/.m2/toolchains.xml is being created pointing to the JDK
with:
distribution: 'adopt' # for latest JDKs use temurin https://blog.adoptopenjdk.net/2021/08/goodbye-adoptopenjdk-hello-adoptium/
- java-version: '11'
+ java-version: '17'
cache: 'maven' #cache/restore any dependencies to improve the workflow execution time
- name: Build with Maven
run: mvn -B package --file pom.xml
\ No newline at end of file
diff --git a/Mustang-CLI/pom.xml b/Mustang-CLI/pom.xml
index e91e41c8..789676f9 100644
--- a/Mustang-CLI/pom.xml
+++ b/Mustang-CLI/pom.xml
@@ -13,7 +13,7 @@
jar
UTF-8
- 11
+ ${java.version}
@@ -118,8 +118,8 @@
- 11
- 11
+ ${java.version}
+ ${java.version}
@@ -209,7 +209,7 @@
- 11
+ ${java.version}
adopt
diff --git a/library/pom.xml b/library/pom.xml
index 67de4f9c..aacb32ae 100644
--- a/library/pom.xml
+++ b/library/pom.xml
@@ -44,7 +44,7 @@
github
-Xdoclint:none
- 11
+ ${java.version}
true
@@ -149,6 +149,12 @@
${version.org.glassfish.jaxb}
test
+
+ org.slf4j
+ slf4j-simple
+ ${version.org.slf4j}
+ test
+
@@ -169,8 +175,8 @@
- 11
- 11
+ ${java.version}
+ ${java.version}
@@ -331,7 +337,7 @@
- 11
+ ${java.version}
adopt
diff --git a/library/src/main/java/org/mustangproject/CII/CIIToUBL.java b/library/src/main/java/org/mustangproject/CII/CIIToUBL.java
index 816f6992..8480e81b 100644
--- a/library/src/main/java/org/mustangproject/CII/CIIToUBL.java
+++ b/library/src/main/java/org/mustangproject/CII/CIIToUBL.java
@@ -3,7 +3,7 @@ package org.mustangproject.CII;
import java.io.File;
import java.io.Serializable;
-import com.helger.commons.error.list.ErrorList;
+import com.helger.diagnostics.error.list.ErrorList;
import com.helger.en16931.cii2ubl.CIIToUBL23Converter;
import com.helger.ubl23.UBL23Marshaller;
diff --git a/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRDInvoiceImporter.java b/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRDInvoiceImporter.java
index dfdeac49..3e594830 100644
--- a/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRDInvoiceImporter.java
+++ b/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRDInvoiceImporter.java
@@ -551,9 +551,13 @@ public class ZUGFeRDInvoiceImporter {
NodeList lineDueNodes = (NodeList) xpr.evaluate(getDocument(), XPathConstants.NODESET);
BigDecimal duePayableAmount = null;
if (lineDueNodes.getLength() > 0) {
- duePayableAmount = new BigDecimal(XMLTools.trimOrNull(lineDueNodes.item(0)));
- if (zpp instanceof CalculatedInvoice) {
- ((CalculatedInvoice) zpp).setDuePayable(duePayableAmount);
+ String duePayableAmountStr=XMLTools.trimOrNull(lineDueNodes.item(0));
+ if (duePayableAmountStr!=null) {
+ // Always set it, because it is used in the calculation below
+ duePayableAmount = new BigDecimal(duePayableAmountStr);
+ if (zpp instanceof CalculatedInvoice) {
+ ((CalculatedInvoice) zpp).setDuePayable(duePayableAmount);
+ }
}
}
diff --git a/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRDVisualizer.java b/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRDVisualizer.java
index cf9551aa..357a3b87 100644
--- a/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRDVisualizer.java
+++ b/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRDVisualizer.java
@@ -20,7 +20,7 @@
*/
package org.mustangproject.ZUGFeRD;
-import com.helger.commons.io.stream.StreamHelper;
+import com.helger.base.io.stream.StreamHelper;
import javax.xml.XMLConstants;
import javax.xml.parsers.ParserConfigurationException;
import org.apache.commons.io.IOUtils;
diff --git a/library/src/test/java/org/mustangproject/ZUGFeRD/DXTest.java b/library/src/test/java/org/mustangproject/ZUGFeRD/DXTest.java
index 5e4a5316..04ed7fa0 100644
--- a/library/src/test/java/org/mustangproject/ZUGFeRD/DXTest.java
+++ b/library/src/test/java/org/mustangproject/ZUGFeRD/DXTest.java
@@ -335,10 +335,8 @@ public class DXTest extends MustangReaderTestCase {
zf2p.setProfile(Profiles.getByName(EStandard.despatchadvice,"Pilot",1));
zf2p.generateXML(i);
String theXML = new String(zf2p.getXML(), StandardCharsets.UTF_8);
- try {
- BufferedWriter writer = new BufferedWriter(new FileWriter(TARGET_XML));
+ try(BufferedWriter writer = new BufferedWriter(new FileWriter(TARGET_XML))) {
writer.write(theXML);
- writer.close();
} catch (IOException e) {
e.printStackTrace();
}
diff --git a/library/src/test/java/org/mustangproject/ZUGFeRD/FXTest.java b/library/src/test/java/org/mustangproject/ZUGFeRD/FXTest.java
index fbe986b3..1eeed4e6 100644
--- a/library/src/test/java/org/mustangproject/ZUGFeRD/FXTest.java
+++ b/library/src/test/java/org/mustangproject/ZUGFeRD/FXTest.java
@@ -62,10 +62,8 @@ public class FXTest extends TestCase {
assertThat(theXML).valueByXPath("//*[local-name()='DuePayableAmount']")
.asDouble()
.isEqualTo(1);
- try {
- BufferedWriter writer = new BufferedWriter(new FileWriter(TARGET_XML));
+ try(BufferedWriter writer = new BufferedWriter(new FileWriter(TARGET_XML))) {
writer.write(theXML);
- writer.close();
} catch (IOException e) {
e.printStackTrace();
}
diff --git a/library/src/test/java/org/mustangproject/ZUGFeRD/UBLTest.java b/library/src/test/java/org/mustangproject/ZUGFeRD/UBLTest.java
index 522ff9bd..0ecc0339 100644
--- a/library/src/test/java/org/mustangproject/ZUGFeRD/UBLTest.java
+++ b/library/src/test/java/org/mustangproject/ZUGFeRD/UBLTest.java
@@ -30,8 +30,10 @@ import java.text.ParseException;
import java.util.Date;
import org.assertj.core.api.Assertions;
+import org.junit.jupiter.api.MethodOrderer;
import org.junit.jupiter.api.Order;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.TestMethodOrder;
import org.mustangproject.BankDetails;
import org.mustangproject.CII.CIIToUBL;
import org.mustangproject.Contact;
@@ -42,6 +44,7 @@ import org.mustangproject.TradeParty;
import javax.xml.xpath.XPathExpressionException;
+@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
public class UBLTest extends ResourceCase {
final String TARGET_XML = "./target/testout-1Lieferschein.xml";
diff --git a/library/src/test/java/org/mustangproject/ZUGFeRD/XRTest.java b/library/src/test/java/org/mustangproject/ZUGFeRD/XRTest.java
index 3109f1b7..495a0563 100644
--- a/library/src/test/java/org/mustangproject/ZUGFeRD/XRTest.java
+++ b/library/src/test/java/org/mustangproject/ZUGFeRD/XRTest.java
@@ -81,10 +81,8 @@ public class XRTest extends TestCase {
assertThat(theXML).valueByXPath("//*[local-name()='DuePayableAmount']")
.asDouble()
.isEqualTo(1);
- try {
- BufferedWriter writer = new BufferedWriter(new FileWriter(TARGET_XML));
+ try(BufferedWriter writer = new BufferedWriter(new FileWriter(TARGET_XML))) {
writer.write(theXML);
- writer.close();
} catch (IOException e) {
e.printStackTrace();
}
@@ -134,10 +132,8 @@ public class XRTest extends TestCase {
assertThat(theXML).valueByXPath("//*[local-name()='DuePayableAmount']")
.asDouble()
.isEqualTo(1);
- try {
- BufferedWriter writer = new BufferedWriter(new FileWriter(TARGET_EDGE_XML));
+ try(BufferedWriter writer = new BufferedWriter(new FileWriter(TARGET_EDGE_XML))) {
writer.write(theXML);
- writer.close();
} catch (IOException e) {
e.printStackTrace();
}
@@ -251,10 +247,8 @@ public class XRTest extends TestCase {
assertThat(theXML).valueByXPath("//*[local-name()='DuePayableAmount']")
.asDouble()
.isEqualTo(1);
- try {
- BufferedWriter writer = new BufferedWriter(new FileWriter(TARGET_XML));
+ try(BufferedWriter writer = new BufferedWriter(new FileWriter(TARGET_XML))) {
writer.write(theXML);
- writer.close();
} catch (IOException e) {
e.printStackTrace();
}
diff --git a/library/src/test/java/org/mustangproject/ZUGFeRD/ZF2PushTest.java b/library/src/test/java/org/mustangproject/ZUGFeRD/ZF2PushTest.java
index 3408b9a0..3cddc296 100644
--- a/library/src/test/java/org/mustangproject/ZUGFeRD/ZF2PushTest.java
+++ b/library/src/test/java/org/mustangproject/ZUGFeRD/ZF2PushTest.java
@@ -309,9 +309,7 @@ public class ZF2PushTest extends TestCase {
String number = "123";
String priceStr = "3.00";
BigDecimal price = new BigDecimal(priceStr);
- try {
- InputStream SOURCE_PDF = this.getClass().getResourceAsStream("/MustangGnuaccountingBeispielRE-20170509_505blanko.pdf");
-
+ try(InputStream SOURCE_PDF = this.getClass().getResourceAsStream("/MustangGnuaccountingBeispielRE-20170509_505blanko.pdf")) {
ZUGFeRDExporterFromA1 ze = new ZUGFeRDExporterFromA1();
ze.ignorePDFAErrors().load(SOURCE_PDF);
ze.setProfile(Profiles.getByName("Extended"));
@@ -359,7 +357,7 @@ public class ZF2PushTest extends TestCase {
/***
- * you can activate intra community suppliy on item level
+ * you can activate intra community supply on item level
*/
public void testIntraCommunitySupplyItemExport() {
diff --git a/pom.xml b/pom.xml
index ea91c007..84d1378b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -28,7 +28,8 @@
github
-Xdoclint:none
- 11
+ 17
+ 17
true
@@ -47,40 +48,40 @@
First the versions for plugins, then those for libraries.
-->
- 3.13.0
- 3.0.0-M1
- 1.6
- 3.4.2
- 3.0.1
- 2.5.3
- 3.1.0
- 3.5.3
- 3.3.1
- 3.5.3
- 3.1.0
- 1.9.5
+ 3.15.0
+ 3.1.4
+ 3.2.8
+ 3.5.0
+ 3.12.0
+ 3.3.1
+ 3.5.0
+ 3.6.1
+ 3.4.0
+ 3.5.5
+ 3.2.0
+ 2.2.1
1.0.0
- 8.0.0
+ 9.1.1
1.7.0
- 1.5.18
- 2.17.3
- 2.3.1
- 8.0.6
- 1.10.0
- 2.20.0
- 4.0.2
- 12.8
- 3.0.7
+ 1.5.32
+ 2.21.1
+ 3.1.7
+ 9.1.1
+ 1.11.0
+ 2.21.0
+ 4.0.5
+ 12.9
+ 3.0.7
2.11
3.1.12
- 2.1.5
- 4.0.5
+ 2.2.0
+ 4.0.7
5.13.4
2.0-rc1
2.0.17
- 1.26.5
- 2.10.3
+ 1.28.2
+ 2.11.0
@@ -244,7 +245,7 @@
- 11
+ 17
adopt
diff --git a/validator/pom.xml b/validator/pom.xml
index 65d797aa..fb1dc486 100644
--- a/validator/pom.xml
+++ b/validator/pom.xml
@@ -26,7 +26,7 @@
UTF-8
false
- 11
+ ${java.version}
@@ -141,8 +141,8 @@
- 11
- 11
+ ${java.version}
+ ${java.version}
@@ -273,7 +273,7 @@
- 11
+ ${java.version}
adopt
@@ -293,7 +293,7 @@
com.helger.maven
ph-schematron-maven-plugin
- ${version.com.helger.maven}
+ ${version.com.helger.maven.schematron}
${basedir}/src/main/resources/schematron
${basedir}/src/main/resources/xslt
diff --git a/validator/src/main/java/org/mustangproject/validator/PDFValidator.java b/validator/src/main/java/org/mustangproject/validator/PDFValidator.java
index 993a2d0a..5d0d348d 100644
--- a/validator/src/main/java/org/mustangproject/validator/PDFValidator.java
+++ b/validator/src/main/java/org/mustangproject/validator/PDFValidator.java
@@ -113,7 +113,7 @@ public class PDFValidator extends Validator {
ItemDetails itemDetails = ItemDetails.fromValues(pdfFilename);
inputStream.mark(Integer.MAX_VALUE);
processorResult = processor.process(itemDetails, inputStream);
- pdfReport = processorResult.getValidationResult().toString().replaceAll(
+ pdfReport = processorResult.getValidationResults().get(0).toString().replaceAll(
"<\\?xml version=\"1\\.0\" encoding=\"utf-8\"\\?>",
""
);
@@ -330,11 +330,11 @@ public class PDFValidator extends Validator {
//end
final long endTime = Calendar.getInstance().getTimeInMillis();
- if (!processorResult.getValidationResult().isCompliant()) {
+ if (!processorResult.getValidationResults().get (0).isCompliant()) {
context.setInvalid();
}
- PDFAFlavour pdfaFlavourFromValidationResult = processorResult.getValidationResult().getPDFAFlavour();
+ PDFAFlavour pdfaFlavourFromValidationResult = processorResult.getValidationResults().get (0).getPDFAFlavour();
if (Arrays.stream(PDF_A_3_FLAVOURS)
.noneMatch(pdfaFlavourFromValidationResult::equals)) {
context.addResultItem(
diff --git a/validator/src/main/java/org/mustangproject/validator/ZUGFeRDValidator.java b/validator/src/main/java/org/mustangproject/validator/ZUGFeRDValidator.java
index e6a319a4..f71b79dd 100644
--- a/validator/src/main/java/org/mustangproject/validator/ZUGFeRDValidator.java
+++ b/validator/src/main/java/org/mustangproject/validator/ZUGFeRDValidator.java
@@ -24,15 +24,15 @@ import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;
-import org.mustangproject.util.ByteArraySearcher;
import org.mustangproject.XMLTools;
+import org.mustangproject.util.ByteArraySearcher;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.xml.sax.InputSource;
-import com.helger.commons.io.stream.StreamHelper;
+import com.helger.base.io.stream.StreamHelper;
import jakarta.xml.bind.DatatypeConverter;