<!--
    Copyright (c) 2009, 2016 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>
  <groupId>q7.recording</groupId> 
  <artifactId>q7.recording.tests.Graphiti</artifactId>
  <version>2.3.0-SNAPSHOT</version>
  <packaging>q7test</packaging>

  <parent>
    <version>2.3.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>
