<?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_plugin_config-master</artifactId>
    <version>3.13.3-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_node_modules_dir>${master_node_dir}/node_modules</master_node_modules_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.sun.xml.ws</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-test-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.sun.xml.ws</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>
              <annotationProcessorPaths>
                <path>
                  <groupId>org.eclipse.scout.rt</groupId>
                  <artifactId>org.eclipse.scout.jaxws.apt</artifactId>
                  <version>${org.eclipse.scout.rt.version}</version>
                </path>
              </annotationProcessorPaths>
              <compilerArgs>
                <arg>-AconsoleLog=${jaxws.apt.consoleLog}</arg>
                <arg>-XprintProcessorInfo</arg>
                <arg>-XprintRounds</arg>
              </compilerArgs>
              <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>
                <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-classes' 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>

    <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>

          <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>exec-maven-plugin</artifactId>
            <executions>
              <!-- install tools for node in node execution directory -->
              <execution>
                <id>install-node-tools</id>
                <goals>
                  <goal>exec</goal>
                </goals>
                <phase>generate-sources</phase>
                <configuration>
                  <executable>${master_node_dir}/node</executable>
                  <workingDirectory>${master_node_dir}</workingDirectory>
                  <skip>${master_skip_init_node}</skip>
                  <arguments>
                    <argument>${master_node_modules_dir}/npm/bin/npm-cli.js</argument>
                    <argument>install</argument>
                    <argument>--loglevel</argument>
                    <argument>error</argument>
                    <argument>--prefix</argument>
                    <argument>${master_node_dir}</argument>
                    <argument>pnpm@${master_pnpm_version}</argument>
                    <argument>@eclipse-scout/releng@${master_scout_releng_version}</argument>
                  </arguments>
                </configuration>
              </execution>

              <!-- pnpm update recursive (install js dependencies) -->
              <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}/target/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>
