updated history, notice

This commit is contained in:
jstaerk
2021-02-02 08:21:13 +01:00
parent e142a81959
commit 2aa9a79a56
5 changed files with 51 additions and 4 deletions

View File

@@ -1,10 +1,14 @@
2.1.1 2.1.1
======= =======
2020-02-02
- PR #217 seller order referenced document - PR #217 seller order referenced document thanks to weclapp-dev
- PR #218 allow recipient contact in XRechnung thanks to seeeeew - PR #218 allow recipient contact in XRechnung thanks to seeeeew
- RE #221 remove outdated dependency thanks to heisej
- only deploy library and validator to maven central, not core nor cli - only deploy library and validator to maven central, not core nor cli
- a correction should reference the original invoice via invoiceReferencedDocument, not buyerOrderReferencedDocument - a correction should reference the original invoice via invoiceReferencedDocument, not buyerOrderReferencedDocument
- upgraded CEN Schematron validation (codes 24) to v1.3.4
- added unit tests for ubl conversion and visualization
2.1.0 2.1.0
======= =======

View File

@@ -140,6 +140,8 @@
<filter> <filter>
<artifact>*:*</artifact> <artifact>*:*</artifact>
<excludes> <excludes>
<exclude>LICENSE</exclude>
<exclude>NOTICE</exclude>
<exclude>META-INF/*.SF</exclude> <exclude>META-INF/*.SF</exclude>
<exclude>META-INF/*.DSA</exclude> <exclude>META-INF/*.DSA</exclude>
<exclude>META-INF/*.RSA</exclude> <exclude>META-INF/*.RSA</exclude>

View File

@@ -26,6 +26,8 @@ import org.mustangproject.validator.Validator;
import org.mustangproject.validator.ZUGFeRDValidator; import org.mustangproject.validator.ZUGFeRDValidator;
import java.io.*; import java.io.*;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files; import java.nio.file.Files;
import java.nio.file.Path; import java.nio.file.Path;
import java.nio.file.Paths; import java.nio.file.Paths;
@@ -48,6 +50,7 @@ public class Main {
private static String getUsage() { private static String getUsage() {
return "Usage: --action metrics|combine|extract|a3only|ubl|validate|visualize [-d,--directory] [-l,--listfromstdin] [-i,--ignore fileextension, PDF/A errors] | [-h,--help] \r\n" return "Usage: --action metrics|combine|extract|a3only|ubl|validate|visualize [-d,--directory] [-l,--listfromstdin] [-i,--ignore fileextension, PDF/A errors] | [-h,--help] \r\n"
+ " --action=license display open source license and notice\n"
+ " --action=metrics\n" + " --action=metrics\n"
+ " -d, --directory count ZUGFeRD files in directory to be scanned\n" + " -d, --directory count ZUGFeRD files in directory to be scanned\n"
+ " If it is a directory, it will recurse.\n" + " If it is a directory, it will recurse.\n"
@@ -288,6 +291,37 @@ public class Main {
c2u.convert(new File(xmlName), new File(outName)); c2u.convert(new File(xmlName), new File(outName));
System.out.println("Written to " + outName); System.out.println("Written to " + outName);
}
public static void printLicense() {
InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream("LICENSE");
System.out.println(convertInputStreamToString(is));
is = Thread.currentThread().getContextClassLoader().getResourceAsStream("NOTICE");
System.out.println(convertInputStreamToString(is));
}
// Plain Java
// based on https://mkyong.com/java/how-to-convert-inputstream-to-string-in-java/
private static String convertInputStreamToString(InputStream is) {
int DEFAULT_BUFFER_SIZE = 8192;
ByteArrayOutputStream result = new ByteArrayOutputStream();
byte[] buffer = new byte[DEFAULT_BUFFER_SIZE];
int length;
try {
while ((length = is.read(buffer)) != -1) {
result.write(buffer, 0, length);
}
// Java 1.1
return result.toString(StandardCharsets.UTF_8.name());
} catch (IOException e) {
e.printStackTrace();
}
return null;
// Java 10
// return result.toString(StandardCharsets.UTF_8);
} }
/*** /***
* the main function of the commandline tool... * the main function of the commandline tool...
@@ -295,9 +329,9 @@ public class Main {
*/ */
public static void main(String[] args) { public static void main(String[] args) {
try { try {
CmdLineParser parser = new CmdLineParser(); CmdLineParser parser = new CmdLineParser();
// Option: Help // Option: Help
Option<Boolean> helpOption = parser.addBooleanOption('h', "help"); Option<Boolean> helpOption = parser.addBooleanOption('h', "help");
// Option: Action // Option: Action
@@ -344,8 +378,9 @@ public class Main {
String action = parser.getOptionValue(actionOption); String action = parser.getOptionValue(actionOption);
String directoryName = parser.getOptionValue(dirnameOption); String directoryName = parser.getOptionValue(dirnameOption);
Boolean filesFromStdIn = parser.getOptionValue(filesFromStdInOption, Boolean.FALSE); Boolean filesFromStdIn = parser.getOptionValue(filesFromStdInOption, Boolean.FALSE);
Boolean helpRequested = parser.getOptionValue(helpOption, Boolean.FALSE) || ((action!=null)&&(action.equals("help")));
Boolean ignoreFileExt = parser.getOptionValue(ignoreFileExtOption, Boolean.FALSE); Boolean ignoreFileExt = parser.getOptionValue(ignoreFileExtOption, Boolean.FALSE);
Boolean helpRequested = parser.getOptionValue(helpOption, Boolean.FALSE) || ((action!=null)&&(action.equals("help")));
String sourceName = parser.getOptionValue(sourceOption); String sourceName = parser.getOptionValue(sourceOption);
String sourceXMLName = parser.getOptionValue(sourceXmlOption); String sourceXMLName = parser.getOptionValue(sourceXmlOption);
String outName = parser.getOptionValue(outOption); String outName = parser.getOptionValue(outOption);
@@ -358,7 +393,10 @@ public class Main {
if (helpRequested) { if (helpRequested) {
printHelp(); printHelp();
optionsRecognized=true; optionsRecognized=true;
} else if ((action!=null)&&(action.equals("metrics"))) { } /* else if ((action!=null)&&(action.equals("license"))) {
printLicense();
optionsRecognized=true;
} */ else if ((action!=null)&&(action.equals("metrics"))) {
performMetrics(directoryName, filesFromStdIn, ignoreFileExt); performMetrics(directoryName, filesFromStdIn, ignoreFileExt);
optionsRecognized=true; optionsRecognized=true;
} else if ((action!=null)&&(action.equals("combine"))) { } else if ((action!=null)&&(action.equals("combine"))) {

1
NOTICE
View File

@@ -31,3 +31,4 @@ Based on https://github.com/itplr-kosit/xrechnung-schematron licensed under the
Based on https://github.com/itplr-kosit/xrechnung-visualization licensed under the APL2.0 Based on https://github.com/itplr-kosit/xrechnung-visualization licensed under the APL2.0
Based on Saxon-HE https://sourceforge.net/projects/saxon/ licensed under the MPL 2.0 Based on Saxon-HE https://sourceforge.net/projects/saxon/ licensed under the MPL 2.0
Based on DOM4j https://dom4j.github.io/ licensed under the BSD license Based on DOM4j https://dom4j.github.io/ licensed under the BSD license
Based on EN16931 validation artefacts https://github.com/ConnectingEurope/eInvoicing-EN16931 licensed under the EUPL 2.0

View File

@@ -176,6 +176,8 @@
<filter> <filter>
<artifact>*:*</artifact> <artifact>*:*</artifact>
<excludes> <excludes>
<exclude>LICENSE</exclude>
<exclude>NOTICE</exclude>
<exclude>META-INF/*.SF</exclude> <exclude>META-INF/*.SF</exclude>
<exclude>META-INF/*.DSA</exclude> <exclude>META-INF/*.DSA</exclude>
<exclude>META-INF/*.RSA</exclude> <exclude>META-INF/*.RSA</exclude>