Refactor package structure and rename classes

- Rename encryption/ to stream/ (IOutputStreamEnhancer → OutputStreamEnhancer, IInputStreamEnhancer → InputStreamEnhancer)
- Rename PostBoxZipFileWriter → SplitZipWriter
- Simplify test package from illgner.ch.jobs.postboxbulk.service to illgner.ch.createzip
This commit is contained in:
fillg1 2026-04-11 20:39:34 +02:00
commit d18c70a4e8
4 changed files with 19 additions and 26 deletions

View file

@ -1,6 +1,6 @@
package illgner.ch.createzip;
import illgner.ch.encryption.IOutputStreamEnhancer;
import illgner.ch.stream.OutputStreamEnhancer;
import org.apache.commons.io.IOUtils;
import org.apache.commons.io.output.CountingOutputStream;
import org.slf4j.Logger;
@ -30,9 +30,9 @@ import static java.nio.file.attribute.PosixFilePermission.OTHERS_READ;
import static java.nio.file.attribute.PosixFilePermission.OWNER_READ;
import static java.nio.file.attribute.PosixFilePermission.OWNER_WRITE;
public class PostBoxZipFileWriter implements Closeable {
public class SplitZipWriter implements Closeable {
private static final Logger LOG = LoggerFactory.getLogger(PostBoxZipFileWriter.class);
private static final Logger LOG = LoggerFactory.getLogger(SplitZipWriter.class);
private static final Set<PosixFilePermission> ZIP_FILE_PERMISSIONS = EnumSet.of(OWNER_READ, OWNER_WRITE, GROUP_READ, OTHERS_READ);
@ -41,7 +41,7 @@ public class PostBoxZipFileWriter implements Closeable {
private final int chunkSize;
private final int bufferSize;
private final ZipResult zipResult;
IOutputStreamEnhancer outputStreamEnhancer;
OutputStreamEnhancer outputStreamEnhancer;
private ZipOutputStream zipOutputStream;
@ -50,7 +50,7 @@ public class PostBoxZipFileWriter implements Closeable {
private File actualZipFile;
private CountingOutputStream countingOutputStream;
public PostBoxZipFileWriter(Path destinationDir, String baseName, int chunkSize, int bufferSize, IOutputStreamEnhancer outputStreamEnhancer) {
public SplitZipWriter(Path destinationDir, String baseName, int chunkSize, int bufferSize, OutputStreamEnhancer outputStreamEnhancer) {
this.destinationDir = destinationDir;
this.baseName = baseName;
this.chunkSize = chunkSize;

View file

@ -1,4 +1,4 @@
package illgner.ch.encryption;
package illgner.ch.stream;
import javax.crypto.NoSuchPaddingException;
import java.io.IOException;
@ -8,8 +8,6 @@ import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import java.security.NoSuchProviderException;
public interface IInputStreamEnhancer {
public interface InputStreamEnhancer {
InputStream enhance(InputStream inputStream) throws NoSuchPaddingException, NoSuchAlgorithmException, InvalidKeyException, IOException, InvalidAlgorithmParameterException, NoSuchProviderException;
}

View file

@ -1,4 +1,4 @@
package illgner.ch.encryption;
package illgner.ch.stream;
import javax.crypto.NoSuchPaddingException;
import java.io.IOException;
@ -8,11 +8,6 @@ import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import java.security.NoSuchProviderException;
public interface IOutputStreamEnhancer {
/**
* This method enhances the given input stream {@link OutputStream} wrapping with the additional functionality (in our case with encryption)
* @param outputStream the original stream {@link OutputStream} to be enhanced.
* @return A new {@link OutputStream} that wraps the functionality to input stream.
*/
public interface OutputStreamEnhancer {
OutputStream enhance(OutputStream outputStream) throws NoSuchPaddingException, NoSuchAlgorithmException, InvalidKeyException, IOException, InvalidAlgorithmParameterException, NoSuchProviderException;
}

View file

@ -1,6 +1,6 @@
package illgner.ch.jobs.postboxbulk.service;
package illgner.ch.createzip;
import illgner.ch.createzip.PostBoxZipFileWriter;
import illgner.ch.createzip.SplitZipWriter;
import illgner.ch.createzip.ZipResult;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;
@ -35,7 +35,7 @@ import static org.hamcrest.io.FileMatchers.aFileNamed;
import static org.hamcrest.io.FileMatchers.anExistingFile;
import static org.junit.jupiter.api.Assertions.assertTrue;
class PostBoxZipFileWriterTest {
class SplitZipWriterTest {
private static final Path DESTINATION_DIR = Paths.get("./destination");
private static final int ONE_BYTE = 1024;
@ -63,7 +63,7 @@ class PostBoxZipFileWriterTest {
ZipResult zipResult;
String outputFileName = RandomStringUtils.randomAlphanumeric(10);
String inputFileName = "singleFileSmallerThanChunkSizeToOneZip.txt";
PostBoxZipFileWriter postBoxZipFileWriter = new PostBoxZipFileWriter(
SplitZipWriter postBoxZipFileWriter = new SplitZipWriter(
DESTINATION_DIR, outputFileName, ZIP_CHUNK_SIZE_IN_BYTE, ZIP_BUFFER_SIZE_IN_BYTE, (OutputStream outputStream) -> outputStream);
try (postBoxZipFileWriter) {
postBoxZipFileWriter.write(new ByteArrayInputStream(fileSimpleContent), inputFileName);
@ -92,7 +92,7 @@ class PostBoxZipFileWriterTest {
ZipResult zipResult;
String outputFileName = RandomStringUtils.randomAlphanumeric(10);
String inputFileName = "singleFileGreaterThanChunkSizeToOneZip.txt";
PostBoxZipFileWriter postBoxZipFileWriter = new PostBoxZipFileWriter(
SplitZipWriter postBoxZipFileWriter = new SplitZipWriter(
DESTINATION_DIR, outputFileName, ZIP_CHUNK_SIZE_IN_BYTE, ZIP_BUFFER_SIZE_IN_BYTE, (OutputStream outputStream) -> outputStream);
try (postBoxZipFileWriter) {
postBoxZipFileWriter.write(new ByteArrayInputStream(fileSimpleContent), inputFileName);
@ -125,7 +125,7 @@ class PostBoxZipFileWriterTest {
String inputFileNameTwo = "multipleFileSmallerThanChunkSizeToSingleZip2.txt";
ZipResult zipResult;
PostBoxZipFileWriter postBoxZipFileWriter = new PostBoxZipFileWriter(
SplitZipWriter postBoxZipFileWriter = new SplitZipWriter(
DESTINATION_DIR, outputFileName, ZIP_CHUNK_SIZE_IN_BYTE, ZIP_BUFFER_SIZE_IN_BYTE, (OutputStream outputStream) -> outputStream);
try (postBoxZipFileWriter) {
postBoxZipFileWriter.write(new ByteArrayInputStream(firstFile), inputFileNameOne);
@ -164,7 +164,7 @@ class PostBoxZipFileWriterTest {
String inputFileNameTwo = "multipleFilesTogetherGreaterThanChunkSizeToSingleZip2.txt";
ZipResult zipResult;
PostBoxZipFileWriter postBoxZipFileWriter = new PostBoxZipFileWriter(
SplitZipWriter postBoxZipFileWriter = new SplitZipWriter(
DESTINATION_DIR, outputFileName, ZIP_CHUNK_SIZE_IN_BYTE, ZIP_BUFFER_SIZE_IN_BYTE, (OutputStream outputStream) -> outputStream);
try (postBoxZipFileWriter) {
postBoxZipFileWriter.write(new ByteArrayInputStream(firstFile), inputFileNameOne);
@ -207,7 +207,7 @@ class PostBoxZipFileWriterTest {
String[] originalFileNames = {"multipleBigFilesToMultipleZip1.txt", "multipleBigFilesToMultipleZip2.txt", "multipleBigFilesToMultipleZip3.txt"};
String outputFileName = RandomStringUtils.randomAlphanumeric(10);
PostBoxZipFileWriter postBoxZipFileWriter = new PostBoxZipFileWriter(
SplitZipWriter postBoxZipFileWriter = new SplitZipWriter(
DESTINATION_DIR, outputFileName, bigChuckSize, bigBufferSize, (OutputStream outputStream) -> outputStream);
try (postBoxZipFileWriter) {
postBoxZipFileWriter.write(new ByteArrayInputStream(firstFile), originalFileNames[0]);
@ -256,7 +256,7 @@ class PostBoxZipFileWriterTest {
// first implementation crashed with an OutOfMemoryException while copying an 50MB Stream,
// so we added a test for this
try (PostBoxZipFileWriter zipFileWriter = new PostBoxZipFileWriter(
try (SplitZipWriter zipFileWriter = new SplitZipWriter(
DESTINATION_DIR, "testBigMulti", 100 * 1000 * 1000, ZIP_BUFFER_SIZE_IN_BYTE, (OutputStream outputStream) -> outputStream)) {
for (int i = 0; i < 10; i++) {
byte[] content = RandomStringUtils.randomAlphanumeric(50 * 1000 * 1000).getBytes();
@ -274,7 +274,7 @@ class PostBoxZipFileWriterTest {
String outputFileName = RandomStringUtils.randomAlphanumeric(10);
ZipResult zipResult;
try (PostBoxZipFileWriter postBoxZipFileWriter = new PostBoxZipFileWriter(DESTINATION_DIR, outputFileName, 1000, 2048, (OutputStream outputStream) -> outputStream)) {
try (SplitZipWriter postBoxZipFileWriter = new SplitZipWriter(DESTINATION_DIR, outputFileName, 1000, 2048, (OutputStream outputStream) -> outputStream)) {
postBoxZipFileWriter.write(new ByteArrayInputStream(content1), "file1");
postBoxZipFileWriter.write(new ByteArrayInputStream(content2), "file2");
postBoxZipFileWriter.write(new ByteArrayInputStream(content3), "file3");