<?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>

	<parent>
		<groupId>org.eclipse</groupId>
		<artifactId>objectteams-parent-pom</artifactId>
		<version>2.0.0-SNAPSHOT</version>
		<relativePath>../parent-pom</relativePath>
	</parent>

	<artifactId>objectteams-artifact-deployer</artifactId>
		
	<packaging>pom</packaging>

	<!-- simply repeat this declaration from the parent pom, otherwise Maven duplicates the artifactId in the path -->
	<url>http://download.eclipse.org/objectteams/maven/3/sites/${project.artifactId}</url>

	<description>This POM deploys Object Teams artifacts not generated by maven as maven artifacts.</description>
	
	<licenses>
		<license>
			<name>Eclipse Public License Version 1.0</name>
			<comments>
				This file is part of "Object Teams Development Tooling"-Software

				Copyright 2010, 2011 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>

	<!--  the follogin properties should be defined by an active profile:    		  -->
	<!--  REMOTE:																	  -->
	<!--  ot.host : user@host for the object teams repository server                  -->
	<!--  ot.maven.repository.path : absolute path to the maven repository on ot.host -->
	<!--  LOCAL:																	  -->
	<!--  otre.export.dir : directory where exported otre jars are located:			  -->
	<!--					org.eclipse.objectteams.runtime_${otre.version}.jar 	  -->
	<!-- 					otre_min.jar, otre_agent.jar							  -->
	<!--  ecj.export.dir : directory where the batch compiler jar is located          -->

	<properties>
		<!-- Object Teams versions, update manually: 					-->
		<!--   version of the ecotj jar file:			 				-->
		<ecotj.version>R-2.0.0-201106070718</ecotj.version> 
		<!--   version of the org.eclipse.objectteams.runtime plugin:	-->
		<otre.version>2.0.0.201106070730</otre.version> 	
		
		<!-- locate the jar files to install/deploy: -->
	    <ecotj.jar.file>${ecj.export.dir}/ecotj-${ecotj.version}.jar</ecotj.jar.file>
	    <otre.jar.file>${otre.export.dir}/org.eclipse.objectteams.runtime_${otre.version}.jar</otre.jar.file>
	    <otre-agent.jar.file>${otre.export.dir}/otre_agent.jar</otre-agent.jar.file>
	    
    	<!-- Repository path of this module within the Object Teams svn: -->
    	<project-repository-path>trunk/maven/infrastructure/artifacts-deployer</project-repository-path>
	</properties>

    <!-- Override inherited declaration, otherwise Maven appends the artifactId to the path -->
	<scm>
	    <connection>scm:svn:svn://dev.eclipse.org/svnroot/tools/org.eclipse.objectteams/${project-repository-path}</connection>
	    <developerConnection>scm:svn:svn+ssh://dev.eclipse.org/svnroot/tools/org.eclipse.objectteams/${project-repository-path}</developerConnection>
	    <url>http://dev.eclipse.org/viewcvs/index.cgi/${project-repository-path}?root=TOOLS_OBJECTTEAMS</url>
	</scm>
	
	<!-- simply repeat this declaration from the parent pom, otherwise Maven duplicates the artifactId in the path -->
	<distributionManagement>
		<site>
			<id>otSiteRepo</id>
			<name>Object Teams sites repository for Maven 3</name>
			<url>scpexe://${ot.host}:${ot.maven.repository.basepath}/sites/${project.artifactId}</url>
		</site>
	</distributionManagement>

	<build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-deploy-plugin</artifactId>
				<version>2.4</version>
				<executions>
					<execution>
						<id>deploy-otre-as-maven-artifact</id>
						<phase>deploy</phase>
						<goals>
							<goal>deploy-file</goal>
						</goals>
						<configuration>
							<repositoryId>otEclipseRepo</repositoryId>
							<packaging>jar</packaging>
							<url>scpexe://${ot.host}:${ot.maven.repository.basepath}/repository</url>
							<!-- The file to be deployed -->
							<file>${otre.jar.file}</file>
							<groupId>${project.groupId}</groupId>
							<artifactId>objectteams-runtime</artifactId>
							<version>${otj.version}</version>
							<packaging>jar</packaging>
						</configuration>
					</execution>
					<execution>
						<id>deploy-otre-agent-as-maven-artifact</id>
						<phase>deploy</phase>
						<goals>
							<goal>deploy-file</goal>
						</goals>
						<configuration>
							<repositoryId>otEclipseRepo</repositoryId>
							<packaging>jar</packaging>
							<url>scpexe://${ot.host}:${ot.maven.repository.basepath}/repository</url>
							<!-- The file to be deployed -->
							<file>${otre-agent.jar.file}</file>
							<groupId>${project.groupId}</groupId>
							<artifactId>objectteams-otre-agent</artifactId>
							<classifier>nodep</classifier>
							<version>${otj.version}</version>
							<packaging>jar</packaging>
						</configuration>
					</execution>
					<execution>
						<id>deploy-ecotj-as-maven-artifact</id>
						<phase>deploy</phase>
						<goals>
							<goal>deploy-file</goal>
						</goals>
						<configuration>
							<repositoryId>otEclipseRepo</repositoryId>
							<packaging>jar</packaging>
							<url>scpexe://${ot.host}:${ot.maven.repository.basepath}/repository</url>
							<!-- The file to be deployed -->
							<file>${ecotj.jar.file}</file>
							<groupId>${project.groupId}</groupId>
							<artifactId>objectteams-otj-compiler</artifactId>
							<version>${otj.version}</version>
							<packaging>jar</packaging>
						</configuration>
					</execution>
				</executions>
			</plugin>

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-install-plugin</artifactId>
				<version>2.3</version>
				<executions>
					<execution>
						<id>install-otre-as-maven-artifact</id>
						<phase>install</phase>
						<goals>
							<goal>install-file</goal>
						</goals>
						<configuration>
							<packaging>jar</packaging>
							<!-- The file to be deployed -->
							<file>${otre.jar.file}</file>
							<groupId>${project.groupId}</groupId>
							<artifactId>objectteams-runtime</artifactId>
							<version>${otj.version}</version>
							<packaging>jar</packaging>
							<pomFile>objectteams-runtime-pom.xml</pomFile>
						</configuration>
					</execution>
					<execution>
						<id>install-otre-agent-as-maven-artifact</id>
						<phase>install</phase>
						<goals>
							<goal>install-file</goal>
						</goals>
						<configuration>
							<packaging>jar</packaging>
							<!-- The file to be deployed -->
							<file>${otre-agent.jar.file}</file>
							<groupId>${project.groupId}</groupId>
							<artifactId>objectteams-otre-agent</artifactId>
							<classifier>nodep</classifier>
							<version>${otj.version}</version>
							<packaging>jar</packaging>
						</configuration>
					</execution>
					<execution>
						<id>install-ecotj-as-maven-artifact</id>
						<phase>install</phase>
						<goals>
							<goal>install-file</goal>
						</goals>
						<configuration>
							<packaging>jar</packaging>
							<!-- The file to be deployed -->
							<file>${ecotj.jar.file}</file>
							<groupId>${project.groupId}</groupId>
							<artifactId>objectteams-otj-compiler</artifactId>
							<version>${otj.version}</version>
							<packaging>jar</packaging>
						</configuration>
					</execution>
				</executions>
			</plugin>
		</plugins>
	</build>
</project>
