<?xml version="1.0" encoding="UTF-8"?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

  http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->
<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">
  <description>Proton is a library for speaking AMQP.</description>
  <parent>
    <groupId>org.apache</groupId>
    <artifactId>apache</artifactId>
    <version>23</version>
  </parent>
  <modelVersion>4.0.0</modelVersion>

  <groupId>org.apache.qpid</groupId>
  <artifactId>proton-j-parent</artifactId>
  <version>0.33.7</version>
  <packaging>pom</packaging>

  <name>Proton-J Parent</name>

  <properties>
    <!-- Test dependency versions -->
    <junit-version>4.13.1</junit-version>
    <mockito-version>2.23.4</mockito-version>
    <jython-version>2.7.1</jython-version>

    <!-- Plugin versions -->
    <maven-bundle-plugin-version>5.1.1</maven-bundle-plugin-version>
    <jacoco-plugin-version>0.8.6</jacoco-plugin-version>
    <surefire.version>2.22.2</surefire.version>

    <!-- See also maven.compiler.release in the java9on profile -->
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>

    <!-- surefire forked jvm arguments -->
    <argLine>-Xmx2g -enableassertions ${jacoco-config}</argLine>
  </properties>

  <dependencyManagement>
    <dependencies>
      <!-- Internal module dependencies -->
      <dependency>
        <groupId>org.apache.qpid</groupId>
        <artifactId>proton-j</artifactId>
        <version>${project.version}</version>
      </dependency>
      <!-- Test dependencies -->
      <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>${junit-version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.mockito</groupId>
        <artifactId>mockito-core</artifactId>
        <version>${mockito-version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.python</groupId>
        <artifactId>jython-standalone</artifactId>
        <version>${jython-version}</version>
      <scope>test</scope>
      </dependency>
    </dependencies>
  </dependencyManagement>

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <optimize>true</optimize>
          <showDeprecation>true</showDeprecation>
          <showWarnings>true</showWarnings>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.felix</groupId>
        <artifactId>maven-bundle-plugin</artifactId>
        <version>${maven-bundle-plugin-version}</version>
        <extensions>true</extensions>
        <configuration>
          <instructions>
            <Export-Package>${project.groupId}.proton.*</Export-Package>
          </instructions>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.rat</groupId>
        <artifactId>apache-rat-plugin</artifactId>
        <configuration>
          <excludes combine.children="append">
            <exclude>appveyor.yml</exclude>
            <exclude>.travis.yml</exclude>
            <exclude>.github/workflows/*.yml</exclude>
            <exclude>.mailmap</exclude>
            <exclude>**/*.md</exclude>
            <exclude>**/*.pkcs12</exclude>
            <exclude>**/*.p12</exclude>
            <exclude>**/*.pem</exclude>
            <exclude>**/*.pem.txt</exclude>
            <exclude>**/*.crt</exclude>
            <exclude>**/*.csr</exclude>
            <exclude>**/*.keystore</exclude>
            <exclude>**/*.truststore</exclude>
          </excludes>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.jacoco</groupId>
        <artifactId>jacoco-maven-plugin</artifactId>
        <executions>
          <execution>
            <goals>
              <goal>prepare-agent</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <propertyName>jacoco-config</propertyName>
        </configuration>
      </plugin>
    </plugins>
    <pluginManagement>
      <plugins>
        <!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
        <plugin>
          <groupId>org.eclipse.m2e</groupId>
          <artifactId>lifecycle-mapping</artifactId>
          <version>1.0.0</version>
          <configuration>
            <lifecycleMappingMetadata>
              <pluginExecutions>
                <pluginExecution>
                  <pluginExecutionFilter>
                    <groupId>org.apache.felix</groupId>
                    <artifactId>maven-bundle-plugin</artifactId>
                    <versionRange>[2.4.0,)</versionRange>
                    <goals>
                      <goal>manifest</goal>
                    </goals>
                  </pluginExecutionFilter>
                  <action>
                    <ignore />
                  </action>
                </pluginExecution>
              </pluginExecutions>
            </lifecycleMappingMetadata>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-release-plugin</artifactId>
          <configuration>
            <autoVersionSubmodules>true</autoVersionSubmodules>
            <tagNameFormat>@{project.version}</tagNameFormat>
            <arguments>-Papache-release -Dperform-release-checks=true ${arguments}</arguments>
            <pushChanges>true</pushChanges>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.jacoco</groupId>
          <artifactId>jacoco-maven-plugin</artifactId>
          <version>${jacoco-plugin-version}</version>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>

  <modules>
    <module>proton-j</module>
    <module>tests</module>
    <module>examples/engine</module>
    <module>examples/reactor</module>
    <module>apache-qpid-proton-j</module>
  </modules>

  <url>https://qpid.apache.org/proton</url>
  <scm>
    <connection>scm:git:https://gitbox.apache.org/repos/asf/qpid-proton-j.git</connection>
    <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/qpid-proton-j.git</developerConnection>
    <url>https://gitbox.apache.org/repos/asf?p=qpid-proton-j.git</url>
    <tag>0.33.7</tag>
  </scm>
  <issueManagement>
    <url>https://issues.apache.org/jira/browse/PROTON</url>
    <system>JIRA</system>
  </issueManagement>
  <ciManagement>
    <url>https://builds.apache.org/view/M-R/view/Qpid/job/Qpid-proton-j/</url>
  </ciManagement>

  <reporting>
    <plugins>
      <plugin>
        <groupId>org.jacoco</groupId>
        <artifactId>jacoco-maven-plugin</artifactId>
        <version>${jacoco-plugin-version}</version>
      </plugin>
    </plugins>
  </reporting>

  <profiles>
    <!-- Override the apache-release profile from the parent pom -->
    <profile>
      <id>apache-release</id>
      <build>
        <plugins>
          <plugin>
            <!-- Skip creating a source release here, as we
                 have a release module that does it.  -->
            <artifactId>maven-assembly-plugin</artifactId>
            <executions>
              <execution>
                <id>source-release-assembly</id>
                <configuration>
                  <skipAssembly>true</skipAssembly>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
      <!-- Enable the optional performance-jmh module too, so that it gets
           the version updated by the maven-release-plugin during release.
           The module is configured not to deploy anything. -->
      <modules>
        <module>tests/performance-jmh</module>
      </modules>
    </profile>

    <profile>
      <id>performance-jmh</id>
      <modules>
        <module>tests/performance-jmh</module>
      </modules>
    </profile>

    <profile>
      <id>sources</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-source-plugin</artifactId>
            <executions>
              <execution>
                <id>attach-sources</id>
                <goals>
                  <goal>jar</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>

    <profile>
      <id>java9on</id>
      <activation>
        <jdk>[9,)</jdk>
      </activation>
      <properties>
        <maven.compiler.release>8</maven.compiler.release>
      </properties>
    </profile>
  </profiles>
</project>
