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;