Commons IP is project that provide a command-line tool and Java Library to validate and manipulate E-ARK Information Packages, so to create or process E-ARK SIP and AIP and also validate them against official specifications.
So I implemented the logic needed the best way I could, but perhaps not in the way you want it.
I also ran a unintended code cleanup on the project - hence the amount of changes (I can revert them if you're considering an approval but without the code cleanup)
The main changes lies in:
src/main/java/org/roda_project/commons_ip/utils/ZIPUtils.java
src/main/java/org/roda_project/commons_ip2/cli/Create.java
src/main/java/org/roda_project/commons_ip2/cli/model/enums/ChecksumAlgorithm.java
src/main/java/org/roda_project/commons_ip2/cli/utils/SIPBuilder.java
src/main/java/org/roda_project/commons_ip2/model/IP.java
src/main/java/org/roda_project/commons_ip2/model/IPFileInterface.java
src/main/java/org/roda_project/commons_ip2/model/IPFile.java
src/main/java/org/roda_project/commons_ip2/model/IPFileShallow.java
src/main/java/org/roda_project/commons_ip2/model/IPInterface.java
src/main/java/org/roda_project/commons_ip2/model/SIP.java
src/main/java/org/roda_project/commons_ip2/model/impl/eark/EARKSIP.java
src/main/java/org/roda_project/commons_ip2/model/impl/eark/EARKUtils.java
We had a urgent need of the functionality described in these issues : https://github.com/keeps/commons-ip/issues/280 https://github.com/keeps/commons-ip/issues/125
So I implemented the logic needed the best way I could, but perhaps not in the way you want it. I also ran a unintended code cleanup on the project - hence the amount of changes (I can revert them if you're considering an approval but without the code cleanup)
The main changes lies in: src/main/java/org/roda_project/commons_ip/utils/ZIPUtils.java src/main/java/org/roda_project/commons_ip2/cli/Create.java src/main/java/org/roda_project/commons_ip2/cli/model/enums/ChecksumAlgorithm.java src/main/java/org/roda_project/commons_ip2/cli/utils/SIPBuilder.java src/main/java/org/roda_project/commons_ip2/model/IP.java src/main/java/org/roda_project/commons_ip2/model/IPFileInterface.java src/main/java/org/roda_project/commons_ip2/model/IPFile.java src/main/java/org/roda_project/commons_ip2/model/IPFileShallow.java src/main/java/org/roda_project/commons_ip2/model/IPInterface.java src/main/java/org/roda_project/commons_ip2/model/SIP.java src/main/java/org/roda_project/commons_ip2/model/impl/eark/EARKSIP.java src/main/java/org/roda_project/commons_ip2/model/impl/eark/EARKUtils.java