<?xml version="1.0" encoding="UTF-8"?>
<!--
   Copyright (C) 2014 Ericsson

   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>

  <parent>
    <artifactId>org.eclipse.tracecompass.ctf-parent</artifactId>
    <groupId>org.eclipse.tracecompass</groupId>
    <version>2.0.1-SNAPSHOT</version>
  </parent>

  <name>Trace Compass CTF Core Tests Plug-in</name>
  <artifactId>org.eclipse.tracecompass.ctf.core.tests</artifactId>
  <version>1.0.0-SNAPSHOT</version>
  <packaging>eclipse-test-plugin</packaging>

  <properties>
    <ctfTestSuiteCommit>0f8beba86ae551f42adeb81d1bfddd5645f31013</ctfTestSuiteCommit>
  </properties>

  <!-- Do not download the test traces if "maven.test.skip" is set -->
  <profiles>
    <profile>
      <id>download-traces</id>
      <activation>
        <property>
          <name>!maven.test.skip</name>
        </property>
      </activation>

      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-antrun-plugin</artifactId>
            <executions>
              <execution>
                <id>prepare</id>
                <phase>pre-integration-test</phase>
                <configuration>
                  <target>
                    <property name="ctf-test-suite-commit" value="${ctfTestSuiteCommit}"/>
                    <ant antfile="get-traces.xml" dir="traces" />
                  </target>
                </configuration>
                <goals>
                  <goal>run</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>

  <build>
    <plugins>
      <!-- We don't use the ant file to clean because of http://jira.codehaus.org/browse/MANTRUN-78 -->
      <plugin>
        <artifactId>maven-clean-plugin</artifactId>
        <executions>
          <execution>
            <id>clean-traces</id>
            <phase>clean</phase>
            <configuration>
              <filesets>
                <fileset><directory>traces/ctf-testsuite</directory></fileset>
                <fileset><directory>traces/synctraces</directory></fileset>
              </filesets>
            </configuration>
            <goals>
              <goal>clean</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>

</project>
