93a2473c36
Erzeugt das Modul-Gerüst für den autonomen Scheduler-Adapter: - pom.xml mit Abhängigkeit auf pdf-umbenenner-application (kein Bootstrap, kein JavaFX, kein Shade-Plugin); flatten-maven-plugin und PIT werden mit bewusstem Kommentar vom Parent geerbt; JaCoCo-Schwellwerte temporär auf 0 - package-info.java für das Paket de.gecheckt.pdf.umbenenner.adapter.in.scheduler - SchedulerPlaceholder.java als temporäre Kompilierplatzhalter-Klasse - Modul in der Parent-pom.xml zwischen adapter-in-gui und adapter-out registriert Die Abhängigkeitsrichtung (adapter-in-scheduler → application → domain) verhindert den zyklischen Bezug: Bootstrap wird in einem späteren Schritt auf dieses Modul angewiesen sein, nicht umgekehrt. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
152 lines
5.1 KiB
XML
152 lines
5.1 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>
|
||
<!--
|
||
Dieses Modul enthält in der aktuellen Ausbaustufe ausschließlich
|
||
eine Platzhalter-Klasse. Die Coverage-Schwellwerte werden auf 0
|
||
gesetzt und mit jedem Implementierungsschritt nachgezogen.
|
||
-->
|
||
<rules>
|
||
<rule>
|
||
<element>BUNDLE</element>
|
||
<limits>
|
||
<limit>
|
||
<counter>LINE</counter>
|
||
<value>COVEREDRATIO</value>
|
||
<minimum>0.00</minimum>
|
||
</limit>
|
||
<limit>
|
||
<counter>BRANCH</counter>
|
||
<value>COVEREDRATIO</value>
|
||
<minimum>0.00</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>
|