<?xml version="1.0" encoding="UTF-8"?>
<!--
  ~ Copyright (c) 2010-2020 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
  ~ https://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 https://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>11.0.0-SNAPSHOT</version>
    <relativePath>../org.eclipse.scout.sdk</relativePath>
  </parent>

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

  <dependencies>
    <dependency>
      <groupId>org.eclipse.scout.sdk</groupId>
      <artifactId>org.eclipse.scout.sdk.core.s</artifactId>
    </dependency>
    <dependency>
      <groupId>org.eclipse.scout.sdk</groupId>
      <artifactId>org.eclipse.scout.sdk.core.test</artifactId>
    </dependency>

    <!-- For embedded Maven execution -->
    <dependency>
      <groupId>org.apache.maven</groupId>
      <artifactId>maven-embedder</artifactId>
      <exclusions>
        <!-- use jakarta modules -->
        <exclusion>
          <groupId>javax.inject</groupId>
          <artifactId>javax.inject</artifactId>
        </exclusion>
        <exclusion>
          <groupId>javax.annotation</groupId>
          <artifactId>jsr250-api</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.apache.maven</groupId>
      <artifactId>maven-compat</artifactId>
      <exclusions>
        <!-- use jakarta modules -->
        <exclusion>
          <groupId>javax.inject</groupId>
          <artifactId>javax.inject</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.apache.maven.resolver</groupId>
      <artifactId>maven-resolver-connector-basic</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.maven.resolver</groupId>
      <artifactId>maven-resolver-transport-wagon</artifactId>
    </dependency>
    <dependency>
      <groupId>io.takari.aether</groupId>
      <artifactId>aether-connector-okhttp</artifactId>
      <exclusions>
        <exclusion>
          <groupId>org.eclipse.aether</groupId>
          <artifactId>aether-util</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.apache.maven.wagon</groupId>
      <artifactId>wagon-provider-api</artifactId>
    </dependency>
    <dependency>
      <!-- replace for excluded javax.annotation -->
      <!-- replace for excluded javax.inject -->
      <!-- in fact we would only need: -->
      <!-- jakarta.annotation:jakarta.annotation-api and (org.glassfish.hk2.external:jakarta.inject or jakarta.inject:jakarta.inject-api) -->
      <!-- but we use same as everywhere in scout -->
      <groupId>org.glassfish.jersey.inject</groupId>
      <artifactId>jersey-hk2</artifactId>
      <exclusions>
        <exclusion>
          <groupId>org.glassfish.hk2.external</groupId>
          <artifactId>aopalliance-repackaged</artifactId>
        </exclusion>
      </exclusions>
    </dependency>

    <!-- Scout RT Dependencies to test against -->
    <dependency>
      <groupId>org.eclipse.scout.rt</groupId>
      <artifactId>org.eclipse.scout.rt.ui.html.test</artifactId>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <!-- NLS tests need sources of org.eclipse.scout.rt.ui.html.UiTextContributor -->
      <groupId>org.eclipse.scout.rt</groupId>
      <artifactId>org.eclipse.scout.rt.ui.html</artifactId>
      <scope>test</scope>
      <classifier>sources</classifier>
    </dependency>
    <dependency>
      <!-- NLS tests need sources of org.eclipse.scout.rt.shared.services.common.text.ScoutTextProviderService -->
      <groupId>org.eclipse.scout.rt</groupId>
      <artifactId>org.eclipse.scout.rt.shared</artifactId>
      <scope>test</scope>
      <classifier>sources</classifier>
    </dependency>
    <dependency>
      <!-- NLS tests need sources of org.eclipse.scout.rt.security.ScoutSecurityTextProviderService -->
      <groupId>org.eclipse.scout.rt</groupId>
      <artifactId>org.eclipse.scout.rt.security</artifactId>
      <scope>test</scope>
      <classifier>sources</classifier>
    </dependency>
    <dependency>
      <groupId>org.eclipse.scout.rt</groupId>
      <artifactId>org.eclipse.scout.rt.server.test</artifactId>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.eclipse.scout.rt</groupId>
      <artifactId>org.eclipse.scout.rt.server.jaxws</artifactId>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.eclipse.scout.rt</groupId>
      <artifactId>org.eclipse.scout.rt.dataobject</artifactId>
    </dependency>
  </dependencies>

  <profiles>
    <profile>
      <id>add-chart-dependency-if-available</id>
      <activation>
        <property>
          <name>org.eclipse.scout.rt_version</name>
          <value>!10.0.0-SNAPSHOT</value>
        </property>
      </activation>
      <dependencies>
        <dependency>
          <groupId>org.eclipse.scout.rt</groupId>
          <artifactId>org.eclipse.scout.rt.chart.ui.html</artifactId>
        </dependency>
      </dependencies>
    </profile>
  </profiles>

  <build>
    <pluginManagement>
      <plugins>
        <plugin>
          <!-- Required because the artifact 'org.eclipse.scout.rt.ui.html' exists twice on the classpath (binary jar & source jar) -->
          <!-- This artifact contains json files in the binary and the source jar which is a resource duplicate. Can be ignored because the json file is not used by the test -->
          <groupId>org.basepom.maven</groupId>
          <artifactId>duplicate-finder-maven-plugin</artifactId>
          <configuration>
            <skip>${master_sanityCheck_skip}</skip>
            <printEqualFiles>false</printEqualFiles>
            <failBuildInCaseOfConflict>true</failBuildInCaseOfConflict>
            <failBuildInCaseOfDifferentContentConflict>true</failBuildInCaseOfDifferentContentConflict>
            <failBuildInCaseOfEqualContentConflict>true</failBuildInCaseOfEqualContentConflict>
            <checkCompileClasspath>true</checkCompileClasspath>
            <checkRuntimeClasspath>true</checkRuntimeClasspath>
            <checkTestClasspath>true</checkTestClasspath>
            <quiet>false</quiet>
            <preferLocal>true</preferLocal>
            <useResultFile>false</useResultFile>
            <includePomProjects>true</includePomProjects>
            <ignoredResourcePatterns>
              <ignoredResourcePattern>.*json$</ignoredResourcePattern> <!-- Added because of 'org.eclipse.scout.rt.ui.html' -->
              <ignoredResourcePattern>.*ico$</ignoredResourcePattern>
              <ignoredResourcePattern>.*jpg$</ignoredResourcePattern>
              <ignoredResourcePattern>.*png$</ignoredResourcePattern>
              <ignoredResourcePattern>.*gif$</ignoredResourcePattern>
              <ignoredResourcePattern>.*html$</ignoredResourcePattern>
              <ignoredResourcePattern>.*xml$</ignoredResourcePattern>
              <ignoredResourcePattern>.*txt$</ignoredResourcePattern>
              <ignoredResourcePattern>.*.api_description$</ignoredResourcePattern>
              <ignoredResourcePattern>.*options$</ignoredResourcePattern>
              <ignoredResourcePattern>.*properties$</ignoredResourcePattern>
              <ignoredResourcePattern>.*gitkeep$</ignoredResourcePattern>
              <ignoredResourcePattern>.*sql$</ignoredResourcePattern>
              <ignoredResourcePattern>.*xjb$</ignoredResourcePattern>
              <ignoredResourcePattern>.*exsd$</ignoredResourcePattern>
              <ignoredResourcePattern>.*about.ini$</ignoredResourcePattern>
            </ignoredResourcePatterns>
          </configuration>
        </plugin>
      </plugins>
    </pluginManagement>
    <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/client</source>
                <source>src/test/shared</source>
              </sources>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
</project>
