<?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/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <parent>
    <groupId>org.apache.maven</groupId>
    <artifactId>maven-parent</artifactId>
    <version>34</version>
  </parent>

  <groupId>org.apache.maven.resolver</groupId>
  <artifactId>maven-resolver</artifactId>
  <version>1.6.2-SNAPSHOT</version>
  <packaging>pom</packaging>

  <name>Maven Artifact Resolver</name>
  <description>
    The parent and aggregator for the repository system.
  </description>
  <url>https://maven.apache.org/resolver/</url>
  <inceptionYear>2010</inceptionYear>

  <contributors>
    <contributor>
      <name>Matej Cimbora</name>
    </contributor>
  </contributors>

  <scm>
    <connection>scm:git:https://gitbox.apache.org/repos/asf/maven-resolver.git</connection>
    <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/maven-resolver.git</developerConnection>
    <url>https://github.com/apache/maven-resolver/tree/${project.scm.tag}</url>
    <tag>master</tag>
  </scm>
  <issueManagement>
    <system>jira</system>
    <url>https://issues.apache.org/jira/browse/MRESOLVER</url>
  </issueManagement>
  <ciManagement>
    <system>Jenkins</system>
    <url>https://ci-builds.apache.org/job/Maven/job/maven-box/job/maven-resolver/</url>
  </ciManagement>
  <distributionManagement>
    <site>
      <id>apache.website</id>
      <url>scm:svn:https://svn.apache.org/repos/asf/maven/website/components/${maven.site.path}</url>
    </site>
  </distributionManagement>

  <properties>
    <javaVersion>7</javaVersion>
    <surefire.redirectTestOutputToFile>true</surefire.redirectTestOutputToFile>
    <maven.site.path>resolver-archives/resolver-LATEST</maven.site.path>
    <checkstyle.violation.ignore>None</checkstyle.violation.ignore>
    <sisuVersion>0.3.4</sisuVersion>
    <slf4jVersion>1.7.30</slf4jVersion>
    <project.build.outputTimestamp>2020-10-02T18:05:13Z</project.build.outputTimestamp>
  </properties>

  <modules>
    <!-- NOTE: Be sure to update the bin assembly descriptor as well if the module list changes -->
    <module>maven-resolver-api</module>
    <module>maven-resolver-spi</module>
    <module>maven-resolver-util</module>
    <module>maven-resolver-impl</module>
    <module>maven-resolver-test-util</module>
    <module>maven-resolver-connector-basic</module>
    <module>maven-resolver-transport-classpath</module>
    <module>maven-resolver-transport-file</module>
    <module>maven-resolver-transport-http</module>
    <module>maven-resolver-transport-wagon</module>
    <module>maven-resolver-demos</module>
  </modules>

  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>org.apache.maven.resolver</groupId>
        <artifactId>maven-resolver-api</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.maven.resolver</groupId>
        <artifactId>maven-resolver-spi</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.maven.resolver</groupId>
        <artifactId>maven-resolver-util</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.maven.resolver</groupId>
        <artifactId>maven-resolver-impl</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.maven.resolver</groupId>
        <artifactId>maven-resolver-connector-basic</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.maven.resolver</groupId>
        <artifactId>maven-resolver-transport-classpath</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.maven.resolver</groupId>
        <artifactId>maven-resolver-transport-file</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.maven.resolver</groupId>
        <artifactId>maven-resolver-transport-http</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.maven.resolver</groupId>
        <artifactId>maven-resolver-transport-wagon</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.maven.resolver</groupId>
        <artifactId>maven-resolver-test-util</artifactId>
        <version>${project.version}</version>
        <scope>test</scope>
      </dependency>

      <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.13</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.hamcrest</groupId>
        <artifactId>hamcrest-core</artifactId>
        <version>2.2</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.mockito</groupId>
        <artifactId>mockito-core</artifactId>
        <version>2.28.2</version>
        <scope>test</scope>
      </dependency>

      <dependency>
        <groupId>javax.inject</groupId>
        <artifactId>javax.inject</artifactId>
        <version>1</version>
        <scope>provided</scope>
      </dependency>

      <dependency>
        <groupId>org.eclipse.sisu</groupId>
        <artifactId>org.eclipse.sisu.inject</artifactId>
        <version>${sisuVersion}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.sisu</groupId>
        <artifactId>org.eclipse.sisu.plexus</artifactId>
        <version>${sisuVersion}</version>
        <exclusions>
          <exclusion>
            <groupId>javax.enterprise</groupId>
            <artifactId>cdi-api</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.sonatype.sisu</groupId>
        <artifactId>sisu-guice</artifactId>
        <version>3.2.6</version>
        <classifier>no_aop</classifier>
        <exclusions>
          <exclusion>
            <groupId>aopalliance</groupId>
            <artifactId>aopalliance</artifactId>
          </exclusion>
          <exclusion>
            <groupId>com.google.code.findbugs</groupId>
            <artifactId>jsr305</artifactId>
          </exclusion>
        </exclusions>
      </dependency>

      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>${slf4jVersion}</version>
      </dependency>
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-simple</artifactId>
        <version>${slf4jVersion}</version>
        <scope>test</scope>
      </dependency>
    </dependencies>
  </dependencyManagement>

  <build>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-javadoc-plugin</artifactId>
          <configuration>
            <detectOfflineLinks>false</detectOfflineLinks>
            <linksource>true</linksource>
            <notimestamp>true</notimestamp>
            <links>
              <link>https://download.oracle.com/javase/${javaVersion}/docs/api/</link>
            </links>
            <tags>
              <tag>
                <name>noextend</name>
                <placement>a</placement>
                <head>Restriction:</head>
              </tag>
              <tag>
                <name>noimplement</name>
                <placement>a</placement>
                <head>Restriction:</head>
              </tag>
              <tag>
                <name>noinstantiate</name>
                <placement>a</placement>
                <head>Restriction:</head>
              </tag>
              <tag>
                <name>nooverride</name>
                <placement>a</placement>
                <head>Restriction:</head>
              </tag>
              <tag>
                <name>noreference</name>
                <placement>a</placement>
                <head>Restriction:</head>
              </tag>
              <tag>
                <name>provisional</name>
                <placement>a</placement>
                <head>Provisional:</head>
              </tag>
            </tags>
            <groups>
              <group>
                <title>API</title>
                <packages>org.eclipse.aether*</packages>
              </group>
              <group>
                <title>SPI</title>
                <packages>org.eclipse.aether.spi*</packages>
              </group>
              <group>
                <title>Utilities</title>
                <packages>org.eclipse.aether.util*</packages>
              </group>
              <group>
                <title>Repository Connectors</title>
                <packages>org.eclipse.aether.connector*</packages>
              </group>
              <group>
                <title>Transporters</title>
                <packages>org.eclipse.aether.transport*</packages>
              </group>
              <group>
                <title>Implementation</title>
                <packages>org.eclipse.aether.impl*</packages>
              </group>
              <group>
                <title>Demo Maven Plugin</title>
                <packages>org.apache.maven.resolver.examples.maven*</packages>
              </group>
              <group>
                <title>Demo Snippets</title>
                <packages>org.apache.maven.resolver.examples*</packages>
              </group>
              <group>
                <title>Internals</title>
                <packages>org.eclipse.aether.internal*</packages>
              </group>
            </groups>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-release-plugin</artifactId>
          <configuration>
            <autoVersionSubmodules>true</autoVersionSubmodules>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-surefire-plugin</artifactId>
          <configuration>
            <argLine>-Xmx128m</argLine>
            <redirectTestOutputToFile>${surefire.redirectTestOutputToFile}</redirectTestOutputToFile>
            <systemPropertyVariables>
              <java.io.tmpdir>${project.build.directory}/surefire-tmp</java.io.tmpdir>
            </systemPropertyVariables>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.eclipse.sisu</groupId>
          <artifactId>sisu-maven-plugin</artifactId>
          <version>${sisuVersion}</version>
          <executions>
            <execution>
              <id>generate-index</id>
              <phase>process-classes</phase>
              <goals>
                <goal>main-index</goal>
              </goals>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <groupId>org.apache.rat</groupId>
          <artifactId>apache-rat-plugin</artifactId>
          <configuration>
            <excludes combine.children="append">
              <exclude>src/test/resources/**/*.ini</exclude>
              <exclude>src/test/resources/**/*.txt</exclude>
              <exclude>src/test/resources/ssl/*-store</exclude>
              <exclude>.travis.yml</exclude>
            </excludes>
          </configuration>
        </plugin>
        <plugin>
          <groupId>biz.aQute.bnd</groupId>
          <artifactId>bnd-maven-plugin</artifactId>
          <version>5.1.2</version>
          <executions>
            <execution>
              <id>bnd-process</id>
              <goals>
                <goal>bnd-process</goal>
              </goals>
              <configuration>
                <bnd>
                  Bundle-SymbolicName: ${Bundle-SymbolicName}
                  # Export packages not containing the substring 'internal'
                  -exportcontents: ${removeall;${packages};${packages;NAMED;*internal*}}
                  # Reproducible build
                  -noextraheaders: true
                </bnd>
              </configuration>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-jar-plugin</artifactId>
          <configuration>
            <archive>
              <manifestEntries>
                <Automatic-Module-Name>${Automatic-Module-Name}</Automatic-Module-Name>
              </manifestEntries>
            </archive>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-enforcer-plugin</artifactId>
          <version>3.0.0-M3</version>
        </plugin>
      </plugins>
    </pluginManagement>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-enforcer-plugin</artifactId>
        <executions>
          <execution>
            <id>enforce-minimum-java-version</id>
            <goals>
              <goal>enforce</goal>
            </goals>
            <configuration>
              <rules>
                <requireJavaVersion>
                  <version>1.8.0</version>
                  <message>bnd-maven-plugin requires at least Java 8 to run</message>
                </requireJavaVersion>
              </rules>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>

  <profiles>
    <profile>
      <id>clirr</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>clirr-maven-plugin</artifactId>
            <executions>
              <execution>
                <id>check-api-compat</id>
                <phase>verify</phase>
                <goals>
                  <goal>check-no-fork</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>reporting</id>
      <reporting>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-javadoc-plugin</artifactId>
            <reportSets>
              <reportSet>
                <id>aggregate</id>
                <inherited>false</inherited>
                <reports>
                  <report>aggregate</report>
                </reports>
              </reportSet>
            </reportSets>
          </plugin>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jxr-plugin</artifactId>
            <reportSets>
              <reportSet>
                <id>aggregate</id>
                <inherited>false</inherited>
                <reports>
                  <report>aggregate</report>
                </reports>
              </reportSet>
            </reportSets>
          </plugin>
        </plugins>
      </reporting>
    </profile>
    <profile>
      <id>m2e</id>
      <activation>
        <property>
          <name>m2e.version</name>
        </property>
      </activation>
      <build>
        <pluginManagement>
          <plugins>
            <plugin>
              <groupId>org.eclipse.m2e</groupId>
              <artifactId>lifecycle-mapping</artifactId>
              <version>1.0.0</version>
              <configuration>
                <lifecycleMappingMetadata>
                  <pluginExecutions>
                    <pluginExecution>
                      <pluginExecutionFilter>
                        <groupId>org.eclipse.sisu</groupId>
                        <artifactId>sisu-maven-plugin</artifactId>
                        <versionRange>[${sisuVersion},)</versionRange>
                        <goals>
                          <goal>test-index</goal>
                          <goal>main-index</goal>
                        </goals>
                      </pluginExecutionFilter>
                      <action>
                        <ignore />
                      </action>
                    </pluginExecution>
                  </pluginExecutions>
                </lifecycleMappingMetadata>
              </configuration>
            </plugin>
          </plugins>
        </pluginManagement>
      </build>
    </profile>
    <profile>
      <id>apache-release</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-enforcer-plugin</artifactId>
            <executions>
              <execution>
                <id>enforce-java</id>
                <goals>
                  <goal>enforce</goal>
                </goals>
                <configuration>
                  <rules>
                    <requireJavaVersion>
                      <version>(,9)</version>
                      <message>Release with Java 7 or 8 due to changed signatures of java.nio.ByteBuffer (MRESOLVER-67)</message>
                    </requireJavaVersion>
                  </rules>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>java8-modules</id>
      <activation>
        <jdk>[1.8,)</jdk>
      </activation>
      <modules>
        <module>maven-resolver-synccontext-global</module>
        <module>maven-resolver-synccontext-redisson</module>
      </modules>
    </profile>
  </profiles>
</project>
