<?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>
  <artifactId>lightning-maven-eclipse-helper-feature</artifactId>
  <name>Lightning :: Maven Eclipse Helper Feature</name>
  <packaging>eclipse-feature</packaging>

  <parent>
    <artifactId>lightning</artifactId>
    <groupId>org.apache.directmemory.lightning</groupId>
    <version>0.0.1-SNAPSHOT</version>
  </parent>

  <build>
    <plugins>
      <plugin>
        <groupId>org.eclipse.tycho</groupId>
        <artifactId>tycho-maven-plugin</artifactId>
        <version>0.14.0</version>
        <extensions>true</extensions>
      </plugin>

      <plugin>
        <groupId>org.eclipse.tycho</groupId>
        <artifactId>target-platform-configuration</artifactId>
        <version>0.14.0</version>
        <configuration>
          <resolver>p2</resolver>
          <ignoreTychoRepositories>true</ignoreTychoRepositories>
        </configuration>
      </plugin>
    </plugins>
  </build>

  <pluginRepositories>
    <pluginRepository>
      <id>eclipse</id>
      <url>http://download.eclipse.org/releases/indigo</url>
      <layout>p2</layout>
    </pluginRepository>
    <pluginRepository>
      <id>m2e</id>
      <url>http://repository.sonatype.org/content/repositories/forge-sites/m2e/1.1.0/N/LATEST/</url>
      <layout>p2</layout>
    </pluginRepository>
    <pluginRepository>
      <id>rso</id>
      <url>http://repository.sonatype.org/content/groups/sonatype-public-grid</url>
    </pluginRepository>
  </pluginRepositories>
  <repositories>
    <repository>
      <id>eclipse</id>
      <url>http://download.eclipse.org/releases/indigo</url>
      <layout>p2</layout>
    </repository>
    <repository>
      <id>m2e</id>
      <url>http://repository.sonatype.org/content/repositories/forge-sites/m2e/1.1.0/N/LATEST/</url>
      <layout>p2</layout>
    </repository>
    <repository>
      <id>rso</id>
      <url>http://repository.sonatype.org/content/groups/sonatype-public-grid</url>
    </repository>
  </repositories>
</project>