Erweiterung für V2.0: M9 umgesetzt
This commit is contained in:
@@ -0,0 +1,180 @@
|
||||
<?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>0.0.1-SNAPSHOT</version>
|
||||
</parent>
|
||||
<artifactId>pdf-umbenenner-adapter-in-gui</artifactId>
|
||||
<packaging>jar</packaging>
|
||||
|
||||
<dependencies>
|
||||
<!-- Internal dependencies: inbound adapter depends on application and domain -->
|
||||
<dependency>
|
||||
<groupId>de.gecheckt</groupId>
|
||||
<artifactId>pdf-umbenenner-application</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>de.gecheckt</groupId>
|
||||
<artifactId>pdf-umbenenner-domain</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
|
||||
<!-- JavaFX: only this module depends on JavaFX; domain/application/cli remain JavaFX-free -->
|
||||
<dependency>
|
||||
<groupId>org.openjfx</groupId>
|
||||
<artifactId>javafx-base</artifactId>
|
||||
<classifier>win</classifier>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.openjfx</groupId>
|
||||
<artifactId>javafx-graphics</artifactId>
|
||||
<classifier>win</classifier>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.openjfx</groupId>
|
||||
<artifactId>javafx-controls</artifactId>
|
||||
<classifier>win</classifier>
|
||||
</dependency>
|
||||
|
||||
<!-- Logging -->
|
||||
<dependency>
|
||||
<groupId>org.apache.logging.log4j</groupId>
|
||||
<artifactId>log4j-api</artifactId>
|
||||
</dependency>
|
||||
|
||||
<!-- Test dependencies -->
|
||||
<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>
|
||||
<!--
|
||||
Monocle: headless JavaFX platform for GUI smoke tests.
|
||||
Provides the Glass platform implementation that runs JavaFX without a
|
||||
physical display. Required for running GUI tests in headless CI environments
|
||||
and as the designated test runtime for all GUI smoke tests.
|
||||
Not part of the production classpath; test scope only.
|
||||
-->
|
||||
<dependency>
|
||||
<groupId>org.testfx</groupId>
|
||||
<artifactId>openjfx-monocle</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<!--
|
||||
Surefire: configure JVM arguments for headless JavaFX via Monocle.
|
||||
These properties must be set before JavaFX initializes the Glass toolkit:
|
||||
glass.platform=Monocle selects the Monocle headless Glass implementation
|
||||
(provided by openjfx-monocle on the test classpath);
|
||||
monocle.platform=Headless selects the headless backend within Monocle;
|
||||
prism.order=sw enables software rendering (no GPU required);
|
||||
prism.text=t2k selects the T2K text rasterizer (headless-safe);
|
||||
java.awt.headless=true signals headless mode to AWT/Swing interop layers.
|
||||
The add-opens args are required for JavaFX internal access patterns used
|
||||
by Monocle and the Platform.startup API in Java 21 module context.
|
||||
-->
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-surefire-plugin</artifactId>
|
||||
<configuration>
|
||||
<argLine>
|
||||
${argLine}
|
||||
-Dglass.platform=Monocle
|
||||
-Dmonocle.platform=Headless
|
||||
-Dprism.order=sw
|
||||
-Dprism.text=t2k
|
||||
-Djava.awt.headless=true
|
||||
--add-opens=javafx.graphics/com.sun.javafx.application=ALL-UNNAMED
|
||||
--add-opens=javafx.graphics/com.sun.glass.ui=ALL-UNNAMED
|
||||
</argLine>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<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>
|
||||
<!--
|
||||
Coverage thresholds for the GUI adapter module.
|
||||
The JavaFX Application lifecycle (Application.launch, start(Stage), stop)
|
||||
is structurally untestable within the same JVM:
|
||||
Application.launch() is blocking and can only be called once per JVM,
|
||||
and start(Stage) requires the JavaFX runtime to supply application
|
||||
parameters (getParameters()), which is only available after launch().
|
||||
Monocle smoke tests cover Platform.startup() and node creation on the
|
||||
FX thread. Constructor coverage is verified by structural unit tests.
|
||||
Full application lifecycle coverage is provided by the executable-JAR
|
||||
integration test in pdf-umbenenner-bootstrap (ExecutableJarSmokeTestIT).
|
||||
The low threshold reflects this structural constraint and will remain
|
||||
until Application.launch-equivalent lifecycle testing is available.
|
||||
-->
|
||||
<rules>
|
||||
<rule>
|
||||
<element>BUNDLE</element>
|
||||
<limits>
|
||||
<limit>
|
||||
<counter>LINE</counter>
|
||||
<value>COVEREDRATIO</value>
|
||||
<minimum>0.10</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>
|
||||
<!--
|
||||
GUI adapter mutation thresholds are intentionally low: the JavaFX
|
||||
Application lifecycle requires a display or headless Monocle runtime
|
||||
which is introduced in a later work package. Once Monocle smoke tests
|
||||
are in place, these thresholds will be raised.
|
||||
-->
|
||||
<coverageThreshold>0</coverageThreshold>
|
||||
<mutationThreshold>0</mutationThreshold>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</project>
|
||||
Reference in New Issue
Block a user