<?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_version-master</artifactId>
    <version>3.12.1</version>
    <relativePath>../maven_plugin_version-master</relativePath>
  </parent>

  <artifactId>maven_plugin_config-master</artifactId>
  <packaging>pom</packaging>
  <name>Maven Master Plugin Build Configuration - General</name>

  <properties>
    <jdk.min.version>1.8</jdk.min.version>
    <jdk.source.version>1.8</jdk.source.version>
    <maven.compiler.source>${jdk.source.version}</maven.compiler.source>
    <maven.compiler.target>${jdk.source.version}</maven.compiler.target>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <maven.build.timestamp.format>yyyyMMdd-HHmmss</maven.build.timestamp.format>
    <maven.min.version>3.5.3</maven.min.version>
    <maven.api.version>3.5.3</maven.api.version>

    <master_deployAtEnd>true</master_deployAtEnd>
    <master_sanityCheck_skip>false</master_sanityCheck_skip>
    <master_signatureCheck_skip>${master_sanityCheck_skip}</master_signatureCheck_skip>
    <master_enforcerCheck_skip>${master_sanityCheck_skip}</master_enforcerCheck_skip>

    <!-- Test Control -->
    <master_unitTest_skip>false</master_unitTest_skip>
    <master_unitTest_failureIgnore>true</master_unitTest_failureIgnore>
    <master_webTest_skip>false</master_webTest_skip>
    <master_coverage_skip>false</master_coverage_skip>

    <!-- Git Information Control -->
    <master_git-id_skip>false</master_git-id_skip>
    <master_git-id_failNoGit>false</master_git-id_failNoGit>
    <master_git-id_useNative>false</master_git-id_useNative>

    <!-- Surefire/Failsafe Fork/Order/Config Control -->
    <master_coverage_jacoco_destFile>${basedir}/../target/jacoco-all.exec</master_coverage_jacoco_destFile>
    <!-- https://maven.apache.org/surefire/maven-surefire-plugin/test-mojo.html#runOrder -->
    <master_test_runOrder>hourly</master_test_runOrder>
    <master_test_forkCount>0.5C</master_test_forkCount>
    <master_test_reuseVm>true</master_test_reuseVm>
    <master_test_timeout>300</master_test_timeout>
    <master_test_jvmMemory>-Xms512m -Xmx2048m</master_test_jvmMemory>
    <master_test_remoteDebugPort>8000</master_test_remoteDebugPort>
    <master_test_debugArgLine>-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:${master_test_remoteDebugPort}</master_test_debugArgLine>
    <master_test_argLine>${master_test_jacocoArgLine} ${master_test_jvmMemory}
      -Dfile.encoding=${project.build.sourceEncoding}</master_test_argLine>

    <!-- Javadoc Control -->
    <master_javadoc_opts></master_javadoc_opts>
  </properties>

  <build>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-resources-plugin</artifactId>
          <configuration>
            <encoding>${project.build.sourceEncoding}</encoding>
            <!--
              The delimiter will be used if subprojects set the <filtering> tag to true.
              It specifies the form for properties to be replaced.
            -->
            <delimiters>
              <delimiter>${*}</delimiter>
            </delimiters>
            <nonFilteredFileExtensions>
              <nonFilteredFileExtension>ico</nonFilteredFileExtension>
              <nonFilteredFileExtension>png</nonFilteredFileExtension>
              <nonFilteredFileExtension>tif</nonFilteredFileExtension>
              <nonFilteredFileExtension>tiff</nonFilteredFileExtension>
              <nonFilteredFileExtension>jpg</nonFilteredFileExtension>
              <nonFilteredFileExtension>jpeg</nonFilteredFileExtension>
              <nonFilteredFileExtension>pdf</nonFilteredFileExtension>
              <nonFilteredFileExtension>jar</nonFilteredFileExtension>
              <!-- office documents -->
              <nonFilteredFileExtension>doc</nonFilteredFileExtension>
              <nonFilteredFileExtension>docx</nonFilteredFileExtension>
              <nonFilteredFileExtension>xls</nonFilteredFileExtension>
              <nonFilteredFileExtension>xlsx</nonFilteredFileExtension>
              <!-- font files -->
              <nonFilteredFileExtension>woff</nonFilteredFileExtension>
              <nonFilteredFileExtension>woff2</nonFilteredFileExtension>
              <nonFilteredFileExtension>otf</nonFilteredFileExtension>
              <nonFilteredFileExtension>ttf</nonFilteredFileExtension>
            </nonFilteredFileExtensions>
          </configuration>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-compiler-plugin</artifactId>
          <configuration>
            <compilerId>jdt</compilerId>
            <source>${jdk.source.version}</source>
            <target>${jdk.source.version}</target>
            <encoding>${project.build.sourceEncoding}</encoding>
            <showWarnings>true</showWarnings>
            <compilerArgs>
              <arg>-proc:none</arg>
            </compilerArgs>
          </configuration>
          <dependencies>
            <dependency>
              <groupId>org.eclipse.tycho</groupId>
              <artifactId>tycho-compiler-jdt</artifactId>
              <version>${master_dependency_tycho-compiler_version}</version>
              <exclusions>
                <!-- Exclude ecj that comes with Tycho so that we can add our version (see below) -->
                <exclusion>
                  <groupId>org.eclipse.jdt</groupId>
                  <artifactId>ecj</artifactId>
                </exclusion>
              </exclusions>
            </dependency>
            <dependency>
              <groupId>org.eclipse.jdt</groupId>
              <artifactId>ecj</artifactId>
              <version>${master_ecj-compiler_version}</version>
            </dependency>
          </dependencies>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-surefire-plugin</artifactId>
          <configuration>
            <failIfNoTests>false</failIfNoTests>
            <testFailureIgnore>${master_unitTest_failureIgnore}</testFailureIgnore>
            <skipTests>${master_unitTest_skip}</skipTests>
            <trimStackTrace>false</trimStackTrace>
            <!-- inject debug arguments (triggered by system property debugTests from jenkins) -->
            <argLine>${master_test_argLine}</argLine>
            <systemPropertyVariables>
              <sun.jnu.encoding>${project.build.sourceEncoding}</sun.jnu.encoding>
              <java.awt.headless>true</java.awt.headless>
              <java.util.logging.SimpleFormatter.format>%1$tY-%1$tm-%1$td %1$tH:%1$tM:%1$tS %4$s %5$s%6$s%n</java.util.logging.SimpleFormatter.format>
              <!-- Inherit proxy settings of parent process when forking -->
              <http.proxyHost>${http.proxyHost}</http.proxyHost>
              <http.proxyPort>${http.proxyPort}</http.proxyPort>
              <http.nonProxyHosts>${http.nonProxyHosts}</http.nonProxyHosts>
              <https.proxyHost>${https.proxyHost}</https.proxyHost>
              <https.proxyPort>${https.proxyPort}</https.proxyPort>
              <ftp.proxyHost>${ftp.proxyHost}</ftp.proxyHost>
              <ftp.proxyPort>${ftp.proxyPort}</ftp.proxyPort>
              <ftp.nonProxyHosts>${ftp.nonProxyHosts}</ftp.nonProxyHosts>
            </systemPropertyVariables>
            <runOrder>${master_test_runOrder}</runOrder>
            <forkCount>${master_test_forkCount}</forkCount>
            <reuseForks>${master_test_reuseVm}</reuseForks>
            <forkedProcessTimeoutInSeconds>${master_test_timeout}</forkedProcessTimeoutInSeconds>
            <useManifestOnlyJar>false</useManifestOnlyJar>
          </configuration>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-failsafe-plugin</artifactId>
          <configuration>
            <failIfNoTests>false</failIfNoTests>
            <testFailureIgnore>${master_unitTest_failureIgnore}</testFailureIgnore>
            <skipTests>${master_unitTest_skip}</skipTests>
            <!-- inject debug arguments (triggered by system property debugTests from jenkins) -->
            <argLine>${master_test_argLine}</argLine>
            <systemPropertyVariables>
              <sun.jnu.encoding>${project.build.sourceEncoding}</sun.jnu.encoding>
              <java.awt.headless>true</java.awt.headless>
              <java.util.logging.SimpleFormatter.format>%1$tY-%1$tm-%1$td %1$tH:%1$tM:%1$tS %4$s %5$s%6$s%n</java.util.logging.SimpleFormatter.format>
            </systemPropertyVariables>
            <runOrder>${master_test_runOrder}</runOrder>
            <!-- failsafe must be forked into its own process in order to enable jacoco's java agent -->
            <forkCount>${master_test_forkCount}</forkCount>
            <reuseForks>${master_test_reuseVm}</reuseForks>
            <forkedProcessTimeoutInSeconds>${master_test_timeout}</forkedProcessTimeoutInSeconds>
            <useManifestOnlyJar>false</useManifestOnlyJar>
          </configuration>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-dependency-plugin</artifactId>
          <configuration>
            <overWriteReleases>false</overWriteReleases>
            <overWriteSnapshots>true</overWriteSnapshots>
          </configuration>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-deploy-plugin</artifactId>
          <configuration>
            <deployAtEnd>${master_deployAtEnd}</deployAtEnd>
          </configuration>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-release-plugin</artifactId>
          <configuration>
            <autoVersionSubmodules>true</autoVersionSubmodules>
            <tagNameFormat>${master_release_tagName}</tagNameFormat>
            <addSchema>true</addSchema>
            <detail>true</detail>
            <indentSize>2</indentSize>
            <localCheckout>true</localCheckout>
            <pushChanges>${master_release_pushChanges}</pushChanges>
            <arguments>${arguments} --batch-mode -Drelease-build</arguments>
            <useReleaseProfile>false</useReleaseProfile>
            <goals>install</goals>
          </configuration>
        </plugin>

        <plugin>
          <groupId>pl.project13.maven</groupId>
          <artifactId>git-commit-id-plugin</artifactId>
          <executions>
            <execution>
              <id>default</id>
              <goals>
                <goal>revision</goal>
              </goals>
              <phase>initialize</phase>
              <configuration>
                <dateFormat>yyyy-MM-dd'T'HH:mm:ssZZ</dateFormat>
                <generateGitPropertiesFile>false</generateGitPropertiesFile>
                <skipPoms>true</skipPoms>
                <failOnNoGitDirectory>${master_git-id_failNoGit}</failOnNoGitDirectory>
                <skip>${master_git-id_skip}</skip>
                <useNativeGit>${master_git-id_useNative}</useNativeGit>
                <abbrevLength>10</abbrevLength>
                <gitDescribe>
                  <always>true</always>
                  <abbrev>7</abbrev>
                  <dirty>-dirty</dirty>
                  <forceLongFormat>false</forceLongFormat>
                  <tags>true</tags>
                </gitDescribe>
              </configuration>
            </execution>
          </executions>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-jar-plugin</artifactId>
          <configuration>
            <archive>
              <manifest>
                <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
                <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
                <addClasspath>false</addClasspath>
              </manifest>
              <manifestSections combine.children="append">
                <manifestSection>
                  <name>${project.groupId}:${project.artifactId}</name>
                  <manifestEntries>
                    <!-- This is actually the time when the build was done -->
                    <Build-Time>${git.build.time}</Build-Time>
                    <!-- Git specific properties -->
                    <Git-Branch>${git.branch}</Git-Branch>
                    <Git-Commit-Id>${git.commit.id}</Git-Commit-Id>
                    <Git-Commit-Id-Describe>${git.commit.id.describe}</Git-Commit-Id-Describe>
                    <Git-Remote-Origin-Url>${git.remote.origin.url}</Git-Remote-Origin-Url>
                    <!-- project information -->
                    <Project-ArtifactId>${project.artifactId}</Project-ArtifactId>
                    <Project-GroupId>${project.groupId}</Project-GroupId>
                    <Project-Name>${project.name}</Project-Name>
                    <Project-Version>${project.version}</Project-Version>
                  </manifestEntries>
                </manifestSection>
              </manifestSections>
            </archive>
          </configuration>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-war-plugin</artifactId>
          <configuration>
            <nonFilteredFileExtensions>
              <nonFilteredFileExtension>jar</nonFilteredFileExtension>
            </nonFilteredFileExtensions>
          </configuration>
        </plugin>

        <plugin>
          <groupId>org.basepom.maven</groupId>
          <artifactId>duplicate-finder-maven-plugin</artifactId>
          <configuration>
            <skip>${master_sanityCheck_skip}</skip>
            <printEqualFiles>false</printEqualFiles>
            <failBuildInCaseOfConflict>true</failBuildInCaseOfConflict>
            <failBuildInCaseOfDifferentContentConflict>true</failBuildInCaseOfDifferentContentConflict>
            <failBuildInCaseOfEqualContentConflict>true</failBuildInCaseOfEqualContentConflict>
            <checkCompileClasspath>true</checkCompileClasspath>
            <checkRuntimeClasspath>true</checkRuntimeClasspath>
            <checkTestClasspath>true</checkTestClasspath>
            <quiet>false</quiet>
            <preferLocal>true</preferLocal>
            <useResultFile>false</useResultFile>
            <includePomProjects>true</includePomProjects>
            <ignoredResourcePatterns>
              <ignoredResourcePattern>.*ico$</ignoredResourcePattern>
              <ignoredResourcePattern>.*jpg$</ignoredResourcePattern>
              <ignoredResourcePattern>.*jpeg$</ignoredResourcePattern>
              <ignoredResourcePattern>.*png$</ignoredResourcePattern>
              <ignoredResourcePattern>.*gif$</ignoredResourcePattern>
              <ignoredResourcePattern>.*html$</ignoredResourcePattern>
              <ignoredResourcePattern>.*htm$</ignoredResourcePattern>
              <ignoredResourcePattern>.*xml$</ignoredResourcePattern>
              <ignoredResourcePattern>.*txt$</ignoredResourcePattern>
              <ignoredResourcePattern>.*.api_description$</ignoredResourcePattern>
              <ignoredResourcePattern>.*options$</ignoredResourcePattern>
              <ignoredResourcePattern>.*properties$</ignoredResourcePattern>
              <ignoredResourcePattern>.*gitkeep$</ignoredResourcePattern>
              <ignoredResourcePattern>.*sql$</ignoredResourcePattern>
              <ignoredResourcePattern>.*xjb$</ignoredResourcePattern>
              <ignoredResourcePattern>.*exsd$</ignoredResourcePattern>
              <ignoredResourcePattern>.*about.ini$</ignoredResourcePattern>
              <ignoredResourcePattern>.*file-list$</ignoredResourcePattern>
            </ignoredResourcePatterns>
            <ignoredClassPatterns>
              <ignoredClassPattern>.*module-info.*</ignoredClassPattern>
            </ignoredClassPatterns>
          </configuration>
        </plugin>

        <plugin>
          <groupId>org.jacoco</groupId>
          <artifactId>jacoco-maven-plugin</artifactId>
          <configuration>
            <skip>${master_coverage_skip}</skip>
            <destFile>${master_coverage_jacoco_destFile}</destFile>
            <propertyName>master_test_jacocoArgLine</propertyName>
          </configuration>
        </plugin>

        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>animal-sniffer-maven-plugin</artifactId>
          <configuration>
            <signature>
              <groupId>org.codehaus.mojo.signature</groupId>
              <artifactId>java18</artifactId>
              <version>1.0</version>
            </signature>
            <skip>${master_signatureCheck_skip}</skip>
          </configuration>
        </plugin>

        <plugin>
          <groupId>com.mycila</groupId>
          <artifactId>license-maven-plugin</artifactId>
          <configuration>
            <header>${project.basedir}/../license_files/copyright.txt</header>
            <headerDefinitions>
              <headerDefinition>${project.basedir}/../license_files/scoutLicenceHeaderJava.xml</headerDefinition>
            </headerDefinitions>
            <failIfMissing>true</failIfMissing>
            <strictCheck>true</strictCheck>
            <aggregate>true</aggregate>
            <useDefaultExcludes>false</useDefaultExcludes>
            <includes>
              <include>**/pom.xml</include>
              <include>**/*.properties</include>
              <include>**/*.java</include>
              <include>**/*.js</include>
              <include>**/*.css</include>
              <include>**/*.less</include>
              <include>**/*.xml</include>
              <include>**/*.xsd</include>
            </includes>
            <excludes>
              <exclude>**/target/**</exclude>
              <exclude>**/node_modules/**</exclude>
              <exclude>**/test-results/**</exclude>
              <exclude>**/dist/**</exclude>
              <exclude>**/.*</exclude>
              <exclude>**/.settings/**</exclude>
              <exclude>**/release.properties</exclude>
              <exclude>**/pom.xml.releaseBackup</exclude>
              <exclude>**/*.sh</exclude>
              <exclude>**/src/main/resources/WebContent/**</exclude>
              <exclude>**/src/main/ws-stub/**</exclude>
            </excludes>
            <mapping>
              <java>SCOUT_JAVADOC_STYLE</java>
              <js>SCOUT_JAVADOC_STYLE</js>
              <less>SCOUT_JAVADOC_STYLE</less>
              <css>SCOUT_JAVADOC_STYLE</css>
            </mapping>
            <skip>${master_sanityCheck_skip}</skip>
          </configuration>
          <dependencies>
            <dependency>
              <groupId>com.mycila</groupId>
              <artifactId>license-maven-plugin-git</artifactId>
              <!-- make sure you use the same version as license-maven-plugin -->
              <version>${master_plugin_license_version}</version>
            </dependency>
          </dependencies>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-enforcer-plugin</artifactId>
          <configuration>
            <skip>${master_enforcerCheck_skip}</skip>
            <rules>
              <requirePluginVersions>
                <message>Build reproducibility : always define plugin versions</message>
                <banLatest>true</banLatest>
                <banRelease>true</banRelease>
                <phases>clean,deploy</phases>
                <unCheckedPluginList>org.apache.maven.plugins:maven-deploy-plugin</unCheckedPluginList>
              </requirePluginVersions>
              <requireReleaseDeps>
                <message>No SNAPSHOT versions allowed for dependencies</message>
                <onlyWhenRelease>true</onlyWhenRelease>
              </requireReleaseDeps>
              <requireJavaVersion>
                <message>To build this project JDK ${jdk.min.version} (or upper) is required. Please install it.</message>
                <version>${jdk.min.version}</version>
              </requireJavaVersion>
              <requireMavenVersion>
                <message>To build this project Maven ${maven.min.version} (or upper) is required. Please install it.</message>
                <version>${maven.min.version}</version>
              </requireMavenVersion>
              <bannedDependencies>
                <message>commons-beanutils:commons-beanutils should be used instead</message>
                <excludes>
                  <exclude>commons-beanutils:commons-beanutils-core</exclude>
                </excludes>
                <searchTransitive>true</searchTransitive>
              </bannedDependencies>
              <banDuplicatePomDependencyVersions></banDuplicatePomDependencyVersions>
              <!-- can't be used until html ui in eclipse repo and of the tools-build
                <reactorModuleConvergence /> -->
              <requireSameVersions>
                <dependencies>
                  <dependency>org.eclipse.scout</dependency>
                  <dependency>org.eclipse.scout.rt</dependency>
                </dependencies>
              </requireSameVersions>
              <requireSameVersions>
                <dependencies>
                  <dependency>org.eclipse.jetty</dependency>
                </dependencies>
              </requireSameVersions>
            </rules>
          </configuration>
        </plugin>

        <plugin>
          <groupId>org.eclipse.scout</groupId>
          <artifactId>eclipse-settings-maven-plugin</artifactId>
          <dependencies>
            <dependency>
              <groupId>org.eclipse.scout</groupId>
              <artifactId>eclipse-settings_master</artifactId>
              <version>${master_dependency_eclipseSettings_master_version}</version>
            </dependency>
          </dependencies>
          <configuration>
            <additionalConfig>
              <file>
                <name>.settings/.jsdtscope</name>
                <location>/.jsdtscope</location>
              </file>
              <file>
                <name>.settings/com.eclipsesource.jshint.ui.prefs</name>
                <location>/com.eclipsesource.jshint.ui.prefs</location>
              </file>
              <file>
                <name>.settings/de.loskutov.anyedit.AnyEditTools.prefs</name>
                <location>/de.loskutov.anyedit.AnyEditTools.prefs</location>
              </file>
              <file>
                <name>.settings/org.eclipse.core.resources.prefs</name>
                <location>/org.eclipse.core.resources.prefs</location>
              </file>
              <file>
                <name>.settings/org.eclipse.core.runtime.prefs</name>
                <location>/org.eclipse.core.runtime.prefs</location>
              </file>
              <file>
                <name>.settings/org.eclipse.jdt.core.prefs</name>
                <location>/org.eclipse.jdt.core.prefs</location>
              </file>
              <file>
                <name>.settings/org.eclipse.jdt.launching.prefs</name>
                <location>/org.eclipse.jdt.launching.prefs</location>
              </file>
              <file>
                <name>.settings/org.eclipse.jdt.ui.prefs</name>
                <location>/org.eclipse.jdt.ui.prefs</location>
              </file>
              <file>
                <name>.settings/org.eclipse.m2e.core.prefs</name>
                <location>/org.eclipse.m2e.core.prefs</location>
              </file>
              <file>
                <name>.settings/org.eclipse.wst.html.core.prefs</name>
                <location>/org.eclipse.wst.html.core.prefs</location>
              </file>
              <file>
                <name>.settings/org.eclipse.wst.jsdt.core.prefs</name>
                <location>/org.eclipse.wst.jsdt.core.prefs</location>
              </file>
              <file>
                <name>.settings/org.eclipse.wst.jsdt.ui.prefs</name>
                <location>/org.eclipse.wst.jsdt.ui.prefs</location>
              </file>
              <file>
                <name>.settings/org.eclipse.wst.jsdt.ui.superType.container</name>
                <location>/org.eclipse.wst.jsdt.ui.superType.container</location>
              </file>
              <file>
                <name>.settings/org.eclipse.wst.jsdt.ui.superType.name</name>
                <location>/org.eclipse.wst.jsdt.ui.superType.name</location>
              </file>
              <file>
                <name>.settings/org.eclipse.wst.validation.prefs</name>
                <location>/org.eclipse.wst.validation.prefs</location>
              </file>
              <file>
                <name>.settings/org.eclipse.wst.xml.core.prefs</name>
                <location>/org.eclipse.wst.xml.core.prefs</location>
              </file>
            </additionalConfig>
          </configuration>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-javadoc-plugin</artifactId>
          <configuration>
            <failOnError>false</failOnError>
            <source>${jdk.source.version}</source>
            <encoding>${project.build.sourceEncoding}</encoding>
            <additionalOptions>${master_javadoc_opts}</additionalOptions>
            <doclint>none</doclint>
          </configuration>
        </plugin>

        <!--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.codehaus.mojo</groupId>
                    <artifactId>flatten-maven-plugin</artifactId>
                    <versionRange>[${master_plugin_flatten_version},)</versionRange>
                    <goals>
                      <goal>flatten</goal>
                    </goals>
                  </pluginExecutionFilter>
                  <action>
                    <ignore></ignore>
                  </action>
                </pluginExecution>
                <pluginExecution>
                  <pluginExecutionFilter>
                    <groupId>pl.project13.maven</groupId>
                    <artifactId>git-commit-id-plugin</artifactId>
                    <versionRange>[${master_plugin_git-commit-id_version},)</versionRange>
                    <goals>
                      <goal>revision</goal>
                    </goals>
                  </pluginExecutionFilter>
                  <action>
                    <ignore></ignore>
                  </action>
                </pluginExecution>
              </pluginExecutions>
            </lifecycleMappingMetadata>
          </configuration>
        </plugin>
      </plugins>
    </pluginManagement>

    <plugins>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-resources-plugin</artifactId>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <executions>
          <!-- Always build a jar with the test classes -->
          <execution>
            <id>attach-tests</id>
            <goals>
              <goal>test-jar</goal>
            </goals>
            <phase>package</phase>
            <configuration>
              <skipIfEmpty>true</skipIfEmpty>
            </configuration>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <groupId>org.basepom.maven</groupId>
        <artifactId>duplicate-finder-maven-plugin</artifactId>
        <executions>
          <execution>
            <id>default</id>
            <goals>
              <goal>check</goal>
            </goals>
            <phase>verify</phase>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-enforcer-plugin</artifactId>
        <executions>
          <execution>
            <id>enforce-rules</id>
            <goals>
              <goal>enforce</goal>
            </goals>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
      </plugin>

      <plugin>
        <groupId>org.jacoco</groupId>
        <artifactId>jacoco-maven-plugin</artifactId>
        <executions>
          <execution>
            <id>default</id>
            <goals>
              <goal>prepare-agent</goal>
            </goals>
            <phase>initialize</phase>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <!-- until there is a automatic nightly build include sources in every build (snapshot and release). Default would
          be only to include sources in the release profile. -->
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-source-plugin</artifactId>
        <executions>
          <execution>
            <id>attach-sources</id>
            <goals>
              <goal>jar-no-fork</goal>
            </goals>
          </execution>
          <execution>
            <id>attach-test-sources</id>
            <goals>
              <goal>test-jar-no-fork</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>

  <profiles>
    <profile>
      <!--
      run security check on all dependencies using owasp dependency check
      https://jeremylong.github.io/DependencyCheck/dependency-check-maven/
      https://jeremylong.github.io/DependencyCheck/dependency-check-cli/arguments.html
      https://jeremylong.github.io/DependencyCheck/general/internals.html
      -->
      <id>security.check</id>
      <activation>
        <property>
          <name>securityCheck</name>
        </property>
      </activation>
      <build>
        <plugins>
          <plugin>
            <groupId>org.owasp</groupId>
            <artifactId>dependency-check-maven</artifactId>
            <configuration>
              <formats>
                <format>html</format>
                <format>xml</format>
              </formats>
              <skipTestScope>true</skipTestScope>
            </configuration>
            <executions>
              <execution>
                <goals>
                  <goal>aggregate</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>

    <profile>
      <!-- disable all tests -->
      <id>skipTests</id>
      <activation>
        <property>
          <name>skipTests</name>
        </property>
      </activation>
      <properties>
        <master_unitTest_skip>true</master_unitTest_skip>
        <master_webTest_skip>true</master_webTest_skip>
        <master_coverage_skip>true</master_coverage_skip>
      </properties>
    </profile>

    <profile>
      <!-- skip checks for faster development-build -->
      <id>dev</id>
      <properties>
        <master_sanityCheck_skip>true</master_sanityCheck_skip>
        <master_coverage_skip>true</master_coverage_skip>
      </properties>
    </profile>

    <profile>
      <!-- remote debug tests -->
      <id>debug</id>
      <activation>
        <property>
          <name>debugTests</name>
        </property>
      </activation>
      <properties>
        <master_test_argLine>${master_test_jacocoArgLine} ${master_test_jvmMemory} ${master_test_debugArgLine}
          -Dfile.encoding=${project.build.sourceEncoding}</master_test_argLine>
        <master_test_forkCount>1</master_test_forkCount>
      </properties>
    </profile>

    <profile>
      <!-- check copyright/license headers -->
      <id>license_check</id>
      <activation>
        <property>
          <name>license_check</name>
        </property>
      </activation>
      <build>
        <plugins>
          <plugin>
            <groupId>com.mycila</groupId>
            <artifactId>license-maven-plugin</artifactId>
            <inherited>false</inherited>
            <executions>
              <execution>
                <id>enforce-license-headers</id>
                <goals>
                  <goal>check</goal>
                </goals>
                <phase>validate</phase>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>

    <profile>
      <!-- sign jars -->
      <id>sign</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.eclipse.cbi.maven.plugins</groupId>
            <artifactId>eclipse-jarsigner-plugin</artifactId>
            <executions>
              <execution>
                <id>sign</id>
                <goals>
                  <goal>sign</goal>
                </goals>
                <phase>verify</phase>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>

    <profile>
      <!-- make a release build. includes sources/javadoc... -->
      <id>release</id>
      <activation>
        <property>
          <name>release-build</name>
        </property>
      </activation>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <configuration>
              <skip>true</skip>
            </configuration>
          </plugin>

          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-source-plugin</artifactId>
            <executions>
              <execution>
                <id>attach-sources</id>
                <goals>
                  <goal>jar-no-fork</goal>
                </goals>
              </execution>
              <execution>
                <id>attach-test-sources</id>
                <goals>
                  <goal>test-jar-no-fork</goal>
                </goals>
              </execution>
            </executions>
          </plugin>

          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-javadoc-plugin</artifactId>
            <executions>
              <execution>
                <id>attach-javadocs</id>
                <goals>
                  <goal>jar</goal>
                </goals>
              </execution>
            </executions>
          </plugin>

          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-gpg-plugin</artifactId>
            <executions>
              <execution>
                <id>sign-artifacts</id>
                <goals>
                  <goal>sign</goal>
                </goals>
                <phase>verify</phase>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>

    <profile>
      <!-- Add the jdt.core.prefs compiler argument only if the file exists -->
      <id>use-jdt-core-prefs-file</id>
      <activation>
        <file>
          <exists>${basedir}/.settings/org.eclipse.jdt.core.prefs</exists>
        </file>
      </activation>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
              <compilerArguments>
                <properties>${project.basedir}/.settings/org.eclipse.jdt.core.prefs</properties>
              </compilerArguments>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>

    <profile>
      <id>enforce-java-api-compatibility-profile</id>
      <activation>
        <jdk>1.8</jdk>
      </activation>
      <build>
        <plugins>
          <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>animal-sniffer-maven-plugin</artifactId>
            <executions>
              <execution>
                <id>enforce-java-api-compatibility</id>
                <goals>
                  <goal>check</goal>
                </goals>
                <phase>verify</phase>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>

  </profiles>
</project>
