<?xml version="1.0" encoding="UTF-8"?>
<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.objectteams</groupId>
	<artifactId>objectteams-parent-pom</artifactId>
	<version>2.4.0</version>
	<packaging>pom</packaging>
	
	<name>Object Teams parent pom</name>

	<url>http://download.eclipse.org/objectteams/maven/3/sites/${project.artifactId}</url>

	<description>
	This is the parent pom for Object Teams projects using Maven3.
	It specifies the core dependencies and configurations for building and
	executing Object Teams code using Maven.
	</description>

	<licenses>
		<license>
			<name>Eclipse Public License Version 1.0</name>
			<comments>
				This file is part of "Object Teams Development Tooling"-Software.

				Copyright 2010, 2015 GK Software AG and others.
				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

				Please visit http://www.eclipse.org/objectteams for updates and contact.

				Contributors:
					Olaf Otto - Initial concept,
					Stephan Herrmann - Initial API and implementation.
			</comments>
		</license>
	</licenses>

	<organization>
		<name>Eclipse Object Teams Project</name>
		<url>http://www.eclipse.org/objectteams</url>
	</organization>
	
	<developers>
		<developer><name>Olaf Otto</name></developer>
		<developer><name>Stephan Herrmann</name><organization>GK Software AG</organization></developer>
	</developers>
    
	<mailingLists>
		<mailingList><name>Object Teams Forum</name><archive>http://www.eclipse.org/forums/eclipse.objectteams</archive></mailingList>
	</mailingLists>
	
	<issueManagement>
		<system>Bugzilla</system>
		<url>http://bugs.eclipse.org/bugs</url>
	</issueManagement>
    
    <repositories>
		<repository>
			<id>ObjectTeamsRepository</id>
			<name>Object Teams Repository</name>
			<url>http://download.eclipse.org/objectteams/maven/3/repository</url>
		</repository>
    </repositories>

    
    <pluginRepositories>
		<pluginRepository>
			<id>ObjectTeamsPluginRepository</id>
			<name>Object Teams Plugin Repository</name>
			<url>http://download.eclipse.org/objectteams/maven/3/repository</url>
		</pluginRepository>
    </pluginRepositories>
    
    
    <!-- Required property from settings.xml: 								-->
    <!-- 	settings.localRepository	path to the local Maven repository.	-->
    <properties>
    	<!-- Repository path of this module within the Object Teams svn: -->
    	<project-repository-path>maven/infrastructure/parent-pom</project-repository-path>

		<!-- Our Version: -->
		<otj.version>2.4.0</otj.version>

		<!-- Versions of dependencies: -->
		<bcel.version>5.2</bcel.version>
		<tycho.version>0.23.0</tycho.version>
		
		<!-- Absolut paths for providing startup arguments to the JVM -->
		<otj.runtime.location>${settings.localRepository}/org/eclipse/objectteams/objectteams-runtime/${otj.version}/objectteams-runtime-${otj.version}.jar</otj.runtime.location>
		<otj.otre.location>${settings.localRepository}/org/eclipse/objectteams/objectteams-otre/${otj.version}/objectteams-otre-${otj.version}.jar</otj.otre.location>
		<otj.agent.location>${settings.localRepository}/org/eclipse/objectteams/objectteams-otre-agent/${otj.version}/objectteams-otre-agent-${otj.version}-nodep.jar</otj.agent.location>
		<otj.bcel.location>${settings.localRepository}/org/apache/bcel/bcel/${bcel.version}/bcel-${bcel.version}.jar</otj.bcel.location>

		<!-- Bootclasspath -->
		<otj.bootcp.arg>-Xbootclasspath/a:${otj.runtime.location}</otj.bootcp.arg>
		<!-- Object teams JPLIS agent -->
		<otj.agent.arg>-javaagent:${otj.agent.location}</otj.agent.arg>
		<!--
			Default arguments for running OT/J programs.
				-Dot.debug facilitates (remote) debugging.
				Xmx / Xms are required for reproducable build results, as ltw uses a
				significant amount of memory during startup.
		-->
		<surefire.argline>${otj.bootcp.arg} ${otj.agent.arg} -Dot.debug -Xms128m -Xmx512m</surefire.argline>
    </properties>

	<scm>
		<!--  WTF: release will "improve" the connection to using svn+ssh and advertize this for anonymous access !@#!%$ -->
	    <connection>scm:git:git://git.eclipse.org/gitroot/objectteams/org.eclipse.objectteams.git/${project-repository-path}</connection>
	    <developerConnection>scm:git:ssh://${username}@git.eclipse.org/gitroot/objectteams/org.eclipse.objectteams.git/${project-repository-path}</developerConnection>
		<!--  WTF: release will "improve" the connection to using svn+ssh and advertize this for web access !@#!%$ -->
	    <url>http://git.eclipse.org/c/objectteams/org.eclipse.objectteams.git</url>
	</scm>
	
	<reporting>
		<plugins>
			<!-- See http://maven.apache.org/plugins/maven-project-info-reports-plugin/ -->
			<plugin>
        		<groupId>org.apache.maven.plugins</groupId>
        		<artifactId>maven-project-info-reports-plugin</artifactId>
        		<version>2.2</version>
      		</plugin>
		</plugins>
	</reporting>

	<build>
		<pluginManagement>
			<plugins>

				<plugin>
					<!--
						Use compiler plugin with tycho as the adapter to the OT/J compiler.
						Using java 1.7 language level is recommended, default is 1.3, OT/J needs 1.5 minimum
					-->
					<artifactId>maven-compiler-plugin</artifactId>
					<version>3.1</version>
					<configuration>
						<source>1.7</source>
						<target>1.7</target>
						<compilerId>jdt</compilerId>
						<flavor>otj</flavor>
					</configuration>
					<dependencies>
						<!-- compile time only dependencies: -->
						<dependency>
							<groupId>org.eclipse.tycho</groupId>
							<artifactId>tycho-compiler-jdt</artifactId>
							<version>${tycho.version}</version>
							<exclusions>
								<!-- Exclude the original JDT/Core to be replaced by the OT/J variant: -->
								<exclusion>
									<groupId>org.eclipse.tycho</groupId>
									<artifactId>org.eclipse.jdt.core</artifactId>
								</exclusion>
							</exclusions>
						</dependency>
						<dependency>
							<!-- plug the OT/J compiler into the tycho-compiler-jdt plug-in: -->
							<groupId>org.eclipse.objectteams</groupId>
							<artifactId>objectteams-otj-compiler</artifactId>
							<version>${otj.version}</version>
						</dependency>
					</dependencies>
				</plugin>

				<plugin>
					<!-- The same for tycho builds: -->
					<groupId>org.eclipse.tycho</groupId>
					<artifactId>tycho-compiler-plugin</artifactId>
					<version>${tycho.version}</version>
					<extensions>true</extensions>
					<dependencies>
						<dependency>
							<groupId>org.eclipse.tycho</groupId>
							<artifactId>tycho-compiler-jdt</artifactId>
							<version>${tycho.version}</version>
							<exclusions>
								<!-- Exclude the original JDT/Core to be replaced by the OT/J variant: -->
								<exclusion>
									<groupId>org.eclipse.tycho</groupId>
									<artifactId>org.eclipse.jdt.core</artifactId>
								</exclusion>
							</exclusions>
						</dependency>
						<dependency>
							<!-- plug the OT/J compiler into the tycho-compiler-jdt plug-in: -->
							<groupId>org.eclipse.objectteams</groupId>
							<artifactId>objectteams-otj-compiler</artifactId>
							<version>${otj.version}</version>
						</dependency>
					</dependencies>
				</plugin>

				<!-- See http://maven.apache.org/plugins/maven-surefire-plugin/ -->
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-surefire-plugin</artifactId>
					<configuration>
						<!--
							The following must be within one line of code, linebreaks will
							cause surefire execution to fail.
						-->
						<argLine>${surefire.argline}</argLine>
					</configuration>
					<dependencies>
						<dependency>
							<!-- runtime-only dependency: -->
							<groupId>org.eclipse.objectteams</groupId>
							<artifactId>objectteams-otre-agent</artifactId>
							<classifier>nodep</classifier>
							<version>${otj.version}</version>
						</dependency>
					</dependencies>
				</plugin>
				<!-- ensure new version of this plug-in (maven3-compatible): -->
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-site-plugin</artifactId>
					<version>3.3</version>
				</plugin>
				<plugin>
	        		<groupId>org.apache.maven.plugins</groupId>
	        		<artifactId>maven-release-plugin</artifactId>
	        		<configuration>
	          			<tagBase>svn+ssh://dev.eclipse.org/svnroot/tools/org.eclipse.objectteams/tags/mvn-releases</tagBase>
	        		</configuration>
	      		</plugin>
			</plugins>
		</pluginManagement>
		<extensions>
			<extension>
				<groupId>org.apache.maven.wagon</groupId>
				<artifactId>wagon-ssh-external</artifactId>
				<version>2.2</version>
			</extension>
		</extensions>
	</build>

	<!-- Required for compiling and running: -->
	<dependencies>
		<dependency>
			<groupId>org.eclipse.objectteams</groupId>
			<artifactId>objectteams-runtime</artifactId>
			<version>${otj.version}</version>
			<scope>compile</scope> <!-- At runtime this will be provided via bootclasspath -->
		</dependency>
		<dependency>
			<groupId>org.eclipse.objectteams</groupId>
			<artifactId>objectteams-otre</artifactId>
			<version>${otj.version}</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>org.apache.bcel</groupId>
			<artifactId>bcel</artifactId>
			<version>${bcel.version}</version>
			<scope>provided</scope>
		</dependency>
	</dependencies>
	

	<!-- for deployment of this pom: -->
	<distributionManagement>
		<site>
			<id>otSiteRepo</id>
			<name>Object Teams sites repository for Maven 3</name>
			<!--
				for unclear reason when deploying dependent sites we need to first install this
			    parent with the following URL:
			    	scpexe://objectteams/maven/3/sites/${project.artifactId}
			    otherwise the variables from the below URL will be pasted verbatim for references
			    to the parent pom =:-0
			-->
			<url>scpexe://${ot.host}:${ot.maven.repository.basepath}/sites/${project.artifactId}</url>
		</site>
		<repository>
			<id>ObjectTeamsRepository</id>
			<uniqueVersion>false</uniqueVersion>
			<name>Public Object Teams distribution repository</name>
			<!--
				most values are fed from settings.xml
			-->
			<url>scpexe://${ot.host}:${ot.maven.repository.basepath}/repository</url>
			<layout>default</layout>
		</repository>
	</distributionManagement>

</project>
