<?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/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>de.cuioss.sheriff.oauth</groupId>
        <artifactId>benchmarking</artifactId>
        <version>0.7.0</version>
        <relativePath>../pom.xml</relativePath>
    </parent>

    <artifactId>benchmarking-common</artifactId>
    <name>OAuth Sheriff Benchmarking Common Infrastructure</name>
    <description>Common benchmarking infrastructure with JMH integration for artifact generation during benchmark execution</description>

    <properties>
        <maven.jar.plugin.automatic.module.name>de.cuioss.sheriff.oauth.benchmarking.common</maven.jar.plugin.automatic.module.name>
    </properties>

    <dependencies>
        <!-- JMH dependencies -->
        <dependency>
            <groupId>org.openjdk.jmh</groupId>
            <artifactId>jmh-core</artifactId>
        </dependency>
        <dependency>
            <groupId>org.openjdk.jmh</groupId>
            <artifactId>jmh-generator-annprocess</artifactId>
            <scope>provided</scope>
        </dependency>

        <!-- CUI dependencies -->
        <dependency>
            <groupId>de.cuioss</groupId>
            <artifactId>cui-java-tools</artifactId>
            <version>${version.cui.java.tools}</version>
        </dependency>

        <!-- Lombok for annotations -->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <scope>provided</scope>
        </dependency>

        <!-- Common dependencies -->
        <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
        </dependency>
        <dependency>
            <groupId>org.hdrhistogram</groupId>
            <artifactId>HdrHistogram</artifactId>
        </dependency>
        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
        </dependency>
        <!-- Test dependencies -->
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>de.cuioss.test</groupId>
            <artifactId>cui-test-mockwebserver-junit5</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>jakarta.servlet</groupId>
            <artifactId>jakarta.servlet-api</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.awaitility</groupId>
            <artifactId>awaitility</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <!-- Annotation processing for JMH -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <annotationProcessorPaths>
                        <path>
                            <groupId>org.openjdk.jmh</groupId>
                            <artifactId>jmh-generator-annprocess</artifactId>
                            <version>${version.jmh}</version>
                        </path>
                        <path>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok</artifactId>
                            <version>${lombok.version}</version>
                        </path>
                    </annotationProcessorPaths>
                    <release>21</release>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>