<?xml version="1.0" encoding="UTF-8"?>
<!--
    /*******************************************************************************
     * 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 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/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <artifactId>tesla</artifactId>
    <groupId>org.eclipse.rcptt.tesla</groupId>
    <version>2.4.3-SNAPSHOT</version>
  </parent>
  <artifactId>org.eclipse.rcptt.tesla.recording.swt.rap</artifactId>
  <packaging>eclipse-plugin</packaging>
  <dependencies>
    <dependency>
      <groupId>org.eclipse.rcptt.tesla</groupId>
      <artifactId>org.eclipse.rcptt.tesla.swt.fragment.rap</artifactId>
      <version>2.4.3-SNAPSHOT</version>
      <type>eclipse-plugin</type>
    </dependency>
  </dependencies>
  <build>
    <plugins>
      <plugin>
        <groupId>${tycho-groupid}</groupId>
        <artifactId>tycho-compiler-plugin</artifactId>
        <configuration>
          <extraClasspathElements>
            <extraClasspathElement>
              <groupId>org.eclipse.rcptt.tesla</groupId>
              <artifactId>org.eclipse.rcptt.tesla.swt.fragment.rap</artifactId>
              <version>2.4.3-SNAPSHOT</version>
            </extraClasspathElement>
          </extraClasspathElements>
        </configuration>
        <dependencies>
          <dependency>
            <groupId>org.eclipse.rcptt.tesla</groupId>
            <artifactId>org.eclipse.rcptt.tesla.swt.fragment.rap</artifactId>
            <version>2.4.3-SNAPSHOT</version>
          </dependency>
        </dependencies>
      </plugin>
    </plugins>
  </build>
</project>
