<?xml version="1.0"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"
         xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <modelVersion>4.0.0</modelVersion>

    <parent>
        <groupId>org.jboss</groupId>
        <artifactId>jboss-parent</artifactId>
        <version>50</version>
    </parent>

    <groupId>org.wildfly.a2a</groupId>
    <artifactId>a2a-java-sdk-jakarta-parent</artifactId>
    <version>1.0.0.Alpha2</version>

    <packaging>pom</packaging>

    <name>WildFly Extras - Java A2A SDK for Jakarta Parent</name>
    <description>Java SDK for the Agent2Agent Protocol (A2A) - SDK - Jakarta - Parent</description>

    <url>https://github.com/wildfly-extras/a2a-java-sdk-jakarta</url>
    <licenses>
        <license>
            <name>The Apache License, Version 2.0</name>
            <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
        </license>
    </licenses>

    <developers>
        <developer>
            <id>a2a-java-sdk-jakarta</id>
            <name>The WildFly developers</name>
            <organization>wildfly-extras</organization>
            <organizationUrl>https://github.com/wildfly-extras/a2a-java-sdk-jakarta</organizationUrl>
        </developer>
    </developers>

    <scm>
        <connection>scm:git:git://github.com/wildfly-extras/a2a-java-sdk-jakarta.git</connection>
        <developerConnection>scm:git:ssh://github.com:wildfly-extras/a2a-java-sdk-jakarta.git</developerConnection>
        <url>https://github.com/wildfly-extras/a2a-java-sdk-jakarta</url>
    </scm>

    <properties>
        <jboss.home>${project.build.directory}${file.separator}wildfly</jboss.home>
        <version.wildfly>39.0.1.Final</version.wildfly>
        <version.sdk>1.0.0.Alpha2</version.sdk>

        <version.hamcrest>2.2</version.hamcrest>
        <version.junit>5.12.2</version.junit>
        <version.org.wildfly.arquillian>5.1.0.Beta11</version.org.wildfly.arquillian>
        <version.org.jboss.arquillian>1.10.0.Final</version.org.jboss.arquillian>
        <version.org.jboss.shrinkwrap.shrinkwrap>1.2.6</version.org.jboss.shrinkwrap.shrinkwrap>
        <version.org.jboss.arquillian.jakarta>10.0.0.Final</version.org.jboss.arquillian.jakarta>
        <version.shrinkwrap.resolvers>3.3.4</version.shrinkwrap.resolvers>
        <version.rest-assured>5.5.5</version.rest-assured>
        <version.wildfly.grpc>0.1.15.Final</version.wildfly.grpc>

        <jboss.home>${project.build.directory}${file.separator}wildfly</jboss.home>
        <arquillian.java.vm.args></arquillian.java.vm.args>
        <server.debug.port>8787</server.debug.port>

        <!-- maven-compiler-plugin settings -->
        <maven.compiler.release>17</maven.compiler.release>
        <maven.compiler.source>${maven.compiler.release}</maven.compiler.source>
        <maven.compiler.target>${maven.compiler.release}</maven.compiler.target>

        <!-- Redirect test output to file -->
        <maven.test.redirectTestOutputToFile>true</maven.test.redirectTestOutputToFile>

        <!--
            Configure the repositories on JBoss Nexus we want to push to
        -->
        <!-- Configure this one in settings.xml - it contains the tokens to deploy to nexus -->
        <nexus.serverId>jboss</nexus.serverId>
        <nexus.repository.release>wildfly-extras</nexus.repository.release>
        <nexus.repository.staging>wildfly-extras-staging</nexus.repository.staging>
        <nexus.staging.tag>a2a-java-sdk-jakarta-${project.version}</nexus.staging.tag>

        <!--
            URL of Maven repository to deploy to. There is a -Pstaging-deploy profile to push to a
            staging repository instead.
        -->
        <maven.repository.url>https://repository.jboss.org/nexus/repository/wildfly-extras/</maven.repository.url>

        <!-- Plugin versions, not managed by parent -->
        <version.plugin.wildfly-glow-arquillian>1.4.1.Final</version.plugin.wildfly-glow-arquillian>
        <version.plugin.wildfly-maven>5.1.3.Final</version.plugin.wildfly-maven>
    </properties>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.jboss.shrinkwrap</groupId>
                <artifactId>shrinkwrap-bom</artifactId>
                <version>${version.org.jboss.shrinkwrap.shrinkwrap}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>org.jboss.arquillian</groupId>
                <artifactId>arquillian-bom</artifactId>
                <version>${version.org.jboss.arquillian}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>org.wildfly.arquillian</groupId>
                <artifactId>wildfly-arquillian-bom</artifactId>
                <version>${version.org.wildfly.arquillian}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>org.wildfly</groupId>
                <artifactId>wildfly-standard-ee-bom</artifactId>
                <version>${version.wildfly}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>io.github.a2asdk</groupId>
                <artifactId>a2a-java-sdk-bom</artifactId>
                <version>${version.sdk}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>io.github.a2asdk</groupId>
                <artifactId>a2a-tck-server</artifactId>
                <version>${version.sdk}</version>
            </dependency>
            <dependency>
                <groupId>io.rest-assured</groupId>
                <artifactId>rest-assured</artifactId>
                <version>${version.rest-assured}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.junit.jupiter</groupId>
                <artifactId>junit-jupiter</artifactId>
                <version>${version.junit}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.hamcrest</groupId>
                <artifactId>hamcrest</artifactId>
                <version>${version.hamcrest}</version>
                <scope>test</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
    <build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.wildfly.glow</groupId>
                    <artifactId>wildfly-glow-arquillian-plugin</artifactId>
                    <version>${version.plugin.wildfly-glow-arquillian}</version>
                </plugin>
                <plugin>
                    <groupId>org.wildfly.plugins</groupId>
                    <artifactId>wildfly-maven-plugin</artifactId>
                    <version>${version.plugin.wildfly-maven}</version>
                </plugin>
                <!-- The maven-xxx-plugin versions are managed by the parent -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <configuration>
                        <systemPropertyVariables>
                            <jboss.home>${jboss.home}</jboss.home>
                            <arquillian.xml>arquillian.xml</arquillian.xml>
                            <arquillian.java.vm.args>${arquillian.java.vm.args}</arquillian.java.vm.args>
                        </systemPropertyVariables>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-source-plugin</artifactId>
                    <executions>
                        <execution>
                            <id>attach-sources</id>
                            <goals>
                                <goal>jar-no-fork</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-javadoc-plugin</artifactId>
                    <executions>
                        <execution>
                            <id>attach-javadocs</id>
                            <goals>
                                <goal>jar</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-gpg-plugin</artifactId>
                    <executions>
                        <execution>
                            <id>sign-artifacts</id>
                            <phase>verify</phase>
                            <goals>
                                <goal>sign</goal>
                            </goals>
                            </execution>
                    </executions>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>
    <modules>
        <module>examples</module>
        <module>impl/jsonrpc</module>
        <module>impl/grpc</module>
        <module>impl/rest</module>
        <module>tck</module>
        <module>tests</module>
    </modules>
    <profiles>
        <profile>
            <id>debug.profile</id>
            <activation><property><name>debug</name></property></activation>
            <properties>
                <arquillian.java.vm.args>-agentlib:jdwp=transport=dt_socket,address=*:${server.debug.port},server=y,suspend=y</arquillian.java.vm.args>
            </properties>
        </profile>
        <profile>
            <!-- Do a "dry run" by deploying to the staging repository -->
            <id>staging-deploy</id>
            <properties>
                <maven.repository.url>https://repository.jboss.org/nexus/repository/wildfly-extras-staging/</maven.repository.url>
            </properties>
        </profile>
    </profiles>

</project>
