<?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 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 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.5.2-SNAPSHOT</version>
  </parent>
  <artifactId>org.eclipse.rcptt.tesla.jface.aspects.rap</artifactId>
  <packaging>eclipse-plugin</packaging>
  <dependencies>
    <dependency>
      <groupId>org.aspectj</groupId>
      <artifactId>aspectjrt</artifactId>
      <version>${aspectj_dep}</version>
    </dependency>
  </dependencies>
  <build>
    <plugins>
      <plugin>
        <groupId>${tycho-groupid}</groupId>
        <artifactId>tycho-compiler-plugin</artifactId>
        <configuration>
          <excludeResources>
            <exludeResource>**/*.aj</exludeResource>
          </excludeResources>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>aspectj-maven-plugin</artifactId>
        <executions>
          <execution>
            <id>compile</id>
            <configuration>
              <source>${ajJavaSource}</source>
              <target>${ajJavaTarget}</target>
              <complianceLevel>${ajJavaCompilance}</complianceLevel>
              <aspectDirectory>src</aspectDirectory>
              <Xlint>ignore</Xlint>
              <Xreweavable>true</Xreweavable>
              <deprecation>true</deprecation>
              <!--ajdtBuildDefFile>build-1-5.ajproperties</ajdtBuildDefFile-->
            </configuration>
            <goals>
              <goal>compile</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
</project>
