heisenberg-core
Used in:
components
- OverviewOverview
- VersionsVersions
- DependentsDependents
- DependenciesDependencies
<dependency>
<groupId>io.vidocq.heisenberg</groupId>
<artifactId>heisenberg-core</artifactId>
<version>0.1.1</version>
</dependency><?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>io.vidocq.heisenberg</groupId>
<artifactId>heisenberg-parent</artifactId>
<version>0.1.1</version>
</parent>
<artifactId>heisenberg-core</artifactId>
<name>Heisenberg :: Core</name>
<description>Moteurs de politiques Fault Tolerance purs Java 25 — RetryEngine, TimeoutEngine, CircuitBreakerEngine, BulkheadEngine, FallbackResolver, PolicyComposer</description>
<dependencies>
<dependency>
<groupId>io.vidocq.heisenberg</groupId>
<artifactId>heisenberg-api</artifactId>
</dependency>
<!-- Config externe via MicroProfile Config — version modularisée Ravel (named module, jlink-compatible) -->
<dependency>
<groupId>io.vidocq.ravel</groupId>
<artifactId>ravel-mp-config-api</artifactId>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<scope>test</scope>
</dependency>
<!-- Implémentation Config pour les tests (Ravel) -->
<dependency>
<groupId>io.vidocq.ravel</groupId>
<artifactId>ravel-core</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<!--
JPMS workaround heisenberg-core : même problème que cyrano-core.
microprofile-fault-tolerance-api et microprofile-config-api peuvent ne pas
avoir d'Automatic-Module-Name ; si module-info.class est dans target/classes,
Maven active JPMS pour testCompile et ne trouve pas ces modules sur le module-path.
Solution en trois temps :
1. module-info.java dans src/main/module-info/ (pas src/main/java/).
2. maven-clean-plugin supprime module-info.class avant testCompile.
3. maven-compiler-plugin recompile module-info.java seul à prepare-package.
Les tests s'exécutent sur le classpath (useModulePath=false).
-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-clean-plugin</artifactId>
<executions>
<execution>
<id>remove-module-info-before-testcompile</id>
<phase>generate-test-sources</phase>
<goals><goal>clean</goal></goals>
<configuration>
<excludeDefaultDirectories>true</excludeDefaultDirectories>
<filesets>
<fileset>
<directory>${project.build.outputDirectory}</directory>
<includes>
<include>module-info.class</include>
</includes>
</fileset>
</filesets>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<executions>
<execution>
<id>compile-module-info</id>
<phase>prepare-package</phase>
<goals><goal>compile</goal></goals>
<configuration>
<compileSourceRoots>
<compileSourceRoot>${project.basedir}/src/main/module-info</compileSourceRoot>
</compileSourceRoots>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<useModulePath>false</useModulePath>
</configuration>
</plugin>
</plugins>
</build>
</project>