<!--
    Copyright (c) 2009, 2019 Xored Software Inc and others.
    All rights reserved. This program and the accompanying materials
    are made available under the terms of the Eclipse Public License v2.0
    which accompanies this distribution, and is available at
    https://www.eclipse.org/legal/epl-v20.html
     
    Contributors:
    	Xored Software Inc - initial API and implementation and/or initial documentation
 -->
<project>

  <modelVersion>4.0.0</modelVersion>
  <artifactId>q7.recording.tests.Papyrus</artifactId>
  <packaging>q7test</packaging>

  <parent>
    <version>2.4.0-SNAPSHOT</version>
    <groupId>q7.recording</groupId> 
    <artifactId>q7.recording.tests</artifactId>
  </parent>

  <build>
    <plugins>
      <plugin>
        <groupId>org.eclipse.rcptt</groupId>
        <artifactId>q7-maven-plugin</artifactId>
        <version>${q7-maven-version}</version>
        <extensions>true</extensions>
        <configuration>
          <aut>
  			<explicit>${q7-AUT-location}</explicit>
		    <args>
              <arg>-licenseUrl</arg>
              <arg>http://licensing.xored.com/pool/04fb850c-d95d-eec0-76f9-12313b043cf6</arg>
            </args>
		    
		  </aut>
		  <q7>
			<version>${q7-runner-version}</version>
		  </q7>
		  <projects>
            <project>${project.basedir}/../sikuli</project>
          </projects>
        </configuration>
      </plugin>
    </plugins>
  </build>

</project>
