<?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>45</version>
    <relativePath />
  </parent>

  <groupId>org.apache.maven.indexer</groupId>
  <artifactId>maven-indexer</artifactId>
  <version>7.1.7-SNAPSHOT</version>
  <packaging>pom</packaging>

  <name>Maven-Indexer</name>
  <description>Apache Maven Indexer (former Sonatype Nexus Indexer) is the defacto standard for producing indexes
    of Maven repositories. The Indexes are produced and consumed by all major tools in the ecosystem.</description>

  <url>https://maven.apache.org/maven-indexer/</url>

  <contributors>
    <contributor>
      <name>Thomas Kruse</name>
      <email>tk@trion.de</email>
      <organization>trion development GmbH</organization>
      <roles>
        <role>Developer</role>
      </roles>
      <timezone>+1</timezone>
    </contributor>
    <contributor>
      <name>Eugene Kuleshov</name>
      <email>eugene@sonatype.com</email>
      <organization>Sonatype</organization>
      <roles>
        <role>Developer</role>
      </roles>
      <timezone>-5</timezone>
    </contributor>
  </contributors>

  <modules>
    <module>indexer-core</module>
    <module>indexer-cli</module>
    <module>indexer-reader</module>
    <module>indexer-examples</module>
    <module>search-api</module>
    <module>search-backend-indexer</module>
    <module>search-backend-smo</module>
    <module>search-backend-remoterepository</module>
  </modules>

  <scm>
    <connection>scm:git:https://gitbox.apache.org/repos/asf/maven-indexer.git</connection>
    <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/maven-indexer.git</developerConnection>
    <tag>master</tag>
    <url>https://github.com/apache/maven-indexer/tree/${project.scm.tag}</url>
  </scm>

  <issueManagement>
    <system>GitHub Issues</system>
    <url>https://github.com/apache/maven-indexer/issues</url>
  </issueManagement>
  <ciManagement>
    <system>Jenkins</system>
    <url>https://ci-maven.apache.org/job/Maven/job/maven-box/job/maven-indexer/</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>
    <checkstyle.includeTestSourceDirectory>false</checkstyle.includeTestSourceDirectory>

    <javaVersion>11</javaVersion>
    <!-- Remove these two below when MPOM-449 fixed -->
    <maven.compiler.source>${javaVersion}</maven.compiler.source>
    <maven.compiler.target>${javaVersion}</maven.compiler.target>
    <maven.compiler.release>${javaVersion}</maven.compiler.release>
    <minimalMavenBuildVersion>[3.9,)</minimalMavenBuildVersion>
    <minimalJavaBuildVersion>[17,)</minimalJavaBuildVersion>

    <surefire.redirectTestOutputToFile>true</surefire.redirectTestOutputToFile>
    <failsafe.redirectTestOutputToFile>true</failsafe.redirectTestOutputToFile>
    <checkstyle.violation.ignore>MagicNumber,ParameterNumber,MethodLength,JavadocType,AvoidNestedBlocks,InterfaceIsType</checkstyle.violation.ignore>

    <eclipse-sisu.version>0.9.0.M4</eclipse-sisu.version>
    <guice.version>6.0.0</guice.version>
    <lucene.version>9.12.1</lucene.version>
    <maven.version>3.9.11</maven.version>
    <resolver.version>1.9.22</resolver.version>
    <archetype.version>3.4.0</archetype.version>
    <slf4j.version>1.7.36</slf4j.version>
    <maven.site.path>maven-indexer-archives/maven-indexer-LATEST</maven.site.path>
    <project.build.outputTimestamp>2025-05-30T19:49:18Z</project.build.outputTimestamp>
  </properties>

  <dependencyManagement>
    <dependencies>
      <!-- Reactor -->
      <dependency>
        <groupId>org.apache.maven.indexer</groupId>
        <artifactId>search-api</artifactId>
        <version>${project.version}</version>
      </dependency>

      <dependency>
        <groupId>org.apache.maven.indexer</groupId>
        <artifactId>indexer-core</artifactId>
        <version>${project.version}</version>
      </dependency>

      <!-- Dependencies -->
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>${slf4j.version}</version>
      </dependency>
      <dependency>
        <!-- This dependency is required in order to intercept Spring logging and handle it through Logback + SLF4J,
             as it would otherwise use commons-logging and do it's own other thing. -->
        <groupId>org.slf4j</groupId>
        <artifactId>jcl-over-slf4j</artifactId>
        <version>${slf4j.version}</version>
        <optional>true</optional>
      </dependency>

      <!-- DI -->
      <dependency>
        <groupId>javax.inject</groupId>
        <artifactId>javax.inject</artifactId>
        <version>1</version>
      </dependency>

      <dependency>
        <groupId>com.google.guava</groupId>
        <artifactId>guava</artifactId>
        <version>33.5.0-jre</version>
      </dependency>

      <dependency>
        <groupId>com.google.inject</groupId>
        <artifactId>guice</artifactId>
        <version>${guice.version}</version>
        <classifier>classes</classifier>
      </dependency>
      <dependency>
        <groupId>org.ow2.asm</groupId>
        <artifactId>asm</artifactId>
        <version>9.8</version>
      </dependency>

      <dependency>
        <groupId>org.eclipse.sisu</groupId>
        <artifactId>org.eclipse.sisu.inject</artifactId>
        <version>${eclipse-sisu.version}</version>
      </dependency>

      <!-- Lucene -->
      <dependency>
        <groupId>org.apache.lucene</groupId>
        <artifactId>lucene-core</artifactId>
        <version>${lucene.version}</version>
      </dependency>

      <dependency>
        <groupId>org.apache.lucene</groupId>
        <artifactId>lucene-queryparser</artifactId>
        <version>${lucene.version}</version>
      </dependency>

      <dependency>
        <groupId>org.apache.lucene</groupId>
        <artifactId>lucene-analysis-common</artifactId>
        <version>${lucene.version}</version>
      </dependency>

      <dependency>
        <groupId>org.apache.lucene</groupId>
        <artifactId>lucene-highlighter</artifactId>
        <version>${lucene.version}</version>
      </dependency>

      <!-- including old codecs to read central index -->
      <dependency>
        <groupId>org.apache.lucene</groupId>
        <artifactId>lucene-backward-codecs</artifactId>
        <version>${lucene.version}</version>
      </dependency>

      <!-- Maven Resolver -->
      <dependency>
        <groupId>org.apache.maven.resolver</groupId>
        <artifactId>maven-resolver-api</artifactId>
        <version>${resolver.version}</version>
      </dependency>

      <dependency>
        <groupId>org.apache.maven.resolver</groupId>
        <artifactId>maven-resolver-util</artifactId>
        <version>${resolver.version}</version>
      </dependency>

      <!-- Maven -->
      <dependency>
        <groupId>org.codehaus.plexus</groupId>
        <artifactId>plexus-utils</artifactId>
        <version>3.5.1</version>
      </dependency>
      <dependency>
        <groupId>org.apache.maven</groupId>
        <artifactId>maven-model</artifactId>
        <version>${maven.version}</version>
      </dependency>

      <!-- For org.apache.maven.archetype.source.ArchetypeDataSource helper -->
      <dependency>
        <groupId>org.apache.maven.archetype</groupId>
        <artifactId>archetype-catalog</artifactId>
        <version>${archetype.version}</version>
      </dependency>

      <!-- Test -->
      <dependency>
        <groupId>org.hamcrest</groupId>
        <artifactId>hamcrest</artifactId>
        <version>3.0</version>
        <scope>test</scope>
      </dependency>

      <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.13.2</version>
        <scope>test</scope>
        <exclusions>
          <exclusion>
            <groupId>org.hamcrest</groupId>
            <artifactId>hamcrest-core</artifactId>
          </exclusion>
        </exclusions>
      </dependency>

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

      <dependency>
        <groupId>org.jmock</groupId>
        <artifactId>jmock</artifactId>
        <version>2.13.1</version>
        <scope>test</scope>
        <exclusions>
          <exclusion>
            <groupId>org.hamcrest</groupId>
            <artifactId>hamcrest-library</artifactId>
          </exclusion>
        </exclusions>
      </dependency>

      <dependency>
        <groupId>org.eclipse.jetty</groupId>
        <artifactId>jetty-webapp</artifactId>
        <version>10.0.24</version>
        <scope>test</scope>
      </dependency>
    </dependencies>
  </dependencyManagement>

  <build>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-release-plugin</artifactId>
          <configuration>
            <tagNameFormat>maven-indexer-@{project.version}</tagNameFormat>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.gaul</groupId>
          <artifactId>modernizer-maven-plugin</artifactId>
          <version>3.2.0</version>
          <configuration>
            <javaVersion>${javaVersion}</javaVersion>
          </configuration>
          <executions>
            <execution>
              <id>modernizer</id>
              <goals>
                <goal>modernizer</goal>
              </goals>
              <phase>verify</phase>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-compiler-plugin</artifactId>
          <configuration>
            <release>${javaVersion}</release>
            <proc>none</proc>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-site-plugin</artifactId>
          <configuration>
            <topSiteURL>scm:svn:https://svn.apache.org/repos/asf/maven/website/components/${maven.site.path}</topSiteURL>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-javadoc-plugin</artifactId>
          <configuration>
            <doclint>none</doclint>
          </configuration>
        </plugin>
      </plugins>
    </pluginManagement>
    <plugins>
      <plugin>
        <groupId>org.eclipse.sisu</groupId>
        <artifactId>sisu-maven-plugin</artifactId>
      </plugin>
      <plugin>
        <groupId>org.gaul</groupId>
        <artifactId>modernizer-maven-plugin</artifactId>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <configuration>
          <redirectTestOutputToFile>${surefire.redirectTestOutputToFile}</redirectTestOutputToFile>
          <systemPropertyVariables>
            <java.io.tmpdir>${project.build.directory}</java.io.tmpdir>
          </systemPropertyVariables>
        </configuration>
      </plugin>

      <plugin>
        <groupId>org.apache.rat</groupId>
        <artifactId>apache-rat-plugin</artifactId>
        <executions>
          <execution>
            <id>rat-check</id>
            <goals>
              <goal>check</goal>
            </goals>
            <phase>validate</phase>
            <configuration>
              <excludes combine.children="append">
                <exclude>*.md</exclude>
                <exclude>.gitignore</exclude>
                <exclude>NOTICE</exclude>
                <exclude>**/packageinfo</exclude>
                <exclude>.git/**</exclude>
                <exclude>.idea/**</exclude>
                <exclude>**/*.iml</exclude>
                <exclude>nbactions.xml</exclude>
                <exclude>nb-configuration.xml</exclude>
                <!-- exlude some test resources from rat analysis -->
                <exclude>src/test/**/*.sha1</exclude>
                <exclude>src/test/**/*.md5</exclude>
                <exclude>src/test/**/*.xml</exclude>
                <exclude>src/test/**/*.pom</exclude>
                <exclude>src/test/**/*.asc</exclude>
                <exclude>src/test/**/*.properties</exclude>
                <exclude>src/test/**/*.swc</exclude>
                <exclude>src/test/**/*.txt</exclude>
                <exclude>src/test/**/*.filename</exclude>
                <exclude>src/test/**/.placeholder</exclude>
                <!-- RAT is incapable to digest this -->
                <exclude>**/module-info.java</exclude>
              </excludes>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>

  <reporting>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-javadoc-plugin</artifactId>
        <configuration>
          <doclint>none</doclint>
          <groups>
            <group>
              <title>Indexer core</title>
              <packages>org.apache.maven.index*</packages>
            </group>
            <group>
              <title>Indexer Reader</title>
              <packages>org.apache.maven.index.reader*</packages>
            </group>
            <group>
              <title>Indexer CLI</title>
              <packages>org.apache.maven.index.cli*</packages>
            </group>
            <group>
              <title>Indexer Examples</title>
              <packages>org.apache.maven.index.examples*</packages>
            </group>
          </groups>
        </configuration>
        <reportSets>
          <reportSet>
            <reports>
              <report>aggregate</report>
            </reports>
            <inherited>false</inherited>
          </reportSet>
        </reportSets>
      </plugin>
    </plugins>
  </reporting>
</project>
