<?xml version="1.0" encoding="UTF-8"?>
<!--
  ~ Copyright (c) 2010-2021 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.rt</groupId>
    <artifactId>org.eclipse.scout.rt</artifactId>
    <version>11.0.22</version>
    <relativePath>../org.eclipse.scout.rt</relativePath>
  </parent>

  <artifactId>eclipse-scout-chart</artifactId>

  <properties>
    <master_skip_copy_webpack_build_output>true</master_skip_copy_webpack_build_output>
  </properties>

  <dependencies>
    <!-- Necessary for JS code completion when Scout is in the same IntelliJ Project-->
    <dependency>
      <groupId>org.eclipse.scout.rt</groupId>
      <artifactId>eclipse-scout-core</artifactId>
      <optional>true</optional>
    </dependency>
  </dependencies>

  <build>
    <plugins>
      <plugin>
        <artifactId>maven-clean-plugin</artifactId>
        <configuration>
          <filesets>
            <fileset>
              <directory>dist</directory>
              <includes>
                <include>**/*</include>
              </includes>
              <followSymlinks>false</followSymlinks>
            </fileset>
          </filesets>
        </configuration>
      </plugin>
      <!--
        The ResourceBuilder builds texts.json and locales.json and puts them into the dist folder.
        These files may be used for plain Scout JS apps that don't have a Scout backend generating and serving these files.
      -->
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>exec-maven-plugin</artifactId>
        <executions>
          <execution>
            <phase>generate-resources</phase>
            <goals>
              <goal>java</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <mainClass>org.eclipse.scout.rt.ui.html.res.loader.ResourceBuilder</mainClass>
          <includeProjectDependencies>false</includeProjectDependencies>
          <includePluginDependencies>true</includePluginDependencies>
          <!-- The Scout platform uses parallel streams for some operations which uses the ForkJoinPool.
          exec-maven-plugin must not wait for threads of this pool to stop because that may take a while.-->
          <cleanupDaemonThreads>false</cleanupDaemonThreads>
          <arguments>
            <argument>texts.json</argument>
            <argument>-outputDir</argument>
            <argument>${project.basedir}/dist</argument>
            <argument>-contributors</argument>
            <argument>org.eclipse.scout.rt.chart.ui.html.ChartUiTextContributor</argument>
          </arguments>
          <systemProperties>
            <systemProperty>
              <key>scout.ui.locales</key>
              <value>all</value>
            </systemProperty>
            <systemProperty>
              <key>logback.configurationFile</key>
              <value>${project.basedir}/../eclipse-scout-core/logback.xml</value>
            </systemProperty>
          </systemProperties>
        </configuration>
        <dependencies>
          <dependency>
            <groupId>org.eclipse.scout.rt</groupId>
            <artifactId>org.eclipse.scout.rt.chart.ui.html</artifactId>
            <version>${project.version}</version>
          </dependency>
          <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <!--suppress MavenModelInspection -->
            <version>${logback.version}</version>
          </dependency>
        </dependencies>
      </plugin>
    </plugins>
  </build>

</project>
