<?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">
    <parent>
        <artifactId>qase-java</artifactId>
        <groupId>io.qase</groupId>
        <version>4.1.16</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>qase-api-client</artifactId>
    <name>Qase TMS Java API Client</name>
    <description>Qase TMS APIs Client Library for Java</description>

    <properties>
        <java.version>1.8</java.version>
        <maven.compiler.source>${java.version}</maven.compiler.source>
        <maven.compiler.target>${java.version}</maven.compiler.target>
        <gson-fire-version>1.9.0</gson-fire-version>
        <okhttp-version>4.12.0</okhttp-version>
        <gson-version>2.10.1</gson-version>
        <commons-lang3-version>3.18.0</commons-lang3-version>
        <jackson-databind-nullable-version>0.2.6</jackson-databind-nullable-version>
        <jakarta-annotation-version>1.3.5</jakarta-annotation-version>
        <junit-version>5.10.0</junit-version>
        <junit-platform-runner.version>1.10.0</junit-platform-runner.version>
        <javax.ws.rs-api-version>2.1.1</javax.ws.rs-api-version>
        <jsr311-api-version>1.1.1</jsr311-api-version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <spotless.version>2.27.2</spotless.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>com.google.code.findbugs</groupId>
            <artifactId>jsr305</artifactId>
            <version>3.0.2</version>
        </dependency>
        <dependency>
            <groupId>com.squareup.okhttp3</groupId>
            <artifactId>okhttp</artifactId>
            <version>${okhttp-version}</version>
        </dependency>
        <dependency>
            <groupId>com.squareup.okhttp3</groupId>
            <artifactId>logging-interceptor</artifactId>
            <version>${okhttp-version}</version>
        </dependency>
        <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
            <version>${gson-version}</version>
        </dependency>
        <dependency>
            <groupId>io.gsonfire</groupId>
            <artifactId>gson-fire</artifactId>
            <version>${gson-fire-version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>${commons-lang3-version}</version>
        </dependency>
        <dependency>
            <groupId>jakarta.annotation</groupId>
            <artifactId>jakarta.annotation-api</artifactId>
            <version>${jakarta-annotation-version}</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.openapitools</groupId>
            <artifactId>jackson-databind-nullable</artifactId>
            <version>${jackson-databind-nullable-version}</version>
        </dependency>
        <dependency>
            <groupId>javax.ws.rs</groupId>
            <artifactId>jsr311-api</artifactId>
            <version>${jsr311-api-version}</version>
        </dependency>
        <dependency>
            <groupId>javax.ws.rs</groupId>
            <artifactId>javax.ws.rs-api</artifactId>
            <version>${javax.ws.rs-api-version}</version>
        </dependency>
    </dependencies>
    <profiles>
        <profile>
            <id>codegen</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.openapitools</groupId>
                        <artifactId>openapi-generator-maven-plugin</artifactId>
                        <version>6.2.1</version>
                        <executions>
                            <execution>
                                <goals>
                                    <goal>generate</goal>
                                </goals>
                                <configuration>
                                    <inputSpec>https://github.com/qase-tms/specs/raw/master/api.yaml</inputSpec>
                                    <generatorName>java</generatorName>
                                    <modelPackage>io.qase.client.model</modelPackage>
                                    <apiPackage>io.qase.client.api</apiPackage>
                                    <library>okhttp-gson</library>
                                    <httpUserAgent>Qase API Client</httpUserAgent>
                                    <generateModelTests>false</generateModelTests>
                                    <generateApiTests>false</generateApiTests>
                                    <templateDirectory>${project.basedir}/src/main/resources/templates
                                    </templateDirectory>
                                    <typeMappings>
                                        <typeMapping>LocalDateTime=String</typeMapping>
                                        <typeMapping>OneOfTestCaseDefectRunResultPlanRequirement=Object</typeMapping>
                                        <typeMapping>OneOfRunResultRequirementqqlTestCaseqqlDefectqqlPlan=Object
                                        </typeMapping>
                                        <typeMapping>AnyOfarrayobject=Object[]</typeMapping>
                                    </typeMappings>
                                    <configOptions>
                                        <useSwaggerAnnotations>false</useSwaggerAnnotations>
                                        <dateLibrary>java8-localdatetime</dateLibrary>
                                        <java8>true</java8>
                                        <sourceFolder>src/gen/java/main</sourceFolder>
                                    </configOptions>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>
</project>
