<?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>

    <artifactId>rest.vertx</artifactId>
    <groupId>com.zandero</groupId>
    <version>1.0.5</version>
    <packaging>jar</packaging>

    <name>Zandero REST Vert.X</name>
    <description>JAX-RS REST annotation processor for vert.x verticles</description>
    <url>http://www.zandero.com</url>
    <inceptionYear>2017</inceptionYear>

    <licenses>
        <license>
            <name>Apache License, Version 2.0</name>
            <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
            <distribution>repo</distribution>
        </license>
    </licenses>

    <scm>
        <url>https://github.com/Zandero/rest.vertx</url>
        <connection>scm:git:git://github.com/Zandero/rest.vertx.git</connection>
        <developerConnection>scm:git:git@github.com/Zandero/rest.vertx.git</developerConnection>
    </scm>

    <developers>
        <developer>
            <name>Andrej Završnik</name>
            <email>andrej@zavrsnik.si</email>
            <id>drejc</id>
        </developer>
    </developers>

    <properties>

        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
        <project.encoding>UTF-8</project.encoding>
        <project.build.sourceEncoding>${project.encoding}</project.build.sourceEncoding>

        <timestamp>${maven.build.timestamp}</timestamp>
        <maven.build.timestamp.format>yyyy-MM-dd HH:mm</maven.build.timestamp.format>

        <version.java.annotation>1.3.2</version.java.annotation>
        <version.java.rs>2.1.1</version.java.rs>
        <version.javax.inject>1</version.javax.inject>
        <version.java.validation>2.0.1.Final</version.java.validation>

        <version.zandero.utils>[1.2.8,)</version.zandero.utils>
        <version.zandero.utils.extra>[1.3.3,)</version.zandero.utils.extra>

        <version.zandero.http>[1.2.4,)</version.zandero.http>
        <version.zandero.utils.junit>[1.0.1,)</version.zandero.utils.junit>

        <version.vertx>4.0.2</version.vertx>
        <version.servlet-api>4.0.1</version.servlet-api>

        <!-- logging -->
        <version.slf4j-api>2.0.0-alpha1</version.slf4j-api>

        <!-- testing -->
        <version.logback>[1.1.7,)</version.logback>
        <version.junit>[5.6.0,)</version.junit>
        <version.mockito-all>[1.10.19,)</version.mockito-all>
        <version.jetty>[9.3.7.v20160115,)</version.jetty>

        <version.guice>5.0.1</version.guice>
        <version.feather>1.0</version.feather>

        <!-- implementation of javax.rs Response -->
        <version.glassfish>2.32</version.glassfish>

        <!-- implementation of javax.validation -->
        <version.hibernate.validation>6.1.6.Final</version.hibernate.validation>
        <version.java.validation.el>3.0.0</version.java.validation.el>
    </properties>

    <dependencies>

        <!-- Zandero / internal -->
        <dependency>
            <groupId>com.zandero</groupId>
            <artifactId>utils</artifactId>
            <version>${version.zandero.utils}</version>
        </dependency>

        <dependency>
            <groupId>com.zandero</groupId>
            <artifactId>utils.extra</artifactId>
            <version>${version.zandero.utils.extra}</version>
           <!-- <exclusions>
                <exclusion> &lt;!&ndash; exclude as it is already provided by vert.x &ndash;&gt;
                    <groupId>com.fasterxml.jackson.core</groupId>
                    <artifactId>jackson-databind</artifactId>
                </exclusion>
            </exclusions>-->
        </dependency>

        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-core</artifactId>
            <version>2.12.2</version>
        </dependency>

        <dependency>
            <groupId>io.vertx</groupId>
            <artifactId>vertx-core</artifactId>
            <version>${version.vertx}</version>
        </dependency>

        <dependency>
            <groupId>io.vertx</groupId>
            <artifactId>vertx-web</artifactId>
            <version>${version.vertx}</version>
        </dependency>

        <dependency>
            <groupId>javax.ws.rs</groupId>
            <artifactId>javax.ws.rs-api</artifactId>
            <version>${version.java.rs}</version>
        </dependency>

        <dependency>
            <groupId>javax.annotation</groupId>
            <artifactId>javax.annotation-api</artifactId>
            <version>${version.java.annotation}</version>
        </dependency>

        <dependency>
            <groupId>javax.inject</groupId>
            <artifactId>javax.inject</artifactId>
            <version>${version.javax.inject}</version>
        </dependency>

        <dependency>
            <groupId>javax.validation</groupId>
            <artifactId>validation-api</artifactId>
            <version>${version.java.validation}</version>
        </dependency>

        <!-- LOGGER -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>${version.slf4j-api}</version>
        </dependency>
        <!-- END OF LOGGER -->

        <!--Testing stuff bellow-->
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-engine</artifactId>
            <version>${version.junit}</version>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-api</artifactId>
            <version>${version.junit}</version>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>io.vertx</groupId>
            <artifactId>vertx-junit5</artifactId>
            <version>${version.vertx}</version>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>io.vertx</groupId>
            <artifactId>vertx-web-client</artifactId>
            <version>${version.vertx}</version>
            <scope>test</scope>
        </dependency>

        <!-- logger for testing only -->
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>${version.logback}</version>
            <scope>test</scope>
        </dependency>

        <!-- Response and ResponseBuilder implementation -->
        <!-- include this dependency if you need a Response API implementation -->
        <dependency>
            <groupId>org.glassfish.jersey.core</groupId>
            <artifactId>jersey-common</artifactId>
            <version>${version.glassfish}</version>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>com.zandero</groupId>
            <artifactId>http</artifactId>
            <version>${version.zandero.http}</version>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>com.zandero</groupId>
            <artifactId>utils.junit</artifactId>
            <version>${version.zandero.utils.junit}</version>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.mockito</groupId>
            <artifactId>mockito-all</artifactId>
            <version>${version.mockito-all}</version>
            <scope>test</scope>
        </dependency>

        <!-- Dependency injection frameworks ... to test injection providers -->
        <dependency>
            <groupId>com.google.inject</groupId>
            <artifactId>guice</artifactId>
            <version>${version.guice}</version>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.codejargon.feather</groupId>
            <artifactId>feather</artifactId>
            <version>${version.feather}</version>
            <scope>test</scope>
        </dependency>

        <!-- https://mvnrepository.com/artifact/org.hibernate.validator/hibernate-validator -->
        <dependency>
            <groupId>org.hibernate.validator</groupId>
            <artifactId>hibernate-validator</artifactId>
            <version>${version.hibernate.validation}</version>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.glassfish</groupId>
            <artifactId>javax.el</artifactId>
            <version>${version.java.validation.el}</version>
            <scope>test</scope>
        </dependency>

    </dependencies>


    <distributionManagement>
        <!-- Repository for snapshots -->
        <snapshotRepository>
            <id>nexus-snapshots</id>
            <url>https://oss.sonatype.org/content/repositories/snapshots</url>
        </snapshotRepository>

        <!-- Repository for releases -->
        <!--        <repository>
                    <id>nexus-releases</id>
                    <name>Nexus Release Repository</name>
                    <url>http://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
                </repository>-->
    </distributionManagement>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
                <configuration>
                    <encoding>UTF-8</encoding>
                    <source>${maven.compiler.source}</source>
                    <target>${maven.compiler.target}</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.22.2</version>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-failsafe-plugin</artifactId>
                <version>2.22.2</version>
            </plugin>
            <plugin>
                <groupId>org.sonatype.plugins</groupId>
                <artifactId>nexus-staging-maven-plugin</artifactId>
                <version>1.6.8</version>
                <extensions>true</extensions>
                <configuration>
                    <!-- for production deployment -->
                    <serverId>ossrh</serverId>
                    <nexusUrl>https://oss.sonatype.org/</nexusUrl>
                    <!-- end for production deployment -->
                    <!-- for local deployment -->
                    <!-- <serverId>local_deployment</serverId> -->
                    <!-- end of for local deployment -->
                    <autoReleaseAfterClose>true</autoReleaseAfterClose>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-source-plugin</artifactId>
                <version>3.2.1</version>
                <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>
                <version>3.2.0</version>
                <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>
                <version>1.6</version>
                <executions>
                    <execution>
                        <id>sign-artifacts</id>
                        <phase>verify</phase>
                        <goals>
                            <goal>sign</goal>
                        </goals>
                        <configuration>
                            <keyname>Zandero</keyname>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

        </plugins>
    </build>

</project>