<?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
  ~ 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_rt_plugin_config-master</artifactId>
    <version>3.12.6</version>
    <relativePath />
  </parent>

  <groupId>${groupId}</groupId>
  <artifactId>${rootArtifactId}</artifactId>
  <version>${version}</version>
  <packaging>pom</packaging>

  <name>${displayName} Parent Module</name>

  <properties>
    <${groupId}.${rootArtifactId}.version>${project.version}</${groupId}.${rootArtifactId}.version>
    <jdk.source.version>${javaVersion}</jdk.source.version>
    <org.eclipse.scout.rt.version>11.0.0-alpha.6</org.eclipse.scout.rt.version>
    <master_npm_release_dependency_mapping>--mapping.0.regex=@eclipse-scout --mapping.0.version=${org.eclipse.scout.rt.version}</master_npm_release_dependency_mapping>
  </properties>

  <modules>
    <module>../${rootArtifactId}.shared</module>
    <module>../${rootArtifactId}.server</module>
    <module>../${rootArtifactId}.client</module>
    <module>../${rootArtifactId}.server.app.war</module>
    <module>../${rootArtifactId}.ui.html</module>
    <module>../${rootArtifactId}.ui.html.app.war</module>
  </modules>

  <dependencyManagement>
    <dependencies>
      <!-- Scout Dependencies -->
      <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>

      <!-- Application Dependencies -->
      <dependency>
        <groupId>${groupId}</groupId>
        <artifactId>${rootArtifactId}.client</artifactId>
        <version>${${groupId}.${rootArtifactId}.version}</version>
      </dependency>
      <dependency>
        <groupId>${groupId}</groupId>
        <artifactId>${rootArtifactId}.shared</artifactId>
        <version>${${groupId}.${rootArtifactId}.version}</version>
      </dependency>
      <dependency>
        <groupId>${groupId}</groupId>
        <artifactId>${rootArtifactId}.server</artifactId>
        <version>${${groupId}.${rootArtifactId}.version}</version>
      </dependency>
      <dependency>
        <groupId>${groupId}</groupId>
        <artifactId>${rootArtifactId}.ui.html</artifactId>
        <version>${${groupId}.${rootArtifactId}.version}</version>
      </dependency>
    </dependencies>
  </dependencyManagement>
</project>
