<?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 v1.0
  which accompanies this distribution, and is available at
  http://www.eclipse.org/legal/epl-v10.html
-->
<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.6.0-SNAPSHOT</version>
  </parent>

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

  <name>Embedded Maven Runtime Bundle</name>

  <properties>
    <!-- maven core version -->
    <maven-core.version>3.2.3</maven-core.version>
    <guava.version>14.0.1</guava.version>
    <!-- below are m2e-specific addons -->
    <plexus-build-api.version>0.0.7</plexus-build-api.version>
    <okhttp-connector.version>0.13.0-SNAPSHOT</okhttp-connector.version>
    <concurrent-localrepo.version>0.9.0</concurrent-localrepo.version>
  </properties>

  <dependencies>
    <!-- this overrides default local repo implementation and must be BEFORE maven -->
    <dependency>
      <groupId>io.takari.aether</groupId>
      <artifactId>takari-local-repository</artifactId>
      <version>${concurrent-localrepo.version}</version>
    </dependency>

    <dependency>
      <groupId>org.apache.maven</groupId>
      <artifactId>maven-core</artifactId>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>org.apache.maven</groupId>
      <artifactId>maven-embedder</artifactId>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>org.apache.maven</groupId>
      <artifactId>maven-compat</artifactId>
      <optional>true</optional>
    </dependency>

    <dependency>
      <groupId>org.eclipse.sisu</groupId>
      <artifactId>org.eclipse.sisu.plexus</artifactId>
      <version>0.3.0-SNAPSHOT</version>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>org.sonatype.sisu</groupId>
      <artifactId>sisu-guice</artifactId>
      <classifier>no_aop</classifier>
      <version>3.2.3</version>
      <optional>true</optional>
      <exclusions>
        <exclusion>
          <artifactId>sisu-guava</artifactId>
          <groupId>org.sonatype.sisu</groupId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>com.google.guava</groupId>
      <artifactId>guava</artifactId>
      <version>${guava.version}</version>
      <exclusions>
        <exclusion>
          <!-- as of version 1.3.9 includes LGPL'ed sources, can't ship with an EPL project  -->
          <!--  http://dev.eclipse.org/ipzilla/show_bug.cgi?id=7302 -->
          <groupId>com.google.code.findbugs</groupId>
          <artifactId>jsr305</artifactId>
        </exclusion>
      </exclusions>
    </dependency>

    <dependency>
      <groupId>org.sonatype.plexus</groupId>
      <artifactId>plexus-build-api</artifactId>
      <version>${plexus-build-api.version}</version>
      <optional>true</optional>
    </dependency>

    <dependency>
      <groupId>org.eclipse.aether</groupId>
      <artifactId>aether-impl</artifactId>
      <optional>true</optional>
    </dependency>

    <dependency>
      <groupId>io.takari.aether</groupId>
      <artifactId>aether-connector-okhttp</artifactId>
      <version>${okhttp-connector.version}</version>
    </dependency>

    <dependency>
      <groupId>org.eclipse.aether</groupId>
      <artifactId>aether-connector-wagon</artifactId>
    </dependency>

    <dependency>
      <groupId>org.apache.maven.wagon</groupId>
      <artifactId>wagon-file</artifactId>
    </dependency>
  </dependencies>

  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>org.apache.maven</groupId>
        <artifactId>maven</artifactId>
        <version>${maven-core.version}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
    </dependencies>
  </dependencyManagement>

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.felix</groupId>
        <artifactId>maven-bundle-plugin</artifactId>
        <configuration>
          <instructions>
            <Embed-Dependency>
              *;scope=compile|runtime;artifactId=!aopalliance|apache-maven|slf4j-api|javax.inject
            </Embed-Dependency>
            <Embed-Directory>jars</Embed-Directory>

            <_exportcontents>
              META-INF.plexus;-noimport:=true,
              META-INF.sisu;-noimport:=true,
              org.apache.maven.*;provider=m2e;mandatory:=provider,
              org.codehaus.plexus.*;provider=m2e;mandatory:=provider,
              org.sonatype.plexus.*;provider=m2e;mandatory:=provider,
              org.eclipse.aether.*;provider=m2e;mandatory:=provider,
              com.google.inject.*;provider=m2e;mandatory:=provider,
              com.squareup.okhttp.*;provider=m2e;mandatory:=provider,
              io.takari.*;provider=m2e;mandatory:=provider,
            </_exportcontents>

            <Import-Package>
              !*
            </Import-Package>
            <Require-Bundle>
              org.slf4j.api;bundle-version="1.6.2",
              org.eclipse.m2e.maven.runtime.slf4j.simple;bundle-version="[1.6.0,1.7.0)",
              javax.inject;bundle-version="1.0.0";visibility:=reexport
            </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>
