<?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>
    <groupId>org.eclipse.rcptt.module.rap</groupId>
    <artifactId>rcptt.runtime.watson</artifactId>
    <version>2.5.2-SNAPSHOT</version>
  </parent>

  <artifactId>org.eclipse.rcptt.watson.aspects.swt.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>
