From 62c893aabc1252bb45b8fa3772beae4bf119bb3c Mon Sep 17 00:00:00 2001 From: Benjamin Marwell Date: Fri, 31 May 2019 10:08:22 +0200 Subject: [PATCH] Begin unzck app. Working towards #3. --- .travis.yml | 1 - CONTRIBUTING.md | 2 +- app/pom.xml | 48 +++++++ .../java/io/github/zchunk/app/ZChunk.java | 100 +++++++++++++ .../io/github/zchunk/app/ZChunkFilename.java | 44 ++++++ .../io/github/zchunk/app/commands/Unzck.java | 136 ++++++++++++++++++ .../zchunk/app/err/UncompressException.java | 35 +++++ .../java/io/github/zchunk/app/ZChunkTest.java | 48 +++++++ .../github/zchunk/app/commands/UnzckTest.java | 59 ++++++++ .../resources/files/LICENSE.dict.fodt.zck | Bin 0 -> 125874 bytes app/src/test/resources/logging.properties | 26 ++++ .../api/CompressionAlgorithmFactory.java | 4 +- .../io/github/zchunk/fileformat/ZChunk.java | 16 +++ .../zchunk/fileformat/util/ChecksumUtil.java | 14 ++ .../github/zchunk/fileformat/util/IOUtil.java | 50 +++++++ pom.xml | 9 +- 16 files changed, 587 insertions(+), 5 deletions(-) create mode 100644 app/pom.xml create mode 100644 app/src/main/java/io/github/zchunk/app/ZChunk.java create mode 100644 app/src/main/java/io/github/zchunk/app/ZChunkFilename.java create mode 100644 app/src/main/java/io/github/zchunk/app/commands/Unzck.java create mode 100644 app/src/main/java/io/github/zchunk/app/err/UncompressException.java create mode 100644 app/src/test/java/io/github/zchunk/app/ZChunkTest.java create mode 100644 app/src/test/java/io/github/zchunk/app/commands/UnzckTest.java create mode 100644 app/src/test/resources/files/LICENSE.dict.fodt.zck create mode 100644 app/src/test/resources/logging.properties create mode 100644 fileformat/src/main/java/io/github/zchunk/fileformat/util/IOUtil.java diff --git a/.travis.yml b/.travis.yml index dc1ea51..036b4d6 100644 --- a/.travis.yml +++ b/.travis.yml @@ -36,7 +36,6 @@ install: stages: - validations - test - - java11 jobs: include: diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 91e35e8..dc3ec89 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -16,7 +16,7 @@ Before creating pull requests, please tick these checkboxes in your mind: - [ ] If this is a PR for a issue, please name it issues/# (e.g. issues/3). - [ ] Before commiting and creating the PR, please execute: - [ ] ./mvnw clean install -DskipTests=true -Pcheckstyle,checker - - [ ] ./mvnw -T4 clean install javadoc:jar sources:jar + - [ ] ./mvnw -T4 clean install javadoc:jar source:jar If it doesn't compile, please fix the errors first. Thank you :) diff --git a/app/pom.xml b/app/pom.xml new file mode 100644 index 0000000..d3cc7fc --- /dev/null +++ b/app/pom.xml @@ -0,0 +1,48 @@ + + + + zchunk-parent + io.github.zchunk + 1.0.0-SNAPSHOT + ../pom.xml + + 4.0.0 + + zchunk-app + + + + io.github.zchunk + zchunk-bundle-lib + 1.0.0-SNAPSHOT + + + + + info.picocli + picocli + + + + org.checkerframework + checker-qual + provided + + + + + org.junit.jupiter + junit-jupiter-api + test + + + org.junit.jupiter + junit-jupiter-engine + test + + + + + diff --git a/app/src/main/java/io/github/zchunk/app/ZChunk.java b/app/src/main/java/io/github/zchunk/app/ZChunk.java new file mode 100644 index 0000000..8b8feb1 --- /dev/null +++ b/app/src/main/java/io/github/zchunk/app/ZChunk.java @@ -0,0 +1,100 @@ +/* + * Copyright 2018 The zchunk-java contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.github.zchunk.app; + +import io.github.zchunk.app.commands.Unzck; +import java.util.concurrent.Callable; +import picocli.CommandLine; +import picocli.CommandLine.Command; +import picocli.CommandLine.Option; +import picocli.CommandLine.ParameterException; +import picocli.CommandLine.ParseResult; +import picocli.CommandLine.UnmatchedArgumentException; + +@Command( + name = "ZChunk", + subcommands = { + Unzck.class + }, + version = "1.0" +) +public class ZChunk implements Callable { + + @Option(names = {"-v", "--verbose"}, description = "Be verbose.") + private boolean verbose; + + @Option(names = {"-h", "-?", "--help", "--usage"}, usageHelp = true, description = "display a help message") + private boolean helpRequested; + + @Option(names = {"-V", "--version"}, versionHelp = true) + private boolean showVersion; + + + + /* + Usage: unzck [OPTION...] + unzck - Decompress a zchunk file + + -c, --stdout Direct output to stdout + --dict Only extract the dictionary + -v, --verbose Increase verbosity (can be specified more than + once for debugging) + -?, --help Give this help list + --usage Give a short usage message + -V, --version Show program version + */ + + public static int main(final String[] args) { + final CommandLine cmd = new CommandLine(new ZChunk()); + + try { + final ParseResult parseResult = cmd.parseArgs(args); + + if (cmd.isUsageHelpRequested()) { + cmd.usage(cmd.getOut()); + return cmd.getCommandSpec().exitCodeOnUsageHelp(); + } + + if (cmd.isVersionHelpRequested()) { + cmd.printVersionHelp(cmd.getOut()); + return cmd.getCommandSpec().exitCodeOnVersionHelp(); + } + + } catch (final ParameterException ex) { + cmd.getErr().println(ex.getMessage()); + if (!UnmatchedArgumentException.printSuggestions(ex, cmd.getErr())) { + ex.getCommandLine().usage(cmd.getErr()); + } + return cmd.getCommandSpec().exitCodeOnInvalidInput(); + } + + try { + return cmd.execute(args); + } catch (final RuntimeException ex) { + // exception occurred in business logic + ex.printStackTrace(cmd.getErr()); + return cmd.getCommandSpec().exitCodeOnExecutionException(); + } + + } + + @Override + public Integer call() throws Exception { + + return -1; + } +} diff --git a/app/src/main/java/io/github/zchunk/app/ZChunkFilename.java b/app/src/main/java/io/github/zchunk/app/ZChunkFilename.java new file mode 100644 index 0000000..4990ce9 --- /dev/null +++ b/app/src/main/java/io/github/zchunk/app/ZChunkFilename.java @@ -0,0 +1,44 @@ +/* + * Copyright 2018 The zchunk-java contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.github.zchunk.app; + +import java.io.File; + +public final class ZChunkFilename { + + private ZChunkFilename() { + // util class + } + + /** + * Returns a new file for the current directory replacing .zck with .zdict. + * + * @param zchunkFile + * the input file. + * @return the file name without directory. + */ + public static File getDictFile(final File zchunkFile) { + if (!zchunkFile.getName().endsWith(".zck")) { + throw new UnsupportedOperationException("Cannot acquire target file name"); + } + + final String newName = zchunkFile.getName().replaceAll("^(.*)\\.zck$", "$1.zdict"); + + return new File(newName); + } + +} diff --git a/app/src/main/java/io/github/zchunk/app/commands/Unzck.java b/app/src/main/java/io/github/zchunk/app/commands/Unzck.java new file mode 100644 index 0000000..d949146 --- /dev/null +++ b/app/src/main/java/io/github/zchunk/app/commands/Unzck.java @@ -0,0 +1,136 @@ +/* + * Copyright 2018 The zchunk-java contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.github.zchunk.app.commands; + +import io.github.zchunk.app.ZChunkFilename; +import io.github.zchunk.app.err.UncompressException; +import io.github.zchunk.fileformat.ZChunk; +import io.github.zchunk.fileformat.ZChunkFile; +import io.github.zchunk.fileformat.util.IOUtil; +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.StringJoiner; +import java.util.concurrent.Callable; +import org.checkerframework.checker.nullness.qual.Nullable; +import picocli.CommandLine.Command; +import picocli.CommandLine.Option; +import picocli.CommandLine.Parameters; + +@Command(description = "Unpacks the completely downloaded zck file.", + name = "unzck", + mixinStandardHelpOptions = true) +public class Unzck implements Callable { + + @Option(names = {"-c", "--stdout"}) + private boolean toStdOut; + + @Option(names = {"--dict"}) + private boolean dictOnly; + + @Option(names = {"-o"}) + private @Nullable File outputFile; + + @Parameters(arity = "1", paramLabel = "FILE") + @SuppressWarnings(value = {"initialization.fields.uninitialized", "dereference.of.nullable"}) + private File inputFile; + + @Override + public Integer call() { + final ZChunkFile zChunkFile = ZChunk.fromFile(this.inputFile); + if (this.dictOnly) { + return decompressDict(zChunkFile); + } + + return -1; + } + + private int decompressDict(final ZChunkFile zChunkFile) { + final File target = getTargetFile(); + try { + final File targetDir = target.getAbsoluteFile().getParentFile(); + if (null == targetDir) { + throw new IllegalStateException("TargetDir Parent is null: [" + target.getAbsolutePath() + "]."); + } + targetDir.mkdirs(); + target.createNewFile(); + final InputStream decompressedDictStream = ZChunk.getDecompressedDictStream(zChunkFile.getHeader(), this.inputFile); + final FileOutputStream fileOutputStream = new FileOutputStream(target); + final int copied = IOUtil.copy(decompressedDictStream, fileOutputStream); + + } catch (final FileNotFoundException fnfe) { + throw new UncompressException("Unable to create parent dir or file: [" + target.getAbsolutePath() + "].", fnfe); + } catch (final IOException ex) { + throw new UncompressException("Unable to write file: [" + target.getAbsolutePath() + "].", ex); + } + + return 0; + } + + private File getTargetFile() { + if (null != this.outputFile) { + return this.outputFile; + } + + return ZChunkFilename.getDictFile(this.inputFile); + } + + public boolean isToStdOut() { + return this.toStdOut; + } + + public void setToStdOut(final boolean toStdOut) { + this.toStdOut = toStdOut; + } + + public boolean isDictOnly() { + return this.dictOnly; + } + + public void setDictOnly(final boolean dictOnly) { + this.dictOnly = dictOnly; + } + + public @Nullable File getOutputFile() { + return this.outputFile; + } + + public void setOutputFile(final @Nullable File outputFile) { + this.outputFile = outputFile; + } + + public File getInputFile() { + return this.inputFile; + } + + public void setInputFile(final File inputFile) { + this.inputFile = inputFile; + } + + + @Override + public String toString() { + return new StringJoiner(", ", Unzck.class.getSimpleName() + "[", "]") + .add("toStdOut=" + this.toStdOut) + .add("dictOnly=" + this.dictOnly) + .add("outputFile=" + this.outputFile) + .add("inputFile=" + this.inputFile) + .toString(); + } +} diff --git a/app/src/main/java/io/github/zchunk/app/err/UncompressException.java b/app/src/main/java/io/github/zchunk/app/err/UncompressException.java new file mode 100644 index 0000000..256a8ee --- /dev/null +++ b/app/src/main/java/io/github/zchunk/app/err/UncompressException.java @@ -0,0 +1,35 @@ +/* + * Copyright 2018 The zchunk-java contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.github.zchunk.app.err; + +import java.util.StringJoiner; + +public class UncompressException extends RuntimeException { + + private static final long serialVersionUID = -6570432692413525167L; + + public UncompressException(final String message, final Throwable cause) { + super(message, cause); + } + + @Override + public String toString() { + return new StringJoiner(", ", UncompressException.class.getSimpleName() + "[", "]") + .add("super='" + super.toString() + "'") + .toString(); + } +} diff --git a/app/src/test/java/io/github/zchunk/app/ZChunkTest.java b/app/src/test/java/io/github/zchunk/app/ZChunkTest.java new file mode 100644 index 0000000..1981419 --- /dev/null +++ b/app/src/test/java/io/github/zchunk/app/ZChunkTest.java @@ -0,0 +1,48 @@ +/* + * Copyright 2018 The zchunk-java contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.github.zchunk.app; + +import org.junit.jupiter.api.Test; + +public class ZChunkTest { + + @Test + public void testHelp() { + ZChunk.main(new String[]{"-h"}); + } + + @Test + public void testHelpUnpack() { + ZChunk.main(new String[]{"-h", "unzck"}); + } + + @Test + public void testUnpackHelp() { + ZChunk.main(new String[]{"unzck", "-h"}); + } + + @Test + public void testNothing() { + ZChunk.main(new String[]{}); + } + + @Test + public void testUnzck() { + ZChunk.main(new String[]{"unzck"}); + } + +} diff --git a/app/src/test/java/io/github/zchunk/app/commands/UnzckTest.java b/app/src/test/java/io/github/zchunk/app/commands/UnzckTest.java new file mode 100644 index 0000000..4059cbe --- /dev/null +++ b/app/src/test/java/io/github/zchunk/app/commands/UnzckTest.java @@ -0,0 +1,59 @@ +/* + * Copyright 2018 The zchunk-java contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.github.zchunk.app.commands; + +import io.github.zchunk.fileformat.util.ChecksumUtil; +import java.io.File; +import java.io.IOException; +import java.math.BigInteger; +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; +import java.util.logging.Logger; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; + +public class UnzckTest { + + private static final Logger LOG = Logger.getLogger(UnzckTest.class.getCanonicalName()); + + @Test + public void testUnzckDict() throws NoSuchAlgorithmException, IOException { + final ClassLoader classLoader = getClass().getClassLoader(); + final String pathToFiles = classLoader.getResource("files").getFile(); + + final File input = new File(pathToFiles, "LICENSE.dict.fodt.zck"); + Assertions.assertTrue(input.exists()); + Assertions.assertTrue(input.isFile()); + Assertions.assertTrue(input.canRead()); + + LOG.finer("File found: " + input.getAbsolutePath()); + final File targetFile = new File(pathToFiles, "LICENSE.dict.fodt.zdict"); + + final Unzck unzck = new Unzck(); + unzck.setInputFile(input); + unzck.setOutputFile(targetFile); + unzck.setDictOnly(true); + unzck.call(); + + final MessageDigest md5 = MessageDigest.getInstance("md5"); + final byte[] bytes = ChecksumUtil.calculateFileChecksum(targetFile, md5); + final String foundMd5 = new BigInteger(1, bytes).toString(16); + + Assertions.assertEquals("e051cbdf211c13bead2009e49b3317f5", foundMd5); + } + +} diff --git a/app/src/test/resources/files/LICENSE.dict.fodt.zck b/app/src/test/resources/files/LICENSE.dict.fodt.zck new file mode 100644 index 0000000000000000000000000000000000000000..d82fc4cbfdb1495bc13b0f9a1e81cfac8de66f52 GIT binary patch literal 125874 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 bd=($<;TrNlf51(A18LW=LiFV|ahX5^6gta{ literal 0 HcmV?d00001 diff --git a/app/src/test/resources/logging.properties b/app/src/test/resources/logging.properties new file mode 100644 index 0000000..3519e09 --- /dev/null +++ b/app/src/test/resources/logging.properties @@ -0,0 +1,26 @@ +# +# Copyright 2019, the zchunk-java contributors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +handlers=java.util.logging.ConsoleHandler +# default log level +.level=FINE +# console handler settings +java.util.logging.ConsoleHandler.level=ALL +java.util.logging.ConsoleHandler.formatter=java.util.logging.SimpleFormatter +java.util.logging.SimpleFormatter.format=[%1$tFT%1$tT.%1$tLZ] [%4$-6s] %2$s - %5$s%6$s%n +# class specific settings +io.github.zchunk.app.level=FINER +# 3rd party +org.junit.platform.level=INFO diff --git a/compression/compression-api/src/main/java/io/github/zchunk/compression/api/CompressionAlgorithmFactory.java b/compression/compression-api/src/main/java/io/github/zchunk/compression/api/CompressionAlgorithmFactory.java index 74daf00..9bd4b3e 100644 --- a/compression/compression-api/src/main/java/io/github/zchunk/compression/api/CompressionAlgorithmFactory.java +++ b/compression/compression-api/src/main/java/io/github/zchunk/compression/api/CompressionAlgorithmFactory.java @@ -109,10 +109,10 @@ public List loadImplementations(@UnderInitialization Resou final ServiceLoader load = ServiceLoader.load(CompressionAlgorithm.class); final Logger logger = Logger.getLogger("io.github.zchunk"); - logger.info("ServiceLoader: " + load); + logger.finest("ServiceLoader: " + load); return StreamSupport.stream(load.spliterator(), false) - .peek(clazz2 -> logger.info("Class: " + clazz2.getClass())) + .peek(clazz2 -> logger.finer("Class: " + clazz2.getClass())) .collect(Collectors.toList()); } diff --git a/fileformat/src/main/java/io/github/zchunk/fileformat/ZChunk.java b/fileformat/src/main/java/io/github/zchunk/fileformat/ZChunk.java index 12efe3d..48b670d 100644 --- a/fileformat/src/main/java/io/github/zchunk/fileformat/ZChunk.java +++ b/fileformat/src/main/java/io/github/zchunk/fileformat/ZChunk.java @@ -96,7 +96,23 @@ public static byte[] getDecompressedDict(final ZChunkHeader header, final File i final String message = String.format("Unable to read dictionary at offset [%d] from file [%s].", offset, input.getAbsolutePath()); throw new IllegalArgumentException(message); } + } + + public static InputStream getDecompressedDictStream(final ZChunkHeader header, final File input) { + final long offset = OffsetUtil.getDictOffset(header); + final CompressionAlgorithm compressionAlgorithm = header.getPreface().getCompressionAlgorithm(); + final BiFunction decompressor = compressionAlgorithm.getOutputStreamSupplier(); + try { + final FileInputStream fis = new FileInputStream(input); + final InputStream decompressedStream = decompressor.apply(fis, new byte[0]); + fis.skip(offset); + + return new BoundedInputStream(decompressedStream, header.getIndex().getUncompressedDictLength().getIntValue()); + } catch (final IOException ioEx) { + final String message = String.format("Unable to read dictionary at offset [%d] from file [%s].", offset, input.getAbsolutePath()); + throw new IllegalArgumentException(message); + } } public static InputStream getDecompressedChunk(final ZChunkHeader header, diff --git a/fileformat/src/main/java/io/github/zchunk/fileformat/util/ChecksumUtil.java b/fileformat/src/main/java/io/github/zchunk/fileformat/util/ChecksumUtil.java index c9190ac..6c2b8e7 100644 --- a/fileformat/src/main/java/io/github/zchunk/fileformat/util/ChecksumUtil.java +++ b/fileformat/src/main/java/io/github/zchunk/fileformat/util/ChecksumUtil.java @@ -230,4 +230,18 @@ private static boolean chunkIsValid(final ZChunkHeaderChunkInfo chunk, final ZCh return false; } } + + public static byte[] calculateFileChecksum(final File input, final MessageDigest digest) throws IOException { + final byte[] buffer = new byte[BUFFER_SIZE]; + + try (final FileInputStream fis = new FileInputStream(input)) { + int readCount; + + while ((readCount = fis.read(buffer)) != -1) { + digest.update(buffer, 0, readCount); + } + + return digest.digest(); + } + } } diff --git a/fileformat/src/main/java/io/github/zchunk/fileformat/util/IOUtil.java b/fileformat/src/main/java/io/github/zchunk/fileformat/util/IOUtil.java new file mode 100644 index 0000000..e6d81b9 --- /dev/null +++ b/fileformat/src/main/java/io/github/zchunk/fileformat/util/IOUtil.java @@ -0,0 +1,50 @@ +/* + * Copyright 2018 The zchunk-java contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.github.zchunk.fileformat.util; + +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; + +public final class IOUtil { + + private static final int BUFFER_SIZE = 1024; + private static final int EOF = -1; + + private IOUtil() { + // util class + } + + public static int copy(final InputStream in, final OutputStream out) throws IOException { + final byte[] buffer = new byte[BUFFER_SIZE]; + int readCount; + int totalWritten = 0; + + while ((readCount = in.read(buffer)) != EOF) { + out.write(buffer, 0, readCount); + totalWritten += readCount; + + if (readCount < BUFFER_SIZE) { + // end reached. + break; + } + } + + return totalWritten; + } + +} diff --git a/pom.xml b/pom.xml index 1050c67..956852f 100644 --- a/pom.xml +++ b/pom.xml @@ -35,7 +35,7 @@ compression/compression-zstd fileformat - + app bundle/lib @@ -72,6 +72,13 @@ provided + + + info.picocli + picocli + 4.0.0-alpha-3 + +