<?xml version="1.0" encoding="UTF-8"?>
<!--
   Copyright (C) 2011, Chris Aniszczyk <caniszczyk@gmail.com>
   Copyright (C) 2011, Matthias Sohn <matthias.sohn@sap.com>

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

    <version>1.3.0-SNAPSHOT</version>
    <prerequisites>
        <maven>3.0</maven>
    </prerequisites>

    <groupId>org.eclipse.mylyn.github</groupId>
    <artifactId>github-parent</artifactId>
    <packaging>pom</packaging>

    <name>Eclipse EGit Mylyn GitHub Connector Parent</name>

  <licenses>
    <license>
      <name>Eclipse Public License v1.0</name>
      <comments>
       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.htm
      </comments>
    </license>
  </licenses>

  <properties>
    <tycho-version>0.13.0</tycho-version>
    <egit-site>file:/${basedir}/../../egit/org.eclipse.egit-updatesite/target/site</egit-site>
    <platform-version-name>indigo</platform-version-name>
    <wikitext-site>http://download.eclipse.org/tools/mylyn/update/weekly</wikitext-site>
    <eclipse-site>http://download.eclipse.org/releases/${platform-version-name}</eclipse-site>
    <orbit-site>http://download.eclipse.org/tools/orbit/downloads/drops/R20120119162704/repository</orbit-site>
    <download-publish-path>/home/data/httpd/download.eclipse.org/egit/github/updates-nightly</download-publish-path>
  </properties>

    <modules>
        <module>org.eclipse.egit.github.core</module>
        <module>org.eclipse.mylyn.github.core</module>
        <module>org.eclipse.mylyn.github.ui</module>
        <module>org.eclipse.mylyn.github-feature</module>
        <module>org.eclipse.egit.github.core.tests</module>
        <!--module>org.eclipse.mylyn.github.tests</module -->
        <module>org.eclipse.mylyn.github-site</module>
        <module>org.eclipse.mylyn.github.doc</module>
    </modules>

  <repositories>
    <repository>
      <id>egit</id>
      <layout>p2</layout>
      <url>${egit-site}</url>
    </repository>
    <repository>
      <id>indigo</id>
      <layout>p2</layout>
      <url>${eclipse-site}</url>
    </repository>
    <repository>
      <id>orbit</id>
      <layout>p2</layout>
      <url>${orbit-site}</url>
    </repository>
    <repository>
      <id>wikitext</id>
      <layout>p2</layout>
      <url>${wikitext-site}</url>
    </repository>
  </repositories>

  <pluginRepositories>
    <pluginRepository>
      <id>maven.eclipse.org</id>
      <url>http://maven.eclipse.org/nexus/content/repositories/milestone-indigo/</url>
    </pluginRepository>
  </pluginRepositories>

    <build>
        <plugins>
            <plugin>
                <groupId>org.eclipse.tycho</groupId>
                <artifactId>tycho-maven-plugin</artifactId>
                <version>${tycho-version}</version>
                <extensions>true</extensions>
            </plugin>
            <plugin>
                <groupId>org.eclipse.tycho</groupId>
                <artifactId>target-platform-configuration</artifactId>
                <version>${tycho-version}</version>
                <configuration>
                    <resolver>p2</resolver>
                </configuration>
            </plugin>
        </plugins>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.eclipse.tycho</groupId>
                    <artifactId>tycho-compiler-plugin</artifactId>
                    <version>${tycho-version}</version>
                    <configuration>
                        <encoding>UTF-8</encoding>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-resources-plugin</artifactId>
                    <version>2.4.1</version>
                    <configuration>
                        <encoding>UTF-8</encoding>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.eclipse.tycho</groupId>
                    <artifactId>target-platform-configuration</artifactId>
                    <version>${tycho-version}</version>
                    <configuration>
                        <resolver>p2</resolver>
                        <pomDependencies>consider</pomDependencies>
                    </configuration>
                </plugin>
				<plugin>
					<groupId>org.codehaus.mojo</groupId>
					<artifactId>findbugs-maven-plugin</artifactId>
					<version>2.3.2</version>
					<configuration>
						<findbugsXmlOutput>true</findbugsXmlOutput>
						<failOnError>false</failOnError>
					</configuration>
					<executions>
						<execution>
							<goals>
								<goal>check</goal>
							</goals>
						</execution>
					</executions>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-pmd-plugin</artifactId>
					<version>2.5</version>
					<configuration>
						<sourceEncoding>utf-8</sourceEncoding>
						<minimumTokens>100</minimumTokens>
						<targetJdk>1.5</targetJdk>
						<format>xml</format>
						<failOnViolation>false</failOnViolation>
					</configuration>
					<executions>
						<execution>
							<goals>
								<goal>cpd-check</goal>
							</goals>
						</execution>
					</executions>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-javadoc-plugin</artifactId>
					<version>2.8</version>
					<executions>
						<execution>
							<goals>
								<goal>aggregate</goal>
							</goals>
						</execution>
					</executions>
				</plugin>
				<plugin>
					<groupId>org.eclipse.dash.maven</groupId>
					<artifactId>eclipse-signing-maven-plugin</artifactId>
					<version>1.0.3</version>
				</plugin>
			</plugins>
		</pluginManagement>
        <sourceDirectory>src/</sourceDirectory>
    </build>

  <profiles>
    <profile>
      <id>platform-helios</id>
      <activation>
        <property>
          <name>platform-version-name</name>
          <value>helios</value>
        </property>
      </activation>
      <properties>
        <eclipse-site>http://download.eclipse.org/releases/helios</eclipse-site>
        <platform-version>[3.6,3.7)</platform-version>
      </properties>
    </profile>
    <profile>
      <id>platform-indigo</id>
      <activation>
        <property>
          <name>platform-version-name</name>
          <value>indigo</value>
        </property>
      </activation>
      <properties>
        <eclipse-site>http://download.eclipse.org/releases/indigo</eclipse-site>
        <platform-version>[3.7,3.8)</platform-version>
      </properties>
    </profile>
	<profile>
		<id>static-checks</id>
		<build>
			<plugins>
				<plugin>
					<groupId>org.codehaus.mojo</groupId>
					<artifactId>findbugs-maven-plugin</artifactId>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-pmd-plugin</artifactId>
				</plugin>
			</plugins>
		</build>
	</profile>
  </profiles>
</project>
