<?xml version="1.0" encoding="UTF-8"?>
<!--
  Copyright (c) 2008 Sonatype, Inc.
  All rights reserved. This program and the accompanying materials
  are made available under the terms of the Eclipse Public License 2.0
  which accompanies this distribution, and is available at
  https://www.eclipse.org/legal/epl-2.0/

  SPDX-License-Identifier: EPL-2.0
-->
<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.eclipse.m2e</groupId>
    <artifactId>m2e-maven-runtime</artifactId>
    <version>1.15.0-SNAPSHOT</version>
  </parent>

  <artifactId>org.eclipse.m2e.maven.indexer</artifactId>
  <packaging>bundle</packaging>

  <name>Nexus Indexer Bundle</name>

  <dependencies>
    <dependency>
      <groupId>org.apache.maven.indexer</groupId>
      <artifactId>indexer-core</artifactId>
      <version>3.1.0</version>
      <optional>true</optional>
      <exclusions>
        <exclusion>
          <groupId>org.apache.maven</groupId>
          <artifactId>maven-model</artifactId>
        </exclusion>
        <exclusion>
          <groupId>org.apache.maven</groupId>
          <artifactId>maven-artifact</artifactId>
        </exclusion>
        <exclusion>
          <groupId>org.sonatype.sisu</groupId>
          <artifactId>sisu-inject-plexus</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.eclipse.sisu</groupId>
      <artifactId>org.eclipse.sisu.plexus</artifactId>
      <version>0.3.4</version>
      <scope>provided</scope>
    </dependency>
  </dependencies>

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.felix</groupId>
        <artifactId>maven-bundle-plugin</artifactId>
        <configuration>
          <instructions>
            <Embed-Dependency>
              *;scope=compile|runtime
            </Embed-Dependency>

            <_exportcontents>
              META-INF.plexus;-noimport:=true,
              org.apache.lucene.*;provider=m2e;mandatory:=provider,
              org.apache.maven.*;provider=m2e;mandatory:=provider,
            </_exportcontents>

            <Import-Package>
              !*
            </Import-Package>
            <Require-Bundle>
              org.eclipse.m2e.maven.runtime;bundle-version="[1.15.0,1.16.0)",
              org.eclipse.m2e.archetype.common;bundle-version="[1.15.0,1.16.0)"
            </Require-Bundle>

            <Bundle-ClassPath>.,{maven-dependencies}</Bundle-ClassPath>
          </instructions>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.eclipse.tycho</groupId>
        <artifactId>tycho-p2-plugin</artifactId>
      </plugin>
    </plugins>
  </build>

</project>
