aeb3323180
Der Adapter teilt intern einen FileChannel und ermöglicht so das Schreiben von Scheduler-Einstellungen auch während eines aktiven OS-Locks. Schreibvorgänge laufen ohne Lock über eine temporäre Datei (ATOMIC_MOVE); mit Lock direkt über den Kanal (Truncate → Write → Force). Zeilenenden (CRLF/LF) und alle übrigen Properties-Zeilen bleiben unverändert erhalten. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
147 lines
4.8 KiB
XML
147 lines
4.8 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||
<modelVersion>4.0.0</modelVersion>
|
||
<parent>
|
||
<groupId>de.gecheckt</groupId>
|
||
<artifactId>pdf-umbenenner-parent</artifactId>
|
||
<version>${revision}</version>
|
||
</parent>
|
||
<artifactId>pdf-umbenenner-adapter-in-scheduler</artifactId>
|
||
<packaging>jar</packaging>
|
||
|
||
<!--
|
||
Inbound-Adapter: autonomer Scheduler-Betrieb.
|
||
|
||
Abhängigkeitsrichtung (hexagonale Architektur):
|
||
adapter-in-scheduler → application → domain
|
||
|
||
KEIN Rückwärtsverweis auf pdf-umbenenner-bootstrap: das Bootstrap-Modul
|
||
verdrahtet den Scheduler und hängt selbst von diesem Modul ab – eine
|
||
umgekehrte Abhängigkeit würde einen Zyklus erzeugen.
|
||
|
||
ApplicationRunContext (package-private im Bootstrap-Modul) ist von hier
|
||
aus nicht direkt erreichbar. Die Schnittstelle zwischen Bootstrap und
|
||
diesem Modul wird über das BatchRunTrigger-Functional-Interface realisiert,
|
||
das im Bootstrap-Modul liegt und beim Start injiziert wird.
|
||
|
||
JavaFX ist bewusst ausgeschlossen: dieser Adapter läuft ohne Benutzeroberfläche.
|
||
|
||
maven-shade-plugin ist bewusst ausgeschlossen: das ausführbare JAR wird
|
||
ausschließlich im Bootstrap-Modul per Shade-Plugin erzeugt.
|
||
-->
|
||
|
||
<dependencies>
|
||
<!-- Interner Abhängigkeiten: Inbound-Adapter bezieht Ports und Use-Cases
|
||
ausschließlich aus der Application-Schicht -->
|
||
<dependency>
|
||
<groupId>de.gecheckt</groupId>
|
||
<artifactId>pdf-umbenenner-application</artifactId>
|
||
<version>${project.version}</version>
|
||
</dependency>
|
||
|
||
<!-- Logging -->
|
||
<dependency>
|
||
<groupId>org.apache.logging.log4j</groupId>
|
||
<artifactId>log4j-api</artifactId>
|
||
</dependency>
|
||
|
||
<!-- Test-Abhängigkeiten -->
|
||
<dependency>
|
||
<groupId>org.apache.logging.log4j</groupId>
|
||
<artifactId>log4j-core</artifactId>
|
||
<scope>test</scope>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>org.junit.jupiter</groupId>
|
||
<artifactId>junit-jupiter</artifactId>
|
||
<scope>test</scope>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>org.mockito</groupId>
|
||
<artifactId>mockito-core</artifactId>
|
||
<scope>test</scope>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>org.mockito</groupId>
|
||
<artifactId>mockito-junit-jupiter</artifactId>
|
||
<scope>test</scope>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>org.assertj</groupId>
|
||
<artifactId>assertj-core</artifactId>
|
||
<scope>test</scope>
|
||
</dependency>
|
||
</dependencies>
|
||
|
||
<build>
|
||
<plugins>
|
||
<!--
|
||
flatten-maven-plugin: wird vom Parent geerbt und löst ${revision} in
|
||
installierten POMs auf. Keine eigene Konfiguration erforderlich –
|
||
der Eintrag ist nur zur bewussten Dokumentation dieser Erbschaftsentscheidung
|
||
vorhanden.
|
||
-->
|
||
|
||
<plugin>
|
||
<groupId>org.jacoco</groupId>
|
||
<artifactId>jacoco-maven-plugin</artifactId>
|
||
<executions>
|
||
<execution>
|
||
<id>jacoco-check</id>
|
||
<phase>verify</phase>
|
||
<goals>
|
||
<goal>check</goal>
|
||
</goals>
|
||
<configuration>
|
||
<rules>
|
||
<rule>
|
||
<element>BUNDLE</element>
|
||
<limits>
|
||
<limit>
|
||
<counter>LINE</counter>
|
||
<value>COVEREDRATIO</value>
|
||
<minimum>0.80</minimum>
|
||
</limit>
|
||
<limit>
|
||
<counter>BRANCH</counter>
|
||
<value>COVEREDRATIO</value>
|
||
<minimum>0.70</minimum>
|
||
</limit>
|
||
</limits>
|
||
</rule>
|
||
</rules>
|
||
</configuration>
|
||
</execution>
|
||
</executions>
|
||
</plugin>
|
||
|
||
<plugin>
|
||
<groupId>org.pitest</groupId>
|
||
<artifactId>pitest-maven</artifactId>
|
||
<executions>
|
||
<execution>
|
||
<id>pitest</id>
|
||
<phase>verify</phase>
|
||
<goals>
|
||
<goal>mutationCoverage</goal>
|
||
</goals>
|
||
<configuration>
|
||
<!--
|
||
PIT wird für diesen Adapter explizit deaktiviert. Der Parent
|
||
setzt skip=true als Standardwert; hier wird das bewusst
|
||
wiederholt dokumentiert. Mutations-Tests werden erst
|
||
aktiviert, wenn echte Produktionslogik vorliegt.
|
||
-->
|
||
<skip>true</skip>
|
||
<coverageThreshold>0</coverageThreshold>
|
||
<mutationThreshold>0</mutationThreshold>
|
||
</configuration>
|
||
</execution>
|
||
</executions>
|
||
</plugin>
|
||
</plugins>
|
||
</build>
|
||
</project>
|