<?xml version="1.0" encoding="UTF-8"?>
<!--
  Copyright (C) 2018, Thomas Wolf <thomas.wolf@paranor.ch> and others

  This program and the accompanying materials are made available under the
  terms of the Eclipse Distribution License v. 1.0 which is available at
  http://www.eclipse.org/org/documents/edl-v10.php.

  SPDX-License-Identifier: BSD-3-Clause
-->

<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>org.eclipse.jgit</groupId>
    <artifactId>org.eclipse.jgit-parent</artifactId>
    <version>5.12.0.202105261145-m3</version>
  </parent>

  <artifactId>org.eclipse.jgit.ssh.apache</artifactId>
  <name>JGit - Apache sshd-based SSH support</name>

  <description>
    SSH support for JGit based on Apache MINA sshd
  </description>

  <properties>
    <translate-qualifier/>
    <source-bundle-manifest>${project.build.directory}/META-INF/SOURCE-MANIFEST.MF</source-bundle-manifest>
    <eddsa-version>0.3.0</eddsa-version>
  </properties>

  <dependencies>
    <dependency>
      <groupId>org.eclipse.jgit</groupId>
      <artifactId>org.eclipse.jgit</artifactId>
      <version>${project.version}</version>
    </dependency>

    <dependency>
      <groupId>org.apache.sshd</groupId>
      <artifactId>sshd-osgi</artifactId>
      <version>${apache-sshd-version}</version>
    </dependency>

    <dependency>
      <groupId>org.apache.sshd</groupId>
      <artifactId>sshd-sftp</artifactId>
      <version>${apache-sshd-version}</version>
    </dependency>

    <dependency>
      <groupId>net.i2p.crypto</groupId>
      <artifactId>eddsa</artifactId>
      <version>${eddsa-version}</version>
    </dependency>

    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-api</artifactId>
    </dependency>
  </dependencies>

  <build>
    <sourceDirectory>src/</sourceDirectory>

    <resources>
      <resource>
        <directory>.</directory>
        <includes>
          <include>plugin.properties</include>
          <include>about.html</include>
        </includes>
      </resource>
      <resource>
        <directory>resources/</directory>
      </resource>
    </resources>

    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-antrun-plugin</artifactId>
        <executions>
          <execution>
            <id>translate-source-qualifier</id>
            <phase>generate-resources</phase>
            <configuration>
              <target>
                <copy file="META-INF/SOURCE-MANIFEST.MF" tofile="${source-bundle-manifest}" overwrite="true" />
                <replace file="${source-bundle-manifest}">
                  <replacefilter token=".qualifier" value=".${maven.build.timestamp}" />
                </replace>
              </target>
            </configuration>
            <goals>
              <goal>run</goal>
            </goals>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-source-plugin</artifactId>
          <inherited>true</inherited>
          <executions>
            <execution>
              <id>attach-sources</id>
              <phase>process-classes</phase>
              <goals>
                <goal>jar</goal>
              </goals>
            <configuration>
              <archive>
                <manifestFile>${source-bundle-manifest}</manifestFile>
              </archive>
            </configuration>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <artifactId>maven-jar-plugin</artifactId>
        <configuration>
          <archive>
            <manifestFile>${bundle-manifest}</manifestFile>
          </archive>
        </configuration>
      </plugin>

      <plugin>
          <groupId>com.github.siom79.japicmp</groupId>
          <artifactId>japicmp-maven-plugin</artifactId>
          <version>${japicmp-version}</version>
          <configuration>
              <oldVersion>
                  <dependency>
                      <groupId>${project.groupId}</groupId>
                      <artifactId>${project.artifactId}</artifactId>
                      <version>${jgit-last-release-version}</version>
                  </dependency>
              </oldVersion>
              <newVersion>
                  <file>
                      <path>${project.build.directory}/${project.artifactId}-${project.version}.jar</path>
                  </file>
              </newVersion>
              <parameter>
                  <onlyModified>true</onlyModified>
                  <includes>
                      <include>org.eclipse.jgit.*</include>
                  </includes>
                  <accessModifier>public</accessModifier>
                  <breakBuildOnModifications>false</breakBuildOnModifications>
                  <breakBuildOnBinaryIncompatibleModifications>false</breakBuildOnBinaryIncompatibleModifications>
                  <onlyBinaryIncompatible>false</onlyBinaryIncompatible>
                  <includeSynthetic>false</includeSynthetic>
                  <ignoreMissingClasses>false</ignoreMissingClasses>
                  <skipPomModules>true</skipPomModules>
              </parameter>
              <skip>false</skip>
          </configuration>
          <executions>
            <execution>
             <phase>verify</phase>
             <goals>
               <goal>cmp</goal>
             </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>

  <reporting>
    <plugins>
      <plugin>
          <groupId>com.github.siom79.japicmp</groupId>
          <artifactId>japicmp-maven-plugin</artifactId>
          <version>${japicmp-version}</version>
          <reportSets>
              <reportSet>
                  <reports>
                      <report>cmp-report</report>
                  </reports>
              </reportSet>
          </reportSets>
          <configuration>
              <oldVersion>
                  <dependency>
                      <groupId>${project.groupId}</groupId>
                      <artifactId>${project.artifactId}</artifactId>
                      <version>${jgit-last-release-version}</version>
                  </dependency>
              </oldVersion>
              <newVersion>
                  <file>
                      <path>${project.build.directory}/${project.artifactId}-${project.version}.jar</path>
                  </file>
              </newVersion>
              <parameter>
                  <onlyModified>true</onlyModified>
                  <includes>
                      <include>org.eclipse.jgit.*</include>
                  </includes>
                  <accessModifier>public</accessModifier>
                  <breakBuildOnModifications>false</breakBuildOnModifications>
                  <breakBuildOnBinaryIncompatibleModifications>false</breakBuildOnBinaryIncompatibleModifications>
                  <onlyBinaryIncompatible>false</onlyBinaryIncompatible>
                  <includeSynthetic>false</includeSynthetic>
                  <ignoreMissingClasses>false</ignoreMissingClasses>
                  <skipPomModules>true</skipPomModules>
              </parameter>
              <skip>false</skip>
          </configuration>
      </plugin>
    </plugins>
  </reporting>
</project>
