<?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.5.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, 2016 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>
		<pluginRepository>
      		<id>tycho-snapshots</id>
      		<url>https://repo.eclipse.org/content/repositories/tycho-snapshots/</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 git: -->
    	<project-repository-path>maven/infrastructure/parent-pom</project-repository-path>

		<!-- Our Version: -->
		<otj.version>2.5.0</otj.version>
		<otdre.version>1.2.0</otdre.version>

		<!-- Versions of dependencies: -->
		<bcel.version>5.2</bcel.version>
		<tycho.version>0.24.0</tycho.version>
		<apt.version>1.2.100.v20160418-1457-SNAPSHOT</apt.version> <!-- pulled from tycho-snapshots to be compatible with latest JDT -->
		
		<!-- **** Main switch for OTRE vs. OTDRE (here we default to OTRE): **** -->
		<otj.weaving.scheme>otre</otj.weaving.scheme>
		<objectteams-otre.version>${otj.version}</objectteams-otre.version>
		
		<!-- Bytecode library, to be overridden for OTDRE: -->
		<otj.bytecode.lib.groupId>org.apache.bcel</otj.bytecode.lib.groupId>
		<otj.bytecode.lib.artifactId>bcel</otj.bytecode.lib.artifactId>
		<otj.bytecode.lib.version>${bcel.version}</otj.bytecode.lib.version>
		
		<!-- Dependent properties, which follow the OTRE / OTDRE selection: -->
		<objectteams-otre>objectteams-${otj.weaving.scheme}</objectteams-otre>
		<objectteams-otre-agent>objectteams-${otj.weaving.scheme}-agent</objectteams-otre-agent>

		<!-- 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}/${objectteams-otre.version}/${objectteams-otre}-${objectteams-otre.version}.jar</otj.otre.location>
		<otj.agent.location>${settings.localRepository}/org/eclipse/objectteams/${objectteams-otre-agent}/${objectteams-otre.version}/${objectteams-otre-agent}-${objectteams-otre.version}-nodep.jar</otj.agent.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.5.1</version>
					<configuration>
						<source>1.7</source>
						<target>1.7</target>
						<compilerId>jdt</compilerId>
						<flavor>otj</flavor>
						<compilerArgument>-ot.weaving:${otj.weaving.scheme}</compilerArgument>
					</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>
						<dependency>
							<groupId>org.eclipse.tycho</groupId>
							<artifactId>org.eclipse.jdt.compiler.apt</artifactId>
							<version>${apt.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>
						<dependency>
							<groupId>org.eclipse.tycho</groupId>
							<artifactId>org.eclipse.jdt.compiler.apt</artifactId>
							<version>${apt.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>${objectteams-otre.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>
			</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>

		<!-- Hookable: OTRE or OTDRE: -->
		<dependency>
			<groupId>org.eclipse.objectteams</groupId>
			<artifactId>${objectteams-otre}</artifactId>
			<version>${objectteams-otre.version}</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>${otj.bytecode.lib.groupId}</groupId>
			<artifactId>${otj.bytecode.lib.artifactId}</artifactId>
			<version>${otj.bytecode.lib.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>
