<?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_plugin_config-master</artifactId>
    <version>3.12.6-SNAPSHOT</version>
    <relativePath>../maven_plugin_config-master</relativePath>
  </parent>

  <artifactId>maven_rt_plugin_config-master</artifactId>
  <packaging>pom</packaging>
  <name>Maven Master Plugin Build Configuration - RT</name>

  <properties>
    <master_skip_npm_build_dev>false</master_skip_npm_build_dev>
    <master_skip_npm_build_prod>false</master_skip_npm_build_prod>
    <master_skip_karma_test>${master_webTest_skip}</master_skip_karma_test>
    <master_skip_copy_webpack_build_output>false</master_skip_copy_webpack_build_output>
    <master_skip_snapshot_predependency>true</master_skip_snapshot_predependency>
    <master_skip_snapshot_postdependency>true</master_skip_snapshot_postdependency>
    <master_skip_release_predependency>true</master_skip_release_predependency>
    <master_skip_release_postdependency>true</master_skip_release_postdependency>
    <master_node_dir>${project.basedir}${file.separator}${project.parent.relativePath}${file.separator}target${file.separator}node</master_node_dir>
    <master_nodeDownloadRoot>https://nodejs.org/dist/</master_nodeDownloadRoot>
    <master_npm_workspace_dir>${project.basedir}${file.separator}${project.parent.relativePath}${file.separator}..</master_npm_workspace_dir>
    <master_webpack_options>--progress=false</master_webpack_options>
    <master_karma_output_dir>target/karma-reports</master_karma_output_dir>
  </properties>

  <build>
    <pluginManagement>
      <plugins>

        <!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself. -->
        <plugin>
          <groupId>org.eclipse.m2e</groupId>
          <artifactId>lifecycle-mapping</artifactId>
          <version>1.0.0</version>
          <configuration>
            <lifecycleMappingMetadata>
              <pluginExecutions>
                <pluginExecution>
                  <pluginExecutionFilter>
                    <groupId>org.jboss.jandex</groupId>
                    <artifactId>jandex-maven-plugin</artifactId>
                    <versionRange>[1.0.1,)</versionRange>
                    <goals>
                      <goal>jandex</goal>
                    </goals>
                  </pluginExecutionFilter>
                  <action>
                    <ignore/>
                  </action>
                </pluginExecution>
                <!-- WS-STUB generation: Instrument 'm2e' to generate webservice stub in Eclipse IDE (does not affect standalone Maven build) -->
                <!-- Note: Artifacts are on re-generated if the hash of 'wsartifact-hash' changes. -->
                <!-- Note: Do not move into 'jaxws' profile because ignored by 'm2e' otherwise. -->
                <pluginExecution>
                  <pluginExecutionFilter>
                    <groupId>com.helger.maven</groupId>
                    <artifactId>jaxws-maven-plugin</artifactId>
                    <versionRange>[${master_plugin_jaxws_version},)</versionRange>
                    <goals>
                      <goal>wsimport</goal>
                    </goals>
                  </pluginExecutionFilter>
                  <action>
                    <execute>
                      <!-- to run on full and incremental build -->
                      <runOnIncremental>true</runOnIncremental>
                      <!-- to run once a JAX-WS module is imported into workspace -->
                      <runOnConfiguration>true</runOnConfiguration>
                    </execute>
                  </action>
                </pluginExecution>
                <pluginExecution>
                  <pluginExecutionFilter>
                    <groupId>com.github.eirslett</groupId>
                    <artifactId>frontend-maven-plugin</artifactId>
                    <versionRange>[${master_plugin_frontend_version},)</versionRange>
                    <goals>
                      <goal>install-node-and-npm</goal>
                      <goal>npm</goal>
                    </goals>
                  </pluginExecutionFilter>
                  <action>
                    <ignore/>
                  </action>
                </pluginExecution>
                <pluginExecution>
                  <pluginExecutionFilter>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>exec-maven-plugin</artifactId>
                    <versionRange>[${master_plugin_exec_version},)</versionRange>
                    <goals>
                      <goal>exec</goal>
                    </goals>
                  </pluginExecutionFilter>
                  <action>
                    <ignore/>
                  </action>
                </pluginExecution>
                <pluginExecution>
                  <pluginExecutionFilter>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-antrun-plugin</artifactId>
                    <versionRange>[${master_plugin_antrun_version},)</versionRange>
                    <goals>
                      <goal>run</goal>
                    </goals>
                  </pluginExecutionFilter>
                  <action>
                    <ignore/>
                  </action>
                </pluginExecution>
              </pluginExecutions>
            </lifecycleMappingMetadata>
          </configuration>
        </plugin>

        <plugin>
          <groupId>com.github.eirslett</groupId>
          <artifactId>frontend-maven-plugin</artifactId>
          <configuration>
            <installDirectory>${master_node_dir}${file.separator}..</installDirectory>
            <nodeDownloadRoot>${master_nodeDownloadRoot}</nodeDownloadRoot>
            <nodeVersion>${master_node_version}</nodeVersion>
          </configuration>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>

  <profiles>
    <profile>
      <!-- Only create the jandex.idx when a scout.xml is found -->
      <id>jandex-idx</id>
      <activation>
        <file>
          <exists>${basedir}/src/main/resources/META-INF/scout.xml</exists>
        </file>
      </activation>
      <build>
        <plugins>
          <!-- Create META-INF/jandex.idx -->
          <plugin>
            <groupId>org.jboss.jandex</groupId>
            <artifactId>jandex-maven-plugin</artifactId>
            <executions>
              <execution>
                <id>make-index</id>
                <goals>
                  <goal>jandex</goal>
                </goals>
                <!-- phase is 'process-classes by default' -->
                <configuration>
                  <!-- Nothing needed here for simple cases -->
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>

    <profile>
      <!-- Only create the jandex.idx when a scout.xml is found -->
      <id>jandex-test-idx</id>
      <activation>
        <file>
          <exists>${basedir}/src/test/resources/META-INF/scout.xml</exists>
        </file>
      </activation>
      <build>
        <plugins>
          <!-- Create META-INF/jandex.idx -->
          <plugin>
            <groupId>org.jboss.jandex</groupId>
            <artifactId>jandex-maven-plugin</artifactId>
            <executions>
              <execution>
                <id>make-index</id>
                <goals>
                  <goal>jandex</goal>
                </goals>
                <!-- phase is 'process-classes by default' -->
                <phase>process-test-classes</phase>
                <configuration>
                  <processDefaultFileSet>false</processDefaultFileSet>
                  <fileSets>
                    <fileSet>
                      <directory>${project.build.directory}/test-classes/</directory>
                    </fileSet>
                  </fileSets>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>

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

    <!-- Profile used for JAX-WS plugins to generate webservice artifacts like stub and proxy. -->
    <!-- This profile is activated automatically if a folder 'src/main/resources/WEB-INF/wsdl' is found. -->
    <profile>
      <id>jaxws</id>
      <activation>
        <file>
          <exists>${basedir}/src/main/resources/WEB-INF/wsdl</exists>
        </file>
      </activation>
      <properties>
        <!-- Destination directory for generated webservice artifacts -->
        <jaxws.stub.directory>${project.build.directory}/generated-sources/wsimport</jaxws.stub.directory>
        <!-- Directory to contain the calculated hash of WSDL, XSD and binding-files. If changed or absent, the stub is regenerated anew. -->
        <jaxws.stale.directory>${project.build.directory}/jaxws/wsartifact-hash</jaxws.stale.directory>
        <!-- To enable debug output when running APT. -->
        <jaxws.apt.consoleLog>true</jaxws.apt.consoleLog>
        <!-- Destination directory for generated APT artifacts. -->
        <jaxws.apt.directory>${project.build.directory}/generated-sources/annotations</jaxws.apt.directory>
        <!-- WSDL file name to set the 'wsdl-location' in @WebService and @WebServiceClient annotation -->
        <jaxws.wsdl.file></jaxws.wsdl.file>
      </properties>

      <build>
        <!-- EXCLUDE BINDING FILES (not used at runtime) -->
        <resources>
          <resource>
            <directory>${basedir}/src/main/resources</directory>
            <includes>
              <include>**/**</include>
            </includes>
            <excludes>
              <exclude>**/binding/</exclude>
            </excludes>
          </resource>
        </resources>
        <plugins>
          <!-- WSIMPORT (stub generation) -->
          <!-- Note: The stub is only re-generated if the hash of 'wsartifact-hash' changed. -->
          <plugin>
            <groupId>com.helger.maven</groupId>
            <artifactId>jaxws-maven-plugin</artifactId>
            <configuration>
              <wsdlDirectory>${basedir}/src/main/resources/WEB-INF/wsdl</wsdlDirectory>
              <wsdlLocation>WEB-INF/wsdl/${jaxws.wsdl.file}</wsdlLocation>
              <bindingDirectory>${basedir}/src/main/resources/WEB-INF/binding</bindingDirectory>
              <sourceDestDir>${jaxws.stub.directory}</sourceDestDir>
              <destDir>${jaxws.stub.directory}</destDir>
              <xnocompile>true</xnocompile>
              <!-- compilation done by Maven -->
              <xdisableSSLHostnameVerification>true</xdisableSSLHostnameVerification>
              <xdisableAuthenticator>true</xdisableAuthenticator>
              <xdebug>true</xdebug>
              <verbose>true</verbose>
              <keep>true</keep>
              <staleFile>${jaxws.stale.directory}</staleFile>
              <vmArgs>
                <vmArg>-Djavax.xml.accessExternalDTD=all</vmArg>
                <vmArg>-Djavax.xml.accessExternalSchema=all</vmArg>
              </vmArgs>
            </configuration>
            <!-- to use a specific version of JAX-WS to build against -->
            <dependencies>
              <dependency>
                <groupId>com.sun.xml.ws</groupId>
                <artifactId>jaxws-tools</artifactId>
                <version>${master_dependency_jaxws_version}</version>
              </dependency>
              <dependency>
                <!-- this dependency is required for Java 1.8 compatibility! -->
                <groupId>com.sun.xml.ws</groupId>
                <artifactId>jaxws-rt</artifactId>
                <version>${master_dependency_jaxws_version}</version>
              </dependency>
            </dependencies>
            <executions>
              <execution>
                <id>wsimport-1</id>
                <goals>
                  <goal>wsimport</goal>
                </goals>
                <phase>generate-sources</phase>
              </execution>
            </executions>
          </plugin>

          <!-- APT (PortTypeProxy, HandlerProxy, handler-chain.xml) -->
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
              <compilerArgs>
                <arg>-AconsoleLog=${jaxws.apt.consoleLog}</arg>
                <arg>-XprintProcessorInfo</arg>
                <arg>-XprintRounds</arg>
              </compilerArgs>
              <verbose>true</verbose>
              <generatedSourcesDirectory>${jaxws.apt.directory}</generatedSourcesDirectory>
            </configuration>
            <dependencies>
              <!-- dependency to the annotation processor -->
              <dependency>
                <groupId>org.eclipse.scout.rt</groupId>
                <artifactId>org.eclipse.scout.jaxws.apt</artifactId>
                <version>${org.eclipse.scout.rt.version}</version>
              </dependency>
            </dependencies>
          </plugin>

          <!-- REGISTER SOURCE FOLDER -->
          <!-- Add 'target/generated-sources/annotations' as source folder -->
          <!-- Add 'target/generated-sources/wsimport' as source folder -->
          <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>build-helper-maven-plugin</artifactId>
            <executions>
              <execution>
                <id>add-wsimport-source</id>
                <goals>
                  <goal>add-source</goal>
                </goals>
                <configuration>
                  <sources>
                    <source>${jaxws.stub.directory}</source>
                  </sources>
                </configuration>
              </execution>
              <execution>
                <id>add-apt-source</id>
                <goals>
                  <goal>add-source</goal>
                </goals>
                <configuration>
                  <sources>
                    <source>${jaxws.apt.directory}</source>
                  </sources>
                </configuration>
              </execution>
            </executions>
          </plugin>

          <!-- COPY artifacts -->
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-resources-plugin</artifactId>
            <executions>
              <!-- WSIMPORT artifacts -->
              <execution>
                <id>copy-wsimport-artifacts</id>
                <!-- must not be 'process-resources' because APT files are only generated in compile phase -->
                <goals>
                  <goal>copy-resources</goal>
                </goals>
                <phase>process-sources</phase>
                <configuration>
                  <outputDirectory>${basedir}/target/classes</outputDirectory>
                  <resources>
                    <resource>
                      <directory>${jaxws.stub.directory}</directory>
                      <includes>
                        <include>**/**.xml</include>
                      </includes>
                    </resource>
                  </resources>
                </configuration>
              </execution>
              <!-- APT artifacts -->
              <execution>
                <id>copy-apt-artifacts</id>
                <!-- must not be 'process-resources' because APT files are only generated in compile phase -->
                <goals>
                  <goal>copy-resources</goal>
                </goals>
                <phase>process-classes</phase>
                <configuration>
                  <outputDirectory>${basedir}/target/classes</outputDirectory>
                  <resources>
                    <resource>
                      <directory>${jaxws.apt.directory}</directory>
                      <includes>
                        <include>**/**.xml</include>
                      </includes>
                    </resource>
                  </resources>
                </configuration>
              </execution>
              <!-- Copy JAX-WS artifacts to 'META-INF/resources/WEB-INF/wsdl' to respect ServletContext resource-loading API -->
              <!-- That is crucial if 'JAX-WS implementor' loads resources by ServletContext, e.g. METRO -->
              <execution>
                <id>copy-jaxws-artifacts-to-meta-inf</id>
                <goals>
                  <goal>copy-resources</goal>
                </goals>
                <phase>process-resources</phase>
                <configuration>
                  <outputDirectory>${basedir}/target/classes/META-INF/resources/WEB-INF/wsdl</outputDirectory>
                  <resources>
                    <resource>
                      <directory>${basedir}/src/main/resources/WEB-INF/wsdl</directory>
                    </resource>
                  </resources>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>

    <!-- profiles used for npm build -->
    <profile>
      <id>npm-root-dir-win</id>
      <activation>
        <os>
          <family>windows</family>
        </os>
      </activation>
      <properties>
        <master_node_modules_dir>${master_node_dir}/node_modules</master_node_modules_dir>
      </properties>
    </profile>
    <profile>
      <id>npm-root-dir-linux</id>
      <activation>
        <os>
          <family>linux</family>
        </os>
      </activation>
      <properties>
        <master_node_modules_dir>${master_node_dir}/../lib/node_modules</master_node_modules_dir>
      </properties>
    </profile>
    <profile>
      <id>npm-root-dir-mac</id>
      <activation>
        <os>
          <family>mac</family>
        </os>
      </activation>
      <properties>
        <master_node_modules_dir>${master_node_dir}/../lib/node_modules</master_node_modules_dir>
      </properties>
    </profile>
    <profile>
      <id>npm-snapshot-predependency</id>
      <activation>
        <property>
          <name>!master_npm_release_build</name>
        </property>
      </activation>
      <properties>
        <master_skip_snapshot_predependency>false</master_skip_snapshot_predependency>
      </properties>
    </profile>
    <profile>
      <id>npm-snapshot-postdependency</id>
      <activation>
        <property>
          <name>!master_npm_release_build</name>
        </property>
      </activation>
      <properties>
        <master_skip_snapshot_postdependency>false</master_skip_snapshot_postdependency>
      </properties>
    </profile>
    <profile>
      <id>npm-release-predependency</id>
      <activation>
        <property>
          <name>master_npm_release_build</name>
          <value>true</value>
        </property>
      </activation>
      <properties>
        <master_skip_release_predependency>false</master_skip_release_predependency>
      </properties>
    </profile>
    <profile>
      <id>npm-release-postdependency</id>
      <activation>
        <property>
          <name>master_npm_release_build</name>
          <value>true</value>
        </property>
      </activation>
      <properties>
        <master_skip_release_postdependency>false</master_skip_release_postdependency>
      </properties>
    </profile>

    <!-- First module with a package.json file will install node if necessary -->
    <profile>
      <id>npm-install-node</id>
      <activation>
        <file>
          <exists>${basedir}/package.json</exists>
          <!-- in fact we like to check <missing>${master_node_dir}</missing> / not possible -->
        </file>
      </activation>

      <build>
        <plugins>

          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-antrun-plugin</artifactId>
            <executions>
              <execution>
                <id>check-node-install</id>
                <goals>
                  <goal>run</goal>
                </goals>
                <phase>initialize</phase>
                <configuration>
                  <exportAntProperties>true</exportAntProperties>
                  <target>
                    <available file="${master_node_dir}" property="master_skip_install_node"/>
                  </target>
                </configuration>
              </execution>
            </executions>
          </plugin>

          <plugin>
            <groupId>com.github.eirslett</groupId>
            <artifactId>frontend-maven-plugin</artifactId>
            <executions>
              <execution>
                <id>install-node-and-npm</id>
                <goals>
                  <goal>install-node-and-npm</goal>
                </goals>
                <phase>generate-sources</phase>
                <configuration>
                  <skip>${master_skip_install_node}</skip>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>

    <!-- First module with a package.json file will install npm workspace if no node_modules exists -->
    <profile>
      <id>npm-install-workspace</id>
      <activation>
        <file>
          <exists>${basedir}/package.json</exists>
        </file>
      </activation>

      <properties>
        <npm_update_marker_file>${project.basedir}${file.separator}${project.parent.relativePath}${file.separator}target${file.separator}npm_update.marker</npm_update_marker_file>
      </properties>

      <build>
        <plugins>

          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-antrun-plugin</artifactId>
            <executions>
              <execution>
                <id>check-npm-install-workspace</id>
                <goals>
                  <goal>run</goal>
                </goals>
                <phase>generate-sources</phase>
                <configuration>
                  <exportAntProperties>true</exportAntProperties>
                  <target>
                    <available file="${master_node_modules_dir}/@eclipse-scout" property="master_skip_init_node"/>
                    <available file="${npm_update_marker_file}" property="master_skip_npm_update"/>
                    <touch file="${npm_update_marker_file}" mkdirs="true"/>
                  </target>
                </configuration>
              </execution>
            </executions>
          </plugin>

          <!-- install tools for node in node execution directory -->
          <plugin>
            <groupId>com.github.eirslett</groupId>
            <artifactId>frontend-maven-plugin</artifactId>
            <executions>
              <execution>
                <id>install-node-tools</id>
                <goals>
                  <goal>npm</goal>
                </goals>
                <phase>generate-sources</phase>
                <configuration>
                  <skip>${master_skip_init_node}</skip>
                  <arguments>install -g pnpm@${master_pnpm_version} @eclipse-scout/releng@${master_scout_releng_version}</arguments>
                </configuration>
              </execution>
            </executions>
          </plugin>

          <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>exec-maven-plugin</artifactId>
            <executions>
              <execution>
                <id>npm-update</id>
                <goals>
                  <goal>exec</goal>
                </goals>
                <phase>generate-resources</phase>
                <configuration>
                  <executable>${master_node_dir}/node</executable>
                  <workingDirectory>${master_npm_workspace_dir}</workingDirectory>
                  <skip>${master_skip_npm_update}</skip>
                  <arguments>
                    <argument>${master_node_modules_dir}/pnpm/bin/pnpm.js</argument>
                    <argument>recursive</argument>
                    <argument>update</argument>
                    <argument>--no-save</argument> <!-- prevent pnpm to change any versions in package.json - versions managed by scout releng scripts -->
                    <argument>--ignore-scripts</argument>
                  </arguments>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>

    <profile>
      <id>npm-build-webpack</id>
      <activation>
        <file>
          <exists>${basedir}/webpack.config.js</exists>
        </file>
      </activation>

      <build>
        <pluginManagement>
          <plugins>
            <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-clean-plugin</artifactId>
              <configuration>
                <filesets>
                  <fileset>
                    <directory>${basedir}</directory>
                    <includes>
                      <include>dist/**</include>
                    </includes>
                  </fileset>
                </filesets>
              </configuration>
            </plugin>
          </plugins>
        </pluginManagement>

        <plugins>
          <plugin>
            <groupId>com.github.eirslett</groupId>
            <artifactId>frontend-maven-plugin</artifactId>
            <executions>
              <execution>
                <id>npm-run-build:prod</id>
                <goals>
                  <goal>npm</goal>
                </goals>
                <phase>compile</phase>
                <configuration>
                  <skip>${master_skip_npm_build_prod}</skip>
                  <arguments>--scripts-prepend-node-path=true run build:prod -- ${master_webpack_options}</arguments>
                </configuration>
              </execution>
              <execution>
                <id>npm-run-build:dev</id>
                <goals>
                  <goal>npm</goal>
                </goals>
                <phase>compile</phase>
                <configuration>
                  <skip>${master_skip_npm_build_dev}</skip>
                  <arguments>--scripts-prepend-node-path=true run build:dev -- ${master_webpack_options}</arguments>
                </configuration>
              </execution>
            </executions>
          </plugin>

          <plugin>
            <artifactId>maven-resources-plugin</artifactId>
            <executions>
              <execution>
                <id>copy-webpack-build-output</id>
                <goals>
                  <goal>copy-resources</goal>
                </goals>
                <phase>process-classes</phase>
                <configuration>
                  <skip>${master_skip_copy_webpack_build_output}</skip>
                  <outputDirectory>${project.build.outputDirectory}</outputDirectory>
                  <resources>
                    <resource>
                      <directory>${basedir}/dist</directory>
                      <filtering>false</filtering>
                    </resource>
                  </resources>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>

    <profile>
      <id>npm-test-karma</id>
      <activation>
        <file>
          <exists>${basedir}/karma.conf.js</exists>
        </file>
      </activation>

      <build>
        <plugins>
          <plugin>
            <groupId>com.github.eirslett</groupId>
            <artifactId>frontend-maven-plugin</artifactId>
            <executions>
              <execution>
                <id>npm-test-karma</id>
                <goals>
                  <goal>npm</goal>
                </goals>
                <phase>test</phase>
                <configuration>
                  <skip>${master_skip_karma_test}</skip>
                  <arguments>--scripts-prepend-node-path=true run test:ci -- --junitReporter.outputDir=${master_karma_output_dir}</arguments>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>

    <profile>
      <id>npm-deploy</id>
      <activation>
        <file>
          <exists>${basedir}/package.json</exists>
        </file>
      </activation>

      <build>
        <plugins>
          <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>exec-maven-plugin</artifactId>
            <executions>
              <execution>
                <id>scout-releng-snapshot-install-dependency</id>
                <goals>
                  <goal>exec</goal>
                </goals>
                <phase>process-sources</phase>
                <configuration>
                  <skip>${master_skip_snapshot_predependency}</skip>
                  <executable>${master_node_dir}/node</executable>
                  <arguments>
                    <argument>${master_node_modules_dir}/@eclipse-scout/releng/bin/releng-scripts.js</argument>
                    <argument>snapshot-install-dependency</argument>
                  </arguments>
                </configuration>
              </execution>
              <execution>
                <id>scout-releng-snapshot-publish-dependency</id>
                <goals>
                  <goal>exec</goal>
                </goals>
                <phase>process-resources</phase>
                <configuration>
                  <skip>${master_skip_snapshot_postdependency}</skip>
                  <executable>${master_node_dir}/node</executable>
                  <arguments>
                    <argument>${master_node_modules_dir}/@eclipse-scout/releng/bin/releng-scripts.js</argument>
                    <argument>snapshot-publish-dependency</argument>
                  </arguments>
                </configuration>
              </execution>
              <execution>
                <id>scout-releng-release-install-dependency</id>
                <goals>
                  <goal>exec</goal>
                </goals>
                <phase>process-sources</phase>
                <configuration>
                  <skip>${master_skip_release_predependency}</skip>
                  <executable>${master_node_dir}/node</executable>
                  <!-- DO NOT USE 'arguments' - we use here 'commandlineArgs' as 'master_npm_release_dependency_mapping' may contain multiple arguments -->
                  <commandlineArgs>${master_node_modules_dir}/@eclipse-scout/releng/bin/releng-scripts.js release-install-dependency ${master_npm_release_dependency_mapping}</commandlineArgs>
                </configuration>
              </execution>
              <execution>
                <id>scout-releng-release-publish-dependency</id>
                <goals>
                  <goal>exec</goal>
                </goals>
                <phase>process-sources</phase> <!-- for release use process-source instead of resources. post-dependency is therefore executed BEFORE the pnpm update (in snapshot it is executed afterwards) -->
                <configuration>
                  <skip>${master_skip_release_postdependency}</skip>
                  <executable>${master_node_dir}/node</executable>
                  <arguments>
                    <argument>${master_node_modules_dir}/@eclipse-scout/releng/bin/releng-scripts.js</argument>
                    <argument>release-publish-dependency</argument>
                    <argument>--newVersion=${master_release_newVersion}</argument>
                  </arguments>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>
</project>
