1
0

Nachbearbeitung: Logging aus der Application-Schicht entkoppelt

This commit is contained in:
2026-04-04 14:31:14 +02:00
parent deaa8c9fa3
commit 8e6d745e4b
9 changed files with 210 additions and 55 deletions

View File

@@ -12,6 +12,7 @@ import de.gecheckt.pdf.umbenenner.application.port.out.FailureCounters;
import de.gecheckt.pdf.umbenenner.application.port.out.PersistenceLookupTechnicalFailure;
import de.gecheckt.pdf.umbenenner.application.port.out.ProcessingAttempt;
import de.gecheckt.pdf.umbenenner.application.port.out.ProcessingAttemptRepository;
import de.gecheckt.pdf.umbenenner.application.port.out.ProcessingLogger;
import de.gecheckt.pdf.umbenenner.application.port.out.UnitOfWorkPort;
import de.gecheckt.pdf.umbenenner.domain.model.BatchRunContext;
import de.gecheckt.pdf.umbenenner.domain.model.DocumentFingerprint;
@@ -71,7 +72,7 @@ class DocumentProcessingCoordinatorTest {
recordRepo = new CapturingDocumentRecordRepository();
attemptRepo = new CapturingProcessingAttemptRepository();
unitOfWorkPort = new CapturingUnitOfWorkPort(recordRepo, attemptRepo);
processor = new DocumentProcessingCoordinator(recordRepo, attemptRepo, unitOfWorkPort);
processor = new DocumentProcessingCoordinator(recordRepo, attemptRepo, unitOfWorkPort, new NoOpProcessingLogger());
candidate = new SourceDocumentCandidate(
"test.pdf", 1024L, new SourceDocumentLocator("/tmp/test.pdf"));
@@ -467,4 +468,26 @@ class DocumentProcessingCoordinatorTest {
operations.accept(mockOps);
}
}
private static class NoOpProcessingLogger implements ProcessingLogger {
@Override
public void info(String message, Object... args) {
// No-op
}
@Override
public void debug(String message, Object... args) {
// No-op
}
@Override
public void warn(String message, Object... args) {
// No-op
}
@Override
public void error(String message, Object... args) {
// No-op
}
}
}

View File

@@ -13,6 +13,7 @@ import de.gecheckt.pdf.umbenenner.application.port.out.FingerprintTechnicalError
import de.gecheckt.pdf.umbenenner.application.port.out.PdfTextExtractionPort;
import de.gecheckt.pdf.umbenenner.application.port.out.ProcessingAttempt;
import de.gecheckt.pdf.umbenenner.application.port.out.ProcessingAttemptRepository;
import de.gecheckt.pdf.umbenenner.application.port.out.ProcessingLogger;
import de.gecheckt.pdf.umbenenner.application.port.out.RunLockPort;
import de.gecheckt.pdf.umbenenner.application.port.out.RunLockUnavailableException;
import de.gecheckt.pdf.umbenenner.application.port.out.SourceDocumentAccessException;
@@ -435,7 +436,8 @@ class BatchRunProcessingUseCaseTest {
FingerprintPort fingerprintPort,
DocumentProcessingCoordinator processor) {
return new DefaultBatchRunProcessingUseCase(
config, lockPort, candidatesPort, extractionPort, fingerprintPort, processor);
config, lockPort, candidatesPort, extractionPort, fingerprintPort, processor,
new NoOpProcessingLogger());
}
private static StartConfiguration buildConfig(Path tempDir) throws Exception {
@@ -617,7 +619,8 @@ class BatchRunProcessingUseCaseTest {
*/
private static class NoOpDocumentProcessingCoordinator extends DocumentProcessingCoordinator {
NoOpDocumentProcessingCoordinator() {
super(new NoOpDocumentRecordRepository(), new NoOpProcessingAttemptRepository(), new NoOpUnitOfWorkPort());
super(new NoOpDocumentRecordRepository(), new NoOpProcessingAttemptRepository(), new NoOpUnitOfWorkPort(),
new NoOpProcessingLogger());
}
}
@@ -628,7 +631,8 @@ class BatchRunProcessingUseCaseTest {
private int processCallCount = 0;
TrackingDocumentProcessingCoordinator() {
super(new NoOpDocumentRecordRepository(), new NoOpProcessingAttemptRepository(), new NoOpUnitOfWorkPort());
super(new NoOpDocumentRecordRepository(), new NoOpProcessingAttemptRepository(), new NoOpUnitOfWorkPort(),
new NoOpProcessingLogger());
}
@Override
@@ -705,12 +709,12 @@ class BatchRunProcessingUseCaseTest {
public void saveProcessingAttempt(ProcessingAttempt attempt) {
// No-op
}
@Override
public void createDocumentRecord(DocumentRecord record) {
// No-op
}
@Override
public void updateDocumentRecord(DocumentRecord record) {
// No-op
@@ -718,4 +722,27 @@ class BatchRunProcessingUseCaseTest {
});
}
}
/** No-op ProcessingLogger for use in test instances. */
private static class NoOpProcessingLogger implements ProcessingLogger {
@Override
public void info(String message, Object... args) {
// No-op
}
@Override
public void debug(String message, Object... args) {
// No-op
}
@Override
public void warn(String message, Object... args) {
// No-op
}
@Override
public void error(String message, Object... args) {
// No-op
}
}
}