Nachbearbeitung: Konfigurationsgrenze architekturtreu in Richtung
Bootstrap verschoben
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
package de.gecheckt.pdf.umbenenner.application.config;
|
package de.gecheckt.pdf.umbenenner.adapter.out.bootstrap.validation;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Exception thrown when startup configuration validation fails.
|
* Exception thrown when startup configuration validation fails.
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
package de.gecheckt.pdf.umbenenner.application.config;
|
package de.gecheckt.pdf.umbenenner.adapter.out.bootstrap.validation;
|
||||||
|
|
||||||
|
import de.gecheckt.pdf.umbenenner.application.config.StartConfiguration;
|
||||||
import org.apache.logging.log4j.LogManager;
|
import org.apache.logging.log4j.LogManager;
|
||||||
import org.apache.logging.log4j.Logger;
|
import org.apache.logging.log4j.Logger;
|
||||||
|
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
/**
|
||||||
|
* Bootstrap-phase technical configuration validation.
|
||||||
|
* <p>
|
||||||
|
* Handles startup configuration validation before the batch application begins.
|
||||||
|
* Validates mandatory fields, numeric ranges, URI schemes, and path existence.
|
||||||
|
* Technical responsibility that does not belong to the application layer.
|
||||||
|
*/
|
||||||
|
package de.gecheckt.pdf.umbenenner.adapter.out.bootstrap.validation;
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
package de.gecheckt.pdf.umbenenner.application.config;
|
package de.gecheckt.pdf.umbenenner.adapter.out.bootstrap.validation;
|
||||||
|
|
||||||
|
import de.gecheckt.pdf.umbenenner.application.config.StartConfiguration;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import org.junit.jupiter.api.io.TempDir;
|
import org.junit.jupiter.api.io.TempDir;
|
||||||
|
|
||||||
@@ -9,6 +9,8 @@ import org.apache.logging.log4j.LogManager;
|
|||||||
import org.apache.logging.log4j.Logger;
|
import org.apache.logging.log4j.Logger;
|
||||||
|
|
||||||
import de.gecheckt.pdf.umbenenner.adapter.in.cli.SchedulerBatchCommand;
|
import de.gecheckt.pdf.umbenenner.adapter.in.cli.SchedulerBatchCommand;
|
||||||
|
import de.gecheckt.pdf.umbenenner.adapter.out.bootstrap.validation.InvalidStartConfigurationException;
|
||||||
|
import de.gecheckt.pdf.umbenenner.adapter.out.bootstrap.validation.StartConfigurationValidator;
|
||||||
import de.gecheckt.pdf.umbenenner.adapter.out.configuration.PropertiesConfigurationPortAdapter;
|
import de.gecheckt.pdf.umbenenner.adapter.out.configuration.PropertiesConfigurationPortAdapter;
|
||||||
import de.gecheckt.pdf.umbenenner.adapter.out.fingerprint.Sha256FingerprintAdapter;
|
import de.gecheckt.pdf.umbenenner.adapter.out.fingerprint.Sha256FingerprintAdapter;
|
||||||
import de.gecheckt.pdf.umbenenner.adapter.out.lock.FilesystemRunLockPortAdapter;
|
import de.gecheckt.pdf.umbenenner.adapter.out.lock.FilesystemRunLockPortAdapter;
|
||||||
@@ -18,9 +20,7 @@ import de.gecheckt.pdf.umbenenner.adapter.out.sqlite.SqliteDocumentRecordReposit
|
|||||||
import de.gecheckt.pdf.umbenenner.adapter.out.sqlite.SqliteProcessingAttemptRepositoryAdapter;
|
import de.gecheckt.pdf.umbenenner.adapter.out.sqlite.SqliteProcessingAttemptRepositoryAdapter;
|
||||||
import de.gecheckt.pdf.umbenenner.adapter.out.sqlite.SqliteSchemaInitializationAdapter;
|
import de.gecheckt.pdf.umbenenner.adapter.out.sqlite.SqliteSchemaInitializationAdapter;
|
||||||
import de.gecheckt.pdf.umbenenner.adapter.out.sqlite.SqliteUnitOfWorkAdapter;
|
import de.gecheckt.pdf.umbenenner.adapter.out.sqlite.SqliteUnitOfWorkAdapter;
|
||||||
import de.gecheckt.pdf.umbenenner.application.config.InvalidStartConfigurationException;
|
|
||||||
import de.gecheckt.pdf.umbenenner.application.config.StartConfiguration;
|
import de.gecheckt.pdf.umbenenner.application.config.StartConfiguration;
|
||||||
import de.gecheckt.pdf.umbenenner.application.config.StartConfigurationValidator;
|
|
||||||
import de.gecheckt.pdf.umbenenner.application.port.in.BatchRunOutcome;
|
import de.gecheckt.pdf.umbenenner.application.port.in.BatchRunOutcome;
|
||||||
import de.gecheckt.pdf.umbenenner.application.port.in.BatchRunProcessingUseCase;
|
import de.gecheckt.pdf.umbenenner.application.port.in.BatchRunProcessingUseCase;
|
||||||
import de.gecheckt.pdf.umbenenner.application.port.out.ConfigurationPort;
|
import de.gecheckt.pdf.umbenenner.application.port.out.ConfigurationPort;
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
package de.gecheckt.pdf.umbenenner.bootstrap;
|
package de.gecheckt.pdf.umbenenner.bootstrap;
|
||||||
|
|
||||||
import de.gecheckt.pdf.umbenenner.adapter.in.cli.SchedulerBatchCommand;
|
import de.gecheckt.pdf.umbenenner.adapter.in.cli.SchedulerBatchCommand;
|
||||||
import de.gecheckt.pdf.umbenenner.application.config.InvalidStartConfigurationException;
|
import de.gecheckt.pdf.umbenenner.adapter.out.bootstrap.validation.InvalidStartConfigurationException;
|
||||||
|
import de.gecheckt.pdf.umbenenner.adapter.out.bootstrap.validation.StartConfigurationValidator;
|
||||||
import de.gecheckt.pdf.umbenenner.application.config.StartConfiguration;
|
import de.gecheckt.pdf.umbenenner.application.config.StartConfiguration;
|
||||||
import de.gecheckt.pdf.umbenenner.application.config.StartConfigurationValidator;
|
|
||||||
import de.gecheckt.pdf.umbenenner.application.port.in.BatchRunOutcome;
|
import de.gecheckt.pdf.umbenenner.application.port.in.BatchRunOutcome;
|
||||||
import de.gecheckt.pdf.umbenenner.application.port.in.BatchRunProcessingUseCase;
|
import de.gecheckt.pdf.umbenenner.application.port.in.BatchRunProcessingUseCase;
|
||||||
import de.gecheckt.pdf.umbenenner.application.port.out.ConfigurationPort;
|
import de.gecheckt.pdf.umbenenner.application.port.out.ConfigurationPort;
|
||||||
@@ -28,7 +28,7 @@ import static org.junit.jupiter.api.Assertions.*;
|
|||||||
* <p>
|
* <p>
|
||||||
* Tests cover the bootstrap orchestration behavior including success path,
|
* Tests cover the bootstrap orchestration behavior including success path,
|
||||||
* invalid configuration handling, unexpected failure handling, and the
|
* invalid configuration handling, unexpected failure handling, and the
|
||||||
* empty-lock-file-path default (M2-F2 fix).
|
* empty-lock-file-path default behavior.
|
||||||
*/
|
*/
|
||||||
class BootstrapRunnerTest {
|
class BootstrapRunnerTest {
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user