<!-- Copyright (c) 2011-2013 PetalsLink, Red Hat 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

Authors:
  * Mickael Istria (PetalsLink)
  * Mickael Istria (Red Hat JBoss)
-->
<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>

	<groupId>org.eclipse.swtbot</groupId>
	<artifactId>parent</artifactId>
	<name>Eclipse SWTBot</name>
	<version>2.2.0-SNAPSHOT</version>
	<packaging>pom</packaging>

	<prerequisites>
		<maven>3.0</maven>
	</prerequisites>
	<properties>
		<tycho-version>0.18.1</tycho-version>
		<tycho-extras-version>${tycho-version}</tycho-extras-version>
		<!-- Properties to enable jacoco code coverage analysis -->
		<sonar.core.codeCoveragePlugin>jacoco</sonar.core.codeCoveragePlugin>
		<sonar.dynamicAnalysis>reuseReports</sonar.dynamicAnalysis>
		<sonar.jacoco.reportPath>../target/jacoco.exec</sonar.jacoco.reportPath>
		<!-- Enable this on Hudson CI @Eclipse.org -->
		<cbi.jarsigner.skip>true</cbi.jarsigner.skip>
		 <tycho.scmUrl>scm:git:git://git.eclipse.org/gitroot/swtbot/org.eclipse.swtbot.git</tycho.scmUrl>
	</properties>

	<modules>
		<module>devtools/target-platforms</module>

		<!-- Plugins -->
		<module>org.eclipse.swtbot.ant.junit</module>
		<module>org.eclipse.swtbot.eclipse</module>
		<module>org.eclipse.swtbot.eclipse.core</module>
		<module>org.eclipse.swtbot.eclipse.dsl</module>
		<module>org.eclipse.swtbot.eclipse.finder</module>
		<module>org.eclipse.swtbot.eclipse.gef.finder</module>
		<module>org.eclipse.swtbot.eclipse.spy</module>
		<module>org.eclipse.swtbot.eclipse.test.junit</module>
		<module>org.eclipse.swtbot.eclipse.ui</module>
		<module>org.eclipse.swtbot.forms.finder</module>
		<module>org.eclipse.swtbot.generator</module>
		<module>org.eclipse.swtbot.generator.jdt</module>
		<module>org.eclipse.swtbot.generator.ui</module>
		<module>org.eclipse.swtbot.go</module>
		<module>org.eclipse.swtbot.junit4_x</module>
		<module>org.eclipse.swtbot.swt.demo</module>
		<module>org.eclipse.swtbot.swt.finder</module>
		<module>org.eclipse.swt.examples</module>
		<module>org.eclipse.ui.forms.examples</module>
		<!-- features -->
		<module>org.eclipse.swtbot</module>
		<module>org.eclipse.swtbot.forms</module>
		<module>org.eclipse.swtbot.eclipse.gef</module>
		<module>org.eclipse.swtbot.ide</module>
		<module>org.eclipse.swtbot.eclipse.junit.headless</module>
		<module>org.eclipse.swtbot.generator.feature</module>
		<!-- Repo -->
		<module>org.eclipse.swtbot.updatesite</module>
		<!-- Tests -->
		<module>org.eclipse.swtbot.eclipse.ui.test</module>
		<module>org.eclipse.swtbot.swt.finder.test.keyboards</module>
		<module>org.eclipse.swtbot.swt.finder.test</module>
		<module>org.eclipse.swtbot.forms.finder.test</module>
		<module>org.eclipse.swtbot.eclipse.finder.test</module>
		<module>org.eclipse.swtbot.test</module>
		<module>org.eclipse.swtbot.generator.test</module>
		<module>org.eclipse.swtbot.generator.jdt.test</module>
	</modules>

	<mailingLists>
		<mailingList>
			<name>swtbot-dev Mailing List</name>
			<post>swtbot-dev@eclipse.org</post>
			<subscribe>https://dev.eclipse.org/mailman/listinfo/swtbot-dev</subscribe>
			<unsubscribe>https://dev.eclipse.org/mailman/listinfo/swtbot-dev</unsubscribe>
			<archive>http://dev.eclipse.org/mhonarc/lists/swtbot-dev</archive>
		</mailingList>
	</mailingLists>

	<issueManagement>
		<url>https://bugs.eclipse.org/bugs/buglist.cgi?classification=Technology;query_format=advanced;product=SWTBot</url>
		<system>Bugzilla</system>
	</issueManagement>

	<scm>
		<connection>scm:git:http://git.eclipse.org/gitroot/swtbot/org.eclipse.swtbot.git</connection>
		<url>https://git.eclipse.org/c/swtbot/org.eclipse.swtbot.git/</url>
	</scm>

	<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>

	<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>
					<environments>
						<environment>
							<os>linux</os>
							<ws>gtk</ws>
							<arch>x86</arch>
						</environment>
						<environment>
							<os>linux</os>
							<ws>gtk</ws>
							<arch>x86_64</arch>
						</environment>
						<environment>
							<os>win32</os>
							<ws>win32</ws>
							<arch>x86</arch>
						</environment>
						<environment>
							<os>win32</os>
							<ws>win32</ws>
							<arch>x86_64</arch>
						</environment>
						<environment>
							<os>macosx</os>
							<ws>cocoa</ws>
							<arch>x86</arch>
						</environment>
						<environment>
							<os>macosx</os>
							<ws>cocoa</ws>
							<arch>x86_64</arch>
						</environment>
					</environments>
					<includePackedArtifacts>true</includePackedArtifacts>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.eclipse.tycho</groupId>
				<artifactId>tycho-packaging-plugin</artifactId>
				<version>${tycho-version}</version>
				<configuration>
					<sourceReferences>
						<generate>true</generate>
					</sourceReferences>
				</configuration>
				<dependencies>
					<dependency>
						<groupId>org.eclipse.tycho.extras</groupId>
						<artifactId>tycho-sourceref-jgit</artifactId>
						<version>${tycho-extras-version}</version>
					</dependency>
				</dependencies>
			</plugin>
			<plugin>
				<groupId>org.jacoco</groupId>
				<artifactId>jacoco-maven-plugin</artifactId>
				<version>0.5.8.201207111220</version>
				<executions>
					<execution>
						<goals>
							<goal>prepare-agent</goal>
						</goals>
							<configuration>
							<!-- Where to put jacoco coverage report -->
							<destFile>${sonar.jacoco.reportPath}</destFile>
							<includes>
								<include>org.eclipse.swtbot.*</include>
							</includes>
							<append>true</append>
						</configuration>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.eclipse.tycho</groupId>
				<artifactId>tycho-source-plugin</artifactId>
				<version>${tycho-version}</version>
				<executions>
					<execution>
						<id>plugin-source</id>
						<goals>
							<goal>plugin-source</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.eclipse.tycho.extras</groupId>
				<artifactId>tycho-source-feature-plugin</artifactId>
				<version>${tycho-version}</version>
				<executions>
					<execution>
						<id>source-feature</id>
						<goals>
							<goal>source-feature</goal>
						</goals>
						<configuration>
							<excludes>
								<plugin id="org.apache.log4j"/>
								<plugin id="org.eclipse.swtbot.ant.junit"/>
							</excludes>
						</configuration>
					</execution>
				</executions>
			</plugin>
			<!-- Those 4 mojos are for signing and packing -->
			<plugin>
				<groupId>org.eclipse.tycho.extras</groupId>
				<artifactId>tycho-pack200a-plugin</artifactId>
				<version>${tycho-version}</version>
				<executions>
					<execution>
						<id>pack200-normalize</id>
						<goals>
							<goal>normalize</goal>
						</goals>
						<phase>package</phase>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.eclipse.cbi.maven.plugins</groupId>
				<artifactId>eclipse-jarsigner-plugin</artifactId>
				<version>1.0.4</version>
				<executions>
					<execution>
						<id>sign</id>
						<goals>
							<goal>sign</goal>
						</goals>
						<phase>package</phase>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.eclipse.tycho.extras</groupId>
				<artifactId>tycho-pack200b-plugin</artifactId>
				<version>${tycho-version}</version>
				<executions>
					<execution>
						<id>pack200-pack</id>
						<goals>
							<goal>pack</goal>
						</goals>
						<phase>package</phase>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.eclipse.tycho</groupId>
				<artifactId>tycho-p2-plugin</artifactId>
				<version>${tycho-version}</version>
				<executions>
					<execution>
						<id>p2-metadata</id>
						<goals>
							<goal>p2-metadata</goal>
						</goals>
						<phase>package</phase>
					</execution>
				</executions>
				<configuration>
					<defaultP2Metadata>false</defaultP2Metadata>
				</configuration>
			</plugin>
		</plugins>
		<pluginManagement>
			<plugins>
				<!--This plugin's configuration is used to store Eclipse m2e settings only.
                    It has no influence on the Maven build itself.-->

				<plugin>
					<groupId>org.eclipse.m2e</groupId>
					<artifactId>lifecycle-mapping</artifactId>
					<version>1.0.0</version>
					<configuration>
						<lifecycleMappingMetadata>
							<pluginExecutions>
								<pluginExecution>
									<pluginExecutionFilter>
										<groupId>org.jacoco</groupId>
										<artifactId>jacoco-maven-plugin</artifactId>
										<versionRange>[0.5,)
										</versionRange>
										<goals>
											<goal>prepare-agent</goal>
										</goals>
									</pluginExecutionFilter>
									<action>
                                        <!-- m2e doesn't know what to do with jacoco,
                                            let's ignore it or annoying error markers appear
                                            see http://wiki.eclipse.org/M2E_plugin_execution_not_covered
                                         -->
										<ignore></ignore>
									</action>
								</pluginExecution>
							</pluginExecutions>
						</lifecycleMappingMetadata>
					</configuration>
				</plugin>


			</plugins>
		</pluginManagement>

	</build>

	<pluginRepositories>
		<pluginRepository>
			<id>cbi-release</id>
			<url>https://repo.eclipse.org/content/repositories/cbi-releases/</url>
		</pluginRepository>
	</pluginRepositories>

	<profiles>
		<profile>
			<id>helios</id>
			<activation>
				<activeByDefault>false</activeByDefault>
			</activation>
			<!-- TODO: Replace by usage of a target definition -->
			<repositories>
				<repository>
					<id>Helios</id>
					<layout>p2</layout>
					<url>http://download.eclipse.org/releases/helios</url>
				</repository>
				<repository>
					<id>Orbit-Helios</id>
					<layout>p2</layout>
					<url>http://download.eclipse.org/tools/orbit/downloads/drops/R20100519200754/repository</url>
				</repository>
			</repositories>
		</profile>
		<profile>
			<id>indigo</id>
			<activation>
				<activeByDefault>true</activeByDefault>
			</activation>
			<build>
				<plugins>
					<plugin>
						<groupId>org.eclipse.tycho</groupId>
						<artifactId>target-platform-configuration</artifactId>
						<version>${tycho-version}</version>
						<configuration>
							<target>
								<artifact>
									<groupId>org.eclipse.swtbot.target-platforms</groupId>
									<artifactId>indigo</artifactId>
									<version>2.2.0-SNAPSHOT</version>
								</artifact>
							</target>
						</configuration>
					</plugin>
				</plugins>
			</build>
		</profile>

		<profile>
			<id>juno</id>
			<activation>
				<activeByDefault>false</activeByDefault>
			</activation>
			<build>
				<plugins>
					<plugin>
						<groupId>org.eclipse.tycho</groupId>
						<artifactId>target-platform-configuration</artifactId>
						<version>${tycho-version}</version>
						<configuration>
							<target>
								<artifact>
									<groupId>org.eclipse.swtbot.target-platforms</groupId>
									<artifactId>juno</artifactId>
									<version>2.2.0-SNAPSHOT</version>
								</artifact>
							</target>
						</configuration>
					</plugin>
				</plugins>
			</build>
		</profile>
		<profile>
			<id>kepler</id>
			<activation>
				<activeByDefault>false</activeByDefault>
			</activation>
			<build>
				<plugins>
					<plugin>
						<groupId>org.eclipse.tycho</groupId>
						<artifactId>target-platform-configuration</artifactId>
						<version>${tycho-version}</version>
						<configuration>
							<target>
								<artifact>
									<groupId>org.eclipse.swtbot.target-platforms</groupId>
									<artifactId>kepler</artifactId>
									<version>2.2.0-SNAPSHOT</version>
								</artifact>
							</target>
						</configuration>
					</plugin>
				</plugins>
			</build>
		</profile>
	</profiles>
</project>
