<?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</groupId>
    <artifactId>maven_sdk_plugin_config-master</artifactId>
    <version>3.1.0</version>
    <relativePath></relativePath>
  </parent>

  <groupId>org.eclipse.scout.sdk</groupId>
  <artifactId>org.eclipse.scout.sdk</artifactId>
  <version>9.0.0-SNAPSHOT</version>
  <packaging>pom</packaging>
  <name>Eclipse Scout SDK</name>
  <description>Eclipse Scout SDK</description>

  <modules>
    <!-- Must be at first position -->
    <module>../scout-helloworld-app</module>
    <module>../scout-jaxws-module</module>
    <module>../scout-hellojs-app</module>

    <module>../org.eclipse.scout.sdk.core</module>
    <module>../org.eclipse.scout.sdk.core.test</module>
    <module>../org.eclipse.scout.sdk.core.s</module>
    <module>../org.eclipse.scout.sdk.core.s.test</module>

    <module>../org.eclipse.scout.sdk.s2e</module>
    <module>../org.eclipse.scout.sdk.s2e.test</module>
    <module>../org.eclipse.scout.sdk.s2e.doc</module>
    <module>../org.eclipse.scout.sdk.s2e.nls</module>
    <module>../org.eclipse.scout.sdk.s2e.ui</module>

    <module>../org.eclipse.scout.sdk-settings</module>
  </modules>

  <properties>
    <scout.base.version>9.0.0</scout.base.version>
    <base.version>${scout.base.version}</base.version>
    <org.eclipse.scout.rt_version>9.0.0-SNAPSHOT</org.eclipse.scout.rt_version> <!-- Don't replace version number with scout.base.version: Required by regex replacement -->

    <master_coverage_jacoco_destFile>${basedir}/../org.eclipse.scout.sdk/target/jacoco-all.exec</master_coverage_jacoco_destFile>

    <!-- Sonar properties -->
    <sonar.branch>releases_9.0.x</sonar.branch>
    <master_test_timeout>1800</master_test_timeout>
    <sonar.jacoco.reportPath>${master_coverage_jacoco_destFile}</sonar.jacoco.reportPath>

     <!-- exclude fixtures -->
    <sonar.exclusions>
      **/src/main/fixture/**/*,
      **/src/main/client/**/*,
      **/src/main/shared/**/*
    </sonar.exclusions>

    <!-- exclude fixtures, archetypes, UI -->
    <sonar.coverage.exclusions>
      **/src/main/fixture/**/*,
      **/src/main/client/**/*,
      **/src/main/shared/**/*,
      **/src/main/resources/archetype-resources/**/*,
      **/src/main/java/org/eclipse/scout/sdk/s2e/nls/**/*,
      **/src/main/java/org/eclipse/scout/sdk/s2e/ui/**/*,
      **/src/main/java/org/eclipse/scout/sdk/s2e/doc/**/*,
      **/org/eclipse/scout/maven/plugins/updatesite/**/*
    </sonar.coverage.exclusions>

    <!-- dependencies to Eclipse artifacts deployed by org.eclipse.scout.sdk.core.releng/ -->
    <ecj>3.16.0</ecj>
    <ecj-maven>${ecj}</ecj-maven>

    <org.eclipse.osgi>3.13.100</org.eclipse.osgi>
    <org.eclipse.osgi-maven>${org.eclipse.osgi}</org.eclipse.osgi-maven>
    <org.eclipse.osgi-range>[3.13.0,3.14.0)</org.eclipse.osgi-range>

    <org.eclipse.equinox.common>3.10.200</org.eclipse.equinox.common>
    <org.eclipse.equinox.common-maven>${org.eclipse.equinox.common}</org.eclipse.equinox.common-maven>
    <org.eclipse.equinox.common-range>[3.10.0,3.11.0)</org.eclipse.equinox.common-range>

    <org.eclipse.equinox.registry>3.8.200</org.eclipse.equinox.registry>
    <org.eclipse.equinox.registry-maven>${org.eclipse.equinox.registry}</org.eclipse.equinox.registry-maven>
    <org.eclipse.equinox.registry-range>[3.8.0,3.9.0)</org.eclipse.equinox.registry-range>

    <org.eclipse.equinox.preferences>3.7.200</org.eclipse.equinox.preferences>
    <org.eclipse.equinox.preferences-maven>${org.eclipse.equinox.preferences}</org.eclipse.equinox.preferences-maven>
    <org.eclipse.equinox.preferences-range>[3.7.0,3.8.0)</org.eclipse.equinox.preferences-range>

    <org.eclipse.equinox.security>1.3.0</org.eclipse.equinox.security>
    <org.eclipse.equinox.security-maven>${org.eclipse.equinox.security}</org.eclipse.equinox.security-maven>
    <org.eclipse.equinox.security-range>[1.3.0,1.4.0)</org.eclipse.equinox.security-range>

    <org.eclipse.compare>3.7.400</org.eclipse.compare>
    <org.eclipse.compare-maven>${org.eclipse.compare}</org.eclipse.compare-maven>
    <org.eclipse.compare-range>[3.7.0,3.8.0)</org.eclipse.compare-range>

    <org.eclipse.core.resources>3.13.200</org.eclipse.core.resources>
    <org.eclipse.core.resources-maven>${org.eclipse.core.resources}</org.eclipse.core.resources-maven>
    <org.eclipse.core.resources-range>[3.13.0,3.14.0)</org.eclipse.core.resources-range>

    <org.eclipse.core.commands>3.9.200</org.eclipse.core.commands>
    <org.eclipse.core.commands-maven>${org.eclipse.core.commands}</org.eclipse.core.commands-maven>
    <org.eclipse.core.commands-range>[3.9.0,3.10.0)</org.eclipse.core.commands-range>

    <org.eclipse.core.contenttype>3.7.100</org.eclipse.core.contenttype>
    <org.eclipse.core.contenttype-maven>${org.eclipse.core.contenttype}</org.eclipse.core.contenttype-maven>
    <org.eclipse.core.contenttype-range>[3.7.0,3.8.0)</org.eclipse.core.contenttype-range>

    <org.eclipse.core.expressions>3.6.200</org.eclipse.core.expressions>
    <org.eclipse.core.expressions-maven>${org.eclipse.core.expressions}</org.eclipse.core.expressions-maven>
    <org.eclipse.core.expressions-range>[3.6.0,3.7.0)</org.eclipse.core.expressions-range>

    <org.eclipse.core.filesystem>1.7.200</org.eclipse.core.filesystem>
    <org.eclipse.core.filesystem-maven>${org.eclipse.core.filesystem}</org.eclipse.core.filesystem-maven>
    <org.eclipse.core.filesystem-range>[1.7.0,1.8.0)</org.eclipse.core.filesystem-range>

    <org.eclipse.core.variables>3.4.300</org.eclipse.core.variables>
    <org.eclipse.core.variables-maven>${org.eclipse.core.variables}</org.eclipse.core.variables-maven>
    <org.eclipse.core.variables-range>[3.4.0,3.5.0)</org.eclipse.core.variables-range>

    <org.eclipse.core.runtime>3.15.100</org.eclipse.core.runtime>
    <org.eclipse.core.runtime-maven>${org.eclipse.core.runtime}</org.eclipse.core.runtime-maven>
    <org.eclipse.core.runtime-range>[3.15.0,3.16.0)</org.eclipse.core.runtime-range>

    <org.eclipse.core.jobs>3.10.100</org.eclipse.core.jobs>
    <org.eclipse.core.jobs-maven>${org.eclipse.core.jobs}</org.eclipse.core.jobs-maven>
    <org.eclipse.core.jobs-range>[3.10.0,3.11.0)</org.eclipse.core.jobs-range>

    <org.eclipse.debug.core>3.13.100</org.eclipse.debug.core>
    <org.eclipse.debug.core-maven>${org.eclipse.debug.core}</org.eclipse.debug.core-maven>
    <org.eclipse.debug.core-range>[3.13.0,3.14.0)</org.eclipse.debug.core-range>

    <org.eclipse.debug.ui>3.13.200</org.eclipse.debug.ui>
    <org.eclipse.debug.ui-maven>${org.eclipse.debug.ui}</org.eclipse.debug.ui-maven>
    <org.eclipse.debug.ui-range>[3.13.0,3.14.0)</org.eclipse.debug.ui-range>

    <org.eclipse.text>3.8.0</org.eclipse.text>
    <org.eclipse.text-maven>${org.eclipse.text}</org.eclipse.text-maven>
    <org.eclipse.text-range>[3.8.0,3.9.0)</org.eclipse.text-range>

    <org.eclipse.search>3.11.400</org.eclipse.search>
    <org.eclipse.search-maven>${org.eclipse.search}</org.eclipse.search-maven>
    <org.eclipse.search-range>[3.11.0,3.12.0)</org.eclipse.search-range>

    <org.eclipse.ltk.core.refactoring>3.9.200</org.eclipse.ltk.core.refactoring>
    <org.eclipse.ltk.core.refactoring-maven>${org.eclipse.ltk.core.refactoring}</org.eclipse.ltk.core.refactoring-maven>
    <org.eclipse.ltk.core.refactoring-range>[3.9.0,3.10.0)</org.eclipse.ltk.core.refactoring-range>

    <org.eclipse.ltk.ui.refactoring>3.9.200</org.eclipse.ltk.ui.refactoring>
    <org.eclipse.ltk.ui.refactoring-maven>${org.eclipse.ltk.ui.refactoring}</org.eclipse.ltk.ui.refactoring-maven>
    <org.eclipse.ltk.ui.refactoring-range>[3.9.0,3.10.0)</org.eclipse.ltk.ui.refactoring-range>

    <org.eclipse.jdt.core>3.16.0</org.eclipse.jdt.core>
    <org.eclipse.jdt.core-maven>${org.eclipse.jdt.core}</org.eclipse.jdt.core-maven>
    <org.eclipse.jdt.core-range>[3.16.0,3.17.0)</org.eclipse.jdt.core-range>

    <org.eclipse.jdt.core.manipulation>1.11.0</org.eclipse.jdt.core.manipulation>
    <org.eclipse.jdt.core.manipulation-maven>${org.eclipse.jdt.core.manipulation}</org.eclipse.jdt.core.manipulation-maven>
    <org.eclipse.jdt.core.manipulation-range>[1.11.0,1.12.0)</org.eclipse.jdt.core.manipulation-range>

    <org.eclipse.jdt.ui>3.16.0</org.eclipse.jdt.ui>
    <org.eclipse.jdt.ui-maven>${org.eclipse.jdt.ui}</org.eclipse.jdt.ui-maven>
    <org.eclipse.jdt.ui-range>[3.16.0,3.17.0)</org.eclipse.jdt.ui-range>

    <org.eclipse.jdt.debug.ui>3.10.100</org.eclipse.jdt.debug.ui>
    <org.eclipse.jdt.debug.ui-maven>${org.eclipse.jdt.debug.ui}</org.eclipse.jdt.debug.ui-maven>
    <org.eclipse.jdt.debug.ui-range>[3.10.0,3.11.0)</org.eclipse.jdt.debug.ui-range>

    <org.eclipse.jdt.junit>3.11.200</org.eclipse.jdt.junit>
    <org.eclipse.jdt.junit-maven>${org.eclipse.jdt.junit}</org.eclipse.jdt.junit-maven>
    <org.eclipse.jdt.junit-range>[3.11.0,3.12.0)</org.eclipse.jdt.junit-range>

    <org.eclipse.ui.workbench>3.112.100</org.eclipse.ui.workbench>
    <org.eclipse.ui.workbench-maven>${org.eclipse.ui.workbench}</org.eclipse.ui.workbench-maven>
    <org.eclipse.ui.workbench-range>[3.112.0,3.113.0)</org.eclipse.ui.workbench-range>

    <org.eclipse.ui.workbench.texteditor>3.11.100</org.eclipse.ui.workbench.texteditor>
    <org.eclipse.ui.workbench.texteditor-maven>${org.eclipse.ui.workbench.texteditor}</org.eclipse.ui.workbench.texteditor-maven>
    <org.eclipse.ui.workbench.texteditor-range>[3.11.0,3.12.0)</org.eclipse.ui.workbench.texteditor-range>

    <org.eclipse.jface>3.14.100</org.eclipse.jface>
    <org.eclipse.jface-maven>${org.eclipse.jface}</org.eclipse.jface-maven>
    <org.eclipse.jface-range>[3.14.0,3.15.0)</org.eclipse.jface-range>

    <org.eclipse.jface.text>3.15.0</org.eclipse.jface.text>
    <org.eclipse.jface.text-maven>${org.eclipse.jface.text}</org.eclipse.jface.text-maven>
    <org.eclipse.jface.text-range>[3.15.0,3.16.0)</org.eclipse.jface.text-range>

    <org.eclipse.swt.win32.win32.x86>3.108.0</org.eclipse.swt.win32.win32.x86>
    <org.eclipse.swt.win32.win32.x86-maven>${org.eclipse.swt.win32.win32.x86}</org.eclipse.swt.win32.win32.x86-maven>
    <org.eclipse.swt.win32.win32.x86-range>[3.108.0,3.109.0)</org.eclipse.swt.win32.win32.x86-range>

    <org.eclipse.ui.ide>3.14.200</org.eclipse.ui.ide>
    <org.eclipse.ui.ide-maven>${org.eclipse.ui.ide}</org.eclipse.ui.ide-maven>
    <org.eclipse.ui.ide-range>[3.14.0,3.15.0)</org.eclipse.ui.ide-range>

    <org.eclipse.ui.editors>3.11.300</org.eclipse.ui.editors>
    <org.eclipse.ui.editors-maven>${org.eclipse.ui.editors}</org.eclipse.ui.editors-maven>
    <org.eclipse.ui.editors-range>[3.11.0,3.12.0)</org.eclipse.ui.editors-range>

    <org.eclipse.ui>3.111.0</org.eclipse.ui>
    <org.eclipse.ui-maven>${org.eclipse.ui}</org.eclipse.ui-maven>
    <org.eclipse.ui-range>[3.111.0,3.112.0)</org.eclipse.ui-range>

    <org.eclipse.ui.console>3.8.300</org.eclipse.ui.console>
    <org.eclipse.ui.console-maven>${org.eclipse.ui.console}</org.eclipse.ui.console-maven>
    <org.eclipse.ui.console-range>[3.8.0,3.9.0)</org.eclipse.ui.console-range>

    <org.eclipse.ui.views>3.9.200</org.eclipse.ui.views>
    <org.eclipse.ui.views-maven>${org.eclipse.ui.views}</org.eclipse.ui.views-maven>
    <org.eclipse.ui.views-range>[3.9.0,3.10.0)</org.eclipse.ui.views-range>

    <org.eclipse.swt>3.109.0</org.eclipse.swt>

    <org.eclipse.ui.forms>3.7.300</org.eclipse.ui.forms>
    <org.eclipse.ui.forms-maven>${org.eclipse.ui.forms}</org.eclipse.ui.forms-maven>
    <org.eclipse.ui.forms-range>[3.7.0,3.8.0)</org.eclipse.ui.forms-range>

    <org.eclipse.jdt.launching>3.12.0</org.eclipse.jdt.launching>
    <org.eclipse.jdt.launching-maven>${org.eclipse.jdt.launching}</org.eclipse.jdt.launching-maven>
    <org.eclipse.jdt.launching-range>[3.12.0,3.13.0)</org.eclipse.jdt.launching-range>

    <org.eclipse.m2e.core>1.10.0.20181127-2120</org.eclipse.m2e.core>
    <org.eclipse.m2e.core-maven>${org.eclipse.m2e.core}</org.eclipse.m2e.core-maven>
    <org.eclipse.m2e.core-range>[1.10.0,1.11.0)</org.eclipse.m2e.core-range>

    <org.eclipse.m2e.core.ui>1.10.0.20181127-2120</org.eclipse.m2e.core.ui>
    <org.eclipse.m2e.core.ui-maven>${org.eclipse.m2e.core.ui}</org.eclipse.m2e.core.ui-maven>
    <org.eclipse.m2e.core.ui-range>[1.10.0,1.11.0)</org.eclipse.m2e.core.ui-range>

    <org.eclipse.m2e.archetype.common>1.10.0.20181127-2120</org.eclipse.m2e.archetype.common>
    <org.eclipse.m2e.archetype.common-maven>${org.eclipse.m2e.archetype.common}</org.eclipse.m2e.archetype.common-maven>
    <org.eclipse.m2e.archetype.common-range>[1.10.0,1.11.0)</org.eclipse.m2e.archetype.common-range>

    <maven.model.dependency.version>3.5.3</maven.model.dependency.version>
  </properties>

  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>org.eclipse.scout.sdk</groupId>
        <artifactId>org.eclipse.scout.sdk.core</artifactId>
        <version>9.0.0-SNAPSHOT</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.scout.sdk</groupId>
        <artifactId>org.eclipse.scout.sdk.core.test</artifactId>
        <version>9.0.0-SNAPSHOT</version>
      </dependency>

      <dependency>
        <groupId>org.eclipse.scout.sdk</groupId>
        <artifactId>org.eclipse.scout.sdk.core.s</artifactId>
        <version>9.0.0-SNAPSHOT</version>
      </dependency>

      <dependency>
        <groupId>org.eclipse.scout.sdk</groupId>
        <artifactId>org.eclipse.scout.sdk.core.s.test</artifactId>
        <version>9.0.0-SNAPSHOT</version>
      </dependency>

      <dependency>
        <groupId>org.eclipse.scout.sdk.s2e</groupId>
        <artifactId>org.eclipse.scout.sdk.s2e</artifactId>
        <version>9.0.0-SNAPSHOT</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.scout.sdk.s2e</groupId>
        <artifactId>org.eclipse.scout.sdk.s2e</artifactId>
        <version>9.0.0-SNAPSHOT</version>
        <classifier>sources</classifier>
      </dependency>

      <dependency>
        <groupId>org.eclipse.scout.sdk.s2e</groupId>
        <artifactId>org.eclipse.scout.sdk.s2e.doc</artifactId>
        <version>9.0.0-SNAPSHOT</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.scout.sdk.s2e</groupId>
        <artifactId>org.eclipse.scout.sdk.s2e.doc</artifactId>
        <version>9.0.0-SNAPSHOT</version>
        <classifier>sources</classifier>
      </dependency>

      <dependency>
        <groupId>org.eclipse.scout.sdk.s2e</groupId>
        <artifactId>org.eclipse.scout.sdk.s2e.nls</artifactId>
        <version>9.0.0-SNAPSHOT</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.scout.sdk.s2e</groupId>
        <artifactId>org.eclipse.scout.sdk.s2e.nls</artifactId>
        <version>9.0.0-SNAPSHOT</version>
        <classifier>sources</classifier>
      </dependency>

      <dependency>
        <groupId>org.eclipse.scout.sdk.s2e</groupId>
        <artifactId>org.eclipse.scout.sdk.s2e.ui</artifactId>
        <version>9.0.0-SNAPSHOT</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.scout.sdk.s2e</groupId>
        <artifactId>org.eclipse.scout.sdk.s2e.ui</artifactId>
        <version>9.0.0-SNAPSHOT</version>
        <classifier>sources</classifier>
      </dependency>

      <dependency>
        <groupId>org.eclipse.scout.sdk.s2e</groupId>
        <artifactId>org.eclipse.scout.sdk.s2e.test</artifactId>
        <version>9.0.0-SNAPSHOT</version>
      </dependency>

      <!-- Build Dependencies -->
      <dependency>
        <groupId>org.apache.maven</groupId>
        <artifactId>maven-model</artifactId>
        <version>${maven.model.dependency.version}</version>
      </dependency>

      <dependency>
        <groupId>org.eclipse.jdt</groupId>
        <artifactId>ecj</artifactId>
        <version>${ecj-maven}</version>
      </dependency>

      <dependency>
        <groupId>org.eclipse.platform</groupId>
        <artifactId>org.eclipse.core.commands</artifactId>
        <version>${org.eclipse.core.commands-maven}</version>
      </dependency>

      <dependency>
        <groupId>org.eclipse.platform</groupId>
        <artifactId>org.eclipse.equinox.common</artifactId>
        <version>${org.eclipse.equinox.common-maven}</version>
      </dependency>

      <dependency>
        <groupId>org.eclipse.platform</groupId>
        <artifactId>org.eclipse.equinox.preferences</artifactId>
        <version>${org.eclipse.equinox.preferences-maven}</version>
      </dependency>

      <dependency>
        <groupId>org.eclipse.platform</groupId>
        <artifactId>org.eclipse.equinox.registry</artifactId>
        <version>${org.eclipse.equinox.registry-maven}</version>
      </dependency>

      <dependency>
        <groupId>org.eclipse.platform</groupId>
        <artifactId>org.eclipse.equinox.security</artifactId>
        <version>${org.eclipse.equinox.security-maven}</version>
      </dependency>

      <dependency>
        <groupId>org.eclipse.platform</groupId>
        <artifactId>org.eclipse.compare</artifactId>
        <version>${org.eclipse.compare-maven}</version>
      </dependency>

      <dependency>
        <groupId>org.eclipse.platform</groupId>
        <artifactId>org.eclipse.core.expressions</artifactId>
        <version>${org.eclipse.core.expressions-maven}</version>
      </dependency>

      <dependency>
        <groupId>org.eclipse.platform</groupId>
        <artifactId>org.eclipse.core.filesystem</artifactId>
        <version>${org.eclipse.core.filesystem-maven}</version>
      </dependency>

      <dependency>
        <groupId>org.eclipse.platform</groupId>
        <artifactId>org.eclipse.core.variables</artifactId>
        <version>${org.eclipse.core.variables-maven}</version>
      </dependency>

      <dependency>
        <groupId>org.eclipse.platform</groupId>
        <artifactId>org.eclipse.core.resources</artifactId>
        <version>${org.eclipse.core.resources-maven}</version>
      </dependency>

      <dependency>
        <groupId>org.eclipse.platform</groupId>
        <artifactId>org.eclipse.core.runtime</artifactId>
        <version>${org.eclipse.core.runtime-maven}</version>
      </dependency>

      <dependency>
        <groupId>org.eclipse.jdt</groupId>
        <artifactId>org.eclipse.jdt.core.manipulation</artifactId>
        <version>${org.eclipse.jdt.core.manipulation-maven}</version>
      </dependency>

      <dependency>
        <groupId>org.eclipse.jdt</groupId>
        <artifactId>org.eclipse.jdt.core</artifactId>
        <version>${org.eclipse.jdt.core-maven}</version>
      </dependency>

      <dependency>
        <groupId>org.eclipse.platform</groupId>
        <artifactId>org.eclipse.swt</artifactId>
        <version>${org.eclipse.swt}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.platform</groupId>
        <artifactId>org.eclipse.swt.win32.win32.x86_64</artifactId>
        <version>${org.eclipse.swt}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.platform</groupId>
        <artifactId>org.eclipse.swt.win32.win32.x86</artifactId>
        <version>${org.eclipse.swt}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.platform</groupId>
        <artifactId>org.eclipse.swt.gtk.linux.x86_64</artifactId>
        <version>${org.eclipse.swt}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.platform</groupId>
        <artifactId>org.eclipse.swt.gtk.linux.x86</artifactId>
        <version>${org.eclipse.swt}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.platform</groupId>
        <artifactId>org.eclipse.swt.gtk.linux.ppc64</artifactId>
        <version>${org.eclipse.swt}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.platform</groupId>
        <artifactId>org.eclipse.swt.cocoa.macosx.x86_64</artifactId>
        <version>${org.eclipse.swt}</version>
      </dependency>

      <dependency>
        <groupId>org.eclipse.platform</groupId>
        <artifactId>org.eclipse.debug.core</artifactId>
        <version>${org.eclipse.debug.core-maven}</version>
      </dependency>

      <dependency>
        <groupId>org.eclipse.platform</groupId>
        <artifactId>org.eclipse.debug.ui</artifactId>
        <version>${org.eclipse.debug.ui-maven}</version>
      </dependency>

      <dependency>
        <groupId>org.eclipse.jdt</groupId>
        <artifactId>org.eclipse.jdt.junit</artifactId>
        <version>${org.eclipse.jdt.junit-maven}</version>
      </dependency>

      <dependency>
        <groupId>org.eclipse.jdt</groupId>
        <artifactId>org.eclipse.jdt.debug.ui</artifactId>
        <version>${org.eclipse.jdt.debug.ui-maven}</version>
      </dependency>

      <dependency>
        <groupId>org.eclipse.jdt</groupId>
        <artifactId>org.eclipse.jdt.launching</artifactId>
        <version>${org.eclipse.jdt.launching-maven}</version>
      </dependency>

      <dependency>
        <groupId>org.eclipse.jdt</groupId>
        <artifactId>org.eclipse.jdt.ui</artifactId>
        <version>${org.eclipse.jdt.ui-maven}</version>
      </dependency>

      <dependency>
        <groupId>org.eclipse.platform</groupId>
        <artifactId>org.eclipse.jface.text</artifactId>
        <version>${org.eclipse.jface.text-maven}</version>
      </dependency>

      <dependency>
        <groupId>org.eclipse.platform</groupId>
        <artifactId>org.eclipse.text</artifactId>
        <version>${org.eclipse.text}</version>
      </dependency>

      <dependency>
        <groupId>org.eclipse.platform</groupId>
        <artifactId>org.eclipse.ltk.core.refactoring</artifactId>
        <version>${org.eclipse.ltk.core.refactoring-maven}</version>
      </dependency>

      <dependency>
        <groupId>org.eclipse.platform</groupId>
        <artifactId>org.eclipse.ltk.ui.refactoring</artifactId>
        <version>${org.eclipse.ltk.ui.refactoring-maven}</version>
      </dependency>

      <dependency>
        <groupId>org.eclipse.scout.sdk.deps</groupId>
        <artifactId>org.eclipse.m2e.core</artifactId>
        <version>${org.eclipse.m2e.core-maven}</version>
      </dependency>

      <dependency>
        <groupId>org.eclipse.scout.sdk.deps</groupId>
        <artifactId>org.eclipse.m2e.core.ui</artifactId>
        <version>${org.eclipse.m2e.core.ui-maven}</version>
      </dependency>

      <dependency>
        <groupId>org.apache.maven.archetype</groupId>
        <artifactId>archetype-catalog</artifactId>
        <version>2.4</version>
      </dependency>

      <dependency>
        <groupId>org.apache.maven.archetype</groupId>
        <artifactId>archetype-common</artifactId>
        <version>2.4</version>
      </dependency>

      <dependency>
        <groupId>org.eclipse.scout.sdk.deps</groupId>
        <artifactId>org.eclipse.m2e.archetype.common</artifactId>
        <version>${org.eclipse.m2e.archetype.common-maven}</version>
      </dependency>

      <dependency>
        <groupId>org.eclipse.platform</groupId>
        <artifactId>org.eclipse.search</artifactId>
        <version>${org.eclipse.search-maven}</version>
      </dependency>

      <dependency>
        <groupId>org.eclipse.platform</groupId>
        <artifactId>org.eclipse.ui.console</artifactId>
        <version>${org.eclipse.ui.console-maven}</version>
      </dependency>

      <dependency>
        <groupId>org.eclipse.platform</groupId>
        <artifactId>org.eclipse.ui.editors</artifactId>
        <version>${org.eclipse.ui.editors-maven}</version>
      </dependency>

      <dependency>
        <groupId>org.eclipse.platform</groupId>
        <artifactId>org.eclipse.ui.ide</artifactId>
        <version>${org.eclipse.ui.ide-maven}</version>
      </dependency>

      <dependency>
        <groupId>org.eclipse.platform</groupId>
        <artifactId>org.eclipse.ui.workbench</artifactId>
        <version>${org.eclipse.ui.workbench-maven}</version>
      </dependency>

      <dependency>
        <groupId>org.eclipse.platform</groupId>
        <artifactId>org.eclipse.ui</artifactId>
        <version>${org.eclipse.ui-maven}</version>
      </dependency>

      <dependency>
        <groupId>org.apache.maven</groupId>
        <artifactId>maven-embedder</artifactId>
        <version>${maven.model.dependency.version}</version>
        <exclusions>
          <exclusion>
            <!-- these classes are already included in org.eclipse.aether:aether-api -->
            <groupId>org.apache.maven.resolver</groupId>
            <artifactId>maven-resolver-api</artifactId>
          </exclusion>
          <exclusion>
            <!-- these classes are already included in org.eclipse.aether:aether-util -->
            <groupId>org.apache.maven.resolver</groupId>
            <artifactId>maven-resolver-util</artifactId>
          </exclusion>
        </exclusions>
      </dependency>

      <dependency>
        <groupId>org.apache.maven.resolver</groupId>
        <artifactId>maven-resolver-connector-basic</artifactId>
        <version>1.1.1</version>
        <exclusions>
          <exclusion>
            <!-- these classes are already included in org.eclipse.aether:aether-api -->
            <groupId>org.apache.maven.resolver</groupId>
            <artifactId>maven-resolver-api</artifactId>
          </exclusion>
          <exclusion>
            <!-- these classes are already included in org.eclipse.aether:aether-util -->
            <groupId>org.apache.maven.resolver</groupId>
            <artifactId>maven-resolver-util</artifactId>
          </exclusion>
        </exclusions>
      </dependency>

      <dependency>
        <groupId>org.apache.maven.resolver</groupId>
        <artifactId>maven-resolver-transport-wagon</artifactId>
        <version>1.1.1</version>
        <exclusions>
          <exclusion>
            <!-- these classes are already included in org.eclipse.aether:aether-api -->
            <groupId>org.apache.maven.resolver</groupId>
            <artifactId>maven-resolver-api</artifactId>
          </exclusion>
          <exclusion>
            <!-- these classes are already included in org.eclipse.aether:aether-util -->
            <groupId>org.apache.maven.resolver</groupId>
            <artifactId>maven-resolver-util</artifactId>
          </exclusion>
        </exclusions>
      </dependency>

      <dependency>
        <groupId>org.apache.maven</groupId>
        <artifactId>maven-compat</artifactId>
        <version>${maven.model.dependency.version}</version>
        <exclusions>
          <exclusion>
            <!-- these classes are already included in org.eclipse.aether:aether-api -->
            <groupId>org.apache.maven.resolver</groupId>
            <artifactId>maven-resolver-api</artifactId>
          </exclusion>
          <exclusion>
            <!-- these classes are already included in org.eclipse.aether:aether-util -->
            <groupId>org.apache.maven.resolver</groupId>
            <artifactId>maven-resolver-util</artifactId>
          </exclusion>
        </exclusions>
      </dependency>

      <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-classic</artifactId>
        <version>1.2.3</version>
      </dependency>

      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>jul-to-slf4j</artifactId>
        <version>1.7.25</version>
      </dependency>

      <dependency>
        <groupId>io.takari.aether</groupId>
        <artifactId>aether-connector-okhttp</artifactId>
        <version>0.17.4</version>
      </dependency>

      <dependency>
        <groupId>org.apache.maven.wagon</groupId>
        <artifactId>wagon-provider-api</artifactId>
        <version>3.0.0</version>
      </dependency>

      <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-lang3</artifactId>
        <version>3.1</version> <!-- use 3.1 even though m2e uses 3.5 because 3.1 is the version on orbit -->
      </dependency>

      <dependency>
        <groupId>wsdl4j</groupId>
        <artifactId>wsdl4j</artifactId>
        <version>1.6.2</version>
      </dependency>

      <!-- Test Dependencies -->
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>1.7.25</version>
      </dependency>

      <dependency>
        <groupId>com.google.guava</groupId>
        <artifactId>guava</artifactId>
        <version>21.0</version>
      </dependency>

      <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
      </dependency>

      <dependency>
        <groupId>org.eclipse.scout.rt</groupId>
        <artifactId>org.eclipse.scout.rt</artifactId>
        <version>${org.eclipse.scout.rt_version}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
    </dependencies>
  </dependencyManagement>

  <build>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.eclipse.scout</groupId>
          <artifactId>eclipse-settings-maven-plugin</artifactId>
          <dependencies>
            <dependency>
              <groupId>org.eclipse.scout.sdk</groupId>
              <artifactId>org.eclipse.scout.sdk-settings</artifactId>
              <version>${project.version}</version>
            </dependency>
          </dependencies>
        </plugin>
      </plugins>
    </pluginManagement>
    <plugins>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>flatten-maven-plugin</artifactId>
        <inherited>false</inherited>
        <configuration>
          <flattenMode>bom</flattenMode>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-scm-plugin</artifactId>
        <configuration>
          <basedir>${project.basedir}/..</basedir>
        </configuration>
      </plugin>
    </plugins>
  </build>

  <!-- primarily for license header generation -->
  <inceptionYear>2015</inceptionYear>

  <organization>
    <name>Eclipse Scout Project</name>
    <url>https://eclipse.org/scout</url>
  </organization>

  <licenses>
    <license>
      <name>Eclipse Public License v1.0</name>
      <url>http://www.eclipse.org/legal/epl-v10.html</url>
      <comments>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.htm</comments>
    </license>
  </licenses>

  <developers>
    <developer>
      <name>Eclipse Scout Committers</name>
      <email>scout-dev@eclipse.org</email>
      <organization>Eclipse</organization>
      <organizationUrl>https://www.eclipse.org</organizationUrl>
    </developer>
  </developers>

  <mailingLists>
    <mailingList>
      <name>scout-dev Mailing List</name>
      <subscribe>https://dev.eclipse.org/mailman/listinfo/scout-dev</subscribe>
      <unsubscribe>https://dev.eclipse.org/mailman/listinfo/scout-dev</unsubscribe>
      <post>scout-dev@eclipse.org</post>
      <archive>http://dev.eclipse.org/mhonarc/lists/scout-dev</archive>
    </mailingList>
  </mailingLists>

  <scm>
    <connection>scm:git:git://git.eclipse.org/gitroot/scout/org.eclipse.scout.sdk.git</connection>
    <developerConnection>scm:git:ssh://${eclipse_gerrit_username}@git.eclipse.org:29418/scout/org.eclipse.scout.sdk</developerConnection>
    <tag>releases/9.0.x</tag>
    <url>http://git.eclipse.org/c/scout/org.eclipse.scout.sdk.git/</url>
  </scm>

  <issueManagement>
    <system>Bugzilla</system>
    <url>https://bugs.eclipse.org/bugs/buglist.cgi?classification=Technology;component=Scout SDK;product=Scout;query_format=advanced</url>
  </issueManagement>

  <repositories>
    <repository>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
      <id>eclipse.release</id>
      <name>eclipse-release-repo</name>
      <url>https://repo.eclipse.org/content/groups/releases/</url>
    </repository>
    <repository>
      <releases>
        <enabled>false</enabled>
      </releases>
      <snapshots>
        <enabled>true</enabled>
      </snapshots>
      <id>eclipse.snapshot</id>
      <name>eclipse-snapshot-repo</name>
      <url>https://repo.eclipse.org/content/groups/snapshots/</url>
    </repository>
  </repositories>

  <pluginRepositories>
    <pluginRepository>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
      <id>eclipse.release</id>
      <name>eclipse-release-repo</name>
      <url>https://repo.eclipse.org/content/groups/releases/</url>
    </pluginRepository>
    <pluginRepository>
      <releases>
        <enabled>false</enabled>
      </releases>
      <snapshots>
        <enabled>true</enabled>
      </snapshots>
      <id>eclipse.snapshot</id>
      <name>eclipse-snapshot-repo</name>
      <url>https://repo.eclipse.org/content/groups/snapshots/</url>
    </pluginRepository>
  </pluginRepositories>

  <distributionManagement>
    <repository>
      <id>repo.eclipse.org</id>
      <name>Scout Repository - Releases</name>
      <url>https://repo.eclipse.org/content/repositories/scout-releases/</url>
    </repository>
    <snapshotRepository>
      <id>repo.eclipse.org</id>
      <name>Scout Repository - Snapshots</name>
      <url>https://repo.eclipse.org/content/repositories/scout-snapshots/</url>
    </snapshotRepository>
  </distributionManagement>

  <profiles>
    <profile>
      <id>swt_win_x64</id>
      <activation>
        <os>
          <family>windows</family>
          <arch>amd64</arch>
        </os>
      </activation>
      <properties>
        <osgi.platform>win32.win32.x86_64</osgi.platform>
      </properties>
    </profile>
    <profile>
      <id>swt_win_x86</id>
      <activation>
        <os>
          <family>windows</family>
          <arch>x86</arch>
        </os>
      </activation>
      <properties>
        <osgi.platform>win32.win32.x86</osgi.platform>
      </properties>
    </profile>
    <profile>
      <id>swt_linux_x64</id>
      <activation>
        <os>
          <family>linux</family>
          <arch>amd64</arch>
        </os>
      </activation>
      <properties>
        <osgi.platform>gtk.linux.x86_64</osgi.platform>
      </properties>
    </profile>
    <profile>
      <id>swt_linux_x86</id>
      <activation>
        <os>
          <family>linux</family>
          <arch>x86</arch>
        </os>
      </activation>
      <properties>
        <osgi.platform>gtk.linux.x86</osgi.platform>
      </properties>
    </profile>
    <profile>
      <id>swt_linux_ppc</id>
      <activation>
        <os>
          <family>linux</family>
          <arch>ppc64</arch>
        </os>
      </activation>
      <properties>
        <osgi.platform>gtk.linux.ppc64</osgi.platform>
      </properties>
    </profile>
    <profile>
      <id>swt_mac</id>
      <activation>
        <os>
          <family>mac</family>
        </os>
      </activation>
      <properties>
        <osgi.platform>cocoa.macosx.x86_64</osgi.platform>
      </properties>
    </profile>

    <profile>
      <id>release.setversion</id>
      <activation>
        <activeByDefault>false</activeByDefault>
      </activation>
      <build>
        <plugins>
          <plugin>
            <groupId>com.google.code.maven-replacer-plugin</groupId>
            <artifactId>replacer</artifactId>
            <executions>
              <execution>
                <id>replace_scout_version_parent_pom</id>
                <goals>
                  <goal>replace</goal>
                </goals>
                <phase>generate-resources</phase>
                <configuration>
                  <basedir>${project.basedir}</basedir>
                  <includes>
                    <include>pom.xml</include>
                  </includes>
                  <token>(\\x3corg.eclipse.scout.rt_version\\x3e)[0-9A-Z\\.\\-]*(\\x3c/org.eclipse.scout.rt_version\\x3e)</token>
                  <value>$1${org.eclipse.scout.rt_version}$2</value>
                  <unescape>true</unescape>
                </configuration>
              </execution>
              <execution>
                <id>replace_scout_version_project_helper</id>
                <goals>
                  <goal>replace</goal>
                </goals>
                <phase>generate-resources</phase>
                <configuration>
                  <basedir>${project.basedir}/..</basedir>
                  <includes>
                    <include>**/ScoutProjectNewHelper.java</include>
                  </includes>
                  <token>(_VERSION = \\")[0-9A-Z\\.\\-]*(\\";)</token>
                  <value>$1${org.eclipse.scout.rt_version}$2</value>
                  <unescape>true</unescape>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>

    <profile>
      <id>release.checkin</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-scm-plugin</artifactId>
            <configuration>
              <includes>*/pom.xml,**/ScoutProjectNewHelper.java,*/src/main/resources/archetype-resources/*/pom.xml,*/feature.xml,*/category.xml</includes>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>
</project>
