<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>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>3.5.16</version>
        <relativePath/>
    </parent>
    <groupId>com.aydin.enterprise.master7</groupId>
    <artifactId>otc-reference-application</artifactId>
    <version>1.0.0-SNAPSHOT</version>
    <name>OTC Reference Application</name>
    <description>Produktionsnahe Order-to-Cash-Referenz mit DDD, Outbox, Saga, PostgreSQL, Kafka und Observability.</description>
    <properties>
        <java.version>21</java.version>
        <testcontainers.version>1.21.3</testcontainers.version>
        <!-- Spring Boot 3.5.16 (aktuellste 3.5.x-Version) verwaltet tomcat-embed-core noch auf
             10.1.55 - CVE-2026-65182 (CRITICAL, Security-Constraint-Bypass) ist erst ab 10.1.58
             behoben. 10.1.58 wurde nie als Maven-Central-Artefakt veroeffentlicht (uebersprungen,
             ueblich bei Embargo-Fixes) - 10.1.59 ist die naechste tatsaechlich verfuegbare Version
             derselben 10.1.x-Linie und enthaelt den Fix kumulativ. Bewusst nicht auf die neue
             11.0.x-Linie gesprungen (gegen Spring Boot 3.5 nicht validiert). -->
        <tomcat.version>10.1.59</tomcat.version>
        <!-- CVE-2026-54291 (HIGH, SCRAM-SHA-256-PLUS-Downgrade im pgjdbc-Treiber) ist ab 42.7.12
             behoben. 42.7.13 ist die aktuell neueste verfuegbare 42.7.x-Version (enthaelt den
             Fix kumulativ), analog zur Tomcat-Strategie oben. -->
        <postgresql.version>42.7.13</postgresql.version>
    </properties>
    <dependencies>
        <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency>
        <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jpa</artifactId></dependency>
        <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-validation</artifactId></dependency>
        <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-security</artifactId></dependency>
        <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency>
        <dependency><groupId>org.springframework.kafka</groupId><artifactId>spring-kafka</artifactId></dependency>
        <dependency><groupId>org.flywaydb</groupId><artifactId>flyway-core</artifactId></dependency>
        <dependency><groupId>org.flywaydb</groupId><artifactId>flyway-database-postgresql</artifactId></dependency>
        <dependency><groupId>io.micrometer</groupId><artifactId>micrometer-registry-prometheus</artifactId></dependency>
        <dependency><groupId>org.postgresql</groupId><artifactId>postgresql</artifactId><scope>runtime</scope></dependency>
        <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency>
        <dependency><groupId>org.springframework.security</groupId><artifactId>spring-security-test</artifactId><scope>test</scope></dependency>
        <dependency><groupId>org.springframework.kafka</groupId><artifactId>spring-kafka-test</artifactId><scope>test</scope></dependency>
        <dependency><groupId>org.testcontainers</groupId><artifactId>junit-jupiter</artifactId><version>${testcontainers.version}</version><scope>test</scope></dependency>
        <dependency><groupId>org.testcontainers</groupId><artifactId>postgresql</artifactId><version>${testcontainers.version}</version><scope>test</scope></dependency>
        <dependency><groupId>org.testcontainers</groupId><artifactId>kafka</artifactId><version>${testcontainers.version}</version><scope>test</scope></dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId><artifactId>maven-failsafe-plugin</artifactId>
                <executions><execution><goals><goal>integration-test</goal><goal>verify</goal></goals></execution></executions>
            </plugin>
            <!-- spring-boot-starter-parent 3.5.x liefert cyclonedx-maven-plugin nur in
                 pluginManagement (Version/Execution/Config: makeAggregateBom, Output nach
                 target/classes/META-INF/sbom/application.cdx.json) - das aktiviert die
                 Ausfuehrung NICHT automatisch. Verifiziert per "mvn help:effective-pom":
                 der Eintrag liegt im <pluginManagement>-Block, nicht in <plugins>. Diese
                 leere Deklaration reicht, um die vererbte Konfiguration zu aktivieren,
                 ohne sie hier zu duplizieren. -->
            <plugin><groupId>org.cyclonedx</groupId><artifactId>cyclonedx-maven-plugin</artifactId></plugin>
        </plugins>
    </build>
</project>
