<?xml version="1.0" encoding="UTF-8"?>
<!--

    Copyright (c) 2015 BSI Business Systems Integration AG.
    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:
        BSI Business Systems Integration AG - initial API and implementation

-->
<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.scout.sdk</groupId>
    <artifactId>org.eclipse.scout.sdk</artifactId>
    <version>10.0.8</version>
    <relativePath>../org.eclipse.scout.sdk/pom.xml</relativePath>
  </parent>

  <artifactId>org.eclipse.scout.sdk.core.test</artifactId>
  <packaging>jar</packaging>
  <name>${project.groupId}:${project.artifactId}</name>

  <dependencies>
    <!-- Build Dependencies -->
    <dependency>
      <groupId>org.eclipse.scout.sdk</groupId>
      <artifactId>org.eclipse.scout.sdk.core.ecj</artifactId>
    </dependency>
    
    <!-- Test Dependencies -->
    <dependency>
      <groupId>org.junit.jupiter</groupId>
      <artifactId>junit-jupiter-api</artifactId>
    </dependency>
    <dependency>
      <groupId>org.junit.platform</groupId>
      <artifactId>junit-platform-launcher</artifactId>
    </dependency>
    <dependency>
      <groupId>org.junit.jupiter</groupId>
      <artifactId>junit-jupiter-engine</artifactId>
    </dependency>
    <dependency>
      <groupId>org.junit.jupiter</groupId>
      <artifactId>junit-jupiter-params</artifactId>
    </dependency>
    <dependency>
      <groupId>org.mockito</groupId>
      <artifactId>mockito-core</artifactId>
    </dependency>
    <dependency>
      <groupId>javax.annotation</groupId>
      <artifactId>javax.annotation-api</artifactId>
    </dependency>
  </dependencies>

  <profiles>
    <profile>
      <id>fixture_test_src_folder</id>
      <activation>
        <file>
          <exists>${basedir}/src/test/fixture</exists>
        </file>
      </activation>
      <build>
        <plugins>
          <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>build-helper-maven-plugin</artifactId>
            <executions>
              <execution>
                <id>add-test-source</id>
                <goals>
                  <goal>add-test-source</goal>
                </goals>
                <phase>generate-sources</phase>
                <configuration>
                  <sources>
                    <source>src/test/fixture</source>
                  </sources>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>

  <build>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.eclipse.scout</groupId>
          <artifactId>eclipse-settings-maven-plugin</artifactId>
          <configuration>
            <additionalConfig>
              <file>
                <name>.settings/.jsdtscope</name>
                <location>/.jsdtscope</location>
              </file>
              <file>
                <name>.settings/com.eclipsesource.jshint.ui.prefs</name>
                <location>/com.eclipsesource.jshint.ui.prefs</location>
              </file>
              <file>
                <name>.settings/de.loskutov.anyedit.AnyEditTools.prefs</name>
                <location>/de.loskutov.anyedit.AnyEditTools.prefs</location>
              </file>
              <file>
                <name>.settings/org.eclipse.core.resources.prefs</name>
                <location>/org.eclipse.core.resources.prefs</location>
              </file>
              <file>
                <name>.settings/org.eclipse.core.runtime.prefs</name>
                <location>/org.eclipse.core.runtime.prefs</location>
              </file>
              <!--
              Do not copy jdt.core.prefs from template because they are different for the test plugin
              <file>
                <name>.settings/org.eclipse.jdt.core.prefs</name>
                <location>/org.eclipse.jdt.core.prefs</location>
              </file>
               -->
              <file>
                <name>.settings/org.eclipse.jdt.ui.prefs</name>
                <location>/org.eclipse.jdt.ui.prefs</location>
              </file>
              <file>
                <name>.settings/org.eclipse.m2e.core.prefs</name>
                <location>/org.eclipse.m2e.core.prefs</location>
              </file>
              <file>
                <name>.settings/org.eclipse.wst.jsdt.core.prefs</name>
                <location>/org.eclipse.wst.jsdt.core.prefs</location>
              </file>
              <file>
                <name>.settings/org.eclipse.wst.jsdt.ui.prefs</name>
                <location>/org.eclipse.wst.jsdt.ui.prefs</location>
              </file>
              <file>
                <name>.settings/org.eclipse.wst.jsdt.ui.superType.container</name>
                <location>/org.eclipse.wst.jsdt.ui.superType.container</location>
              </file>
              <file>
                <name>.settings/org.eclipse.wst.jsdt.ui.superType.name</name>
                <location>/org.eclipse.wst.jsdt.ui.superType.name</location>
              </file>
            </additionalConfig>
          </configuration>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>
</project>
