<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (c) 2015 Obeo.
This program and the accompanying materials
are made available under the terms of the Eclipse Public License 2.0
which accompanies this distribution, and is available at
https://www.eclipse.org/legal/epl-2.0/

SPDX-License-Identifier: EPL-2.0

Contributors:
    Obeo - initial API and implementation
-->
<project>
  <modelVersion>4.0.0</modelVersion>
  <groupId>org.eclipse.sirius.tests.rcptt</groupId>
  <artifactId>rcpttTests</artifactId>
  <version>6.6.1-SNAPSHOT</version>
  <packaging>rcpttTest</packaging>

  <pluginRepositories>
    <pluginRepository>
      <id>rcptt-releases</id>
      <name>RCPTT Maven repository</name>
      <url>https://repo.eclipse.org/content/repositories/rcptt-releases/</url>
    </pluginRepository>
    <pluginRepository>
      <id>rcptt-snapshots</id>
      <name>RCPTT Maven Snapshots repository</name>
      <snapshots>
        <updatePolicy>always</updatePolicy>
      </snapshots>
      <url>https://repo.eclipse.org/content/repositories/rcptt-snapshots/</url>
    </pluginRepository>
  </pluginRepositories> 

  <build>
    <plugins>
      <plugin>
        <groupId>org.eclipse.rcptt</groupId>
        <artifactId>rcptt-maven-plugin</artifactId>
        <version>2.3.0</version>
        <extensions>true</extensions>
        <configuration>
          <runner>
            <version>2.3.0</version>
            <vmArgs>
              <vmArg>-Xms256m</vmArg>
              <vmArg>-Xmx1024m</vmArg>
              <vmArg>-XX:+UseG1GC</vmArg>
              <vmArg>-XX:+UseStringDeduplication</vmArg>
            </vmArgs>
          </runner>
          <aut>
            <explicit>../../packaging/org.eclipse.sirius.tests.product/target/products/SiriusTestsProduct-[platform].zip</explicit>
            <vmArgs>
              <vmArg>-Xms256m</vmArg>
              <vmArg>-Xmx1024m</vmArg>
              <vmArg>-XX:+UseG1GC</vmArg>
              <vmArg>-XX:+UseStringDeduplication</vmArg>
            </vmArgs>
          </aut>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>

