<!--
    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 v1.0
    which accompanies this distribution, and is available at
    http://www.eclipse.org/legal/epl-v10.html
     
    Contributors:
    	Xored Software Inc - initial API and implementation and/or initial documentation
 -->
<project>

  <modelVersion>4.0.0</modelVersion>
  <artifactId>q7.recording.tests.Q7</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>
