<?xml version="1.0" encoding="UTF-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>com.garethahealy.poms</groupId>
        <artifactId>poms-parent</artifactId>
        <version>1.1.0</version>
        <relativePath>../</relativePath>
    </parent>
    <artifactId>plugins-parent</artifactId>
    <packaging>pom</packaging>
    <name>POMs :: Plugins Parent</name>

    <properties>
        <!-- Plugin versions -->
        <maven-bundle-plugin-version>3.5.1</maven-bundle-plugin-version>
        <maven-source-plugin-version>3.0.1</maven-source-plugin-version>
        <maven-antrun-plugin-version>1.8</maven-antrun-plugin-version>
        <maven-compiler-plugin-version>3.8.0</maven-compiler-plugin-version>
        <maven-surefire-plugin-version>2.22.0</maven-surefire-plugin-version>
        <depends-maven-plugin-version>1.4.0</depends-maven-plugin-version>
        <properties-maven-plugin-version>1.0.0</properties-maven-plugin-version>
        <ant-contrib-version>1.0b3</ant-contrib-version>
        <ant-optional-version>1.5.3-1</ant-optional-version>
        <maven-resources-plugin-version>3.1.0</maven-resources-plugin-version>
        <build-helper-maven-plugin-version>3.0.0</build-helper-maven-plugin-version>
        <exec-maven-plugin-version>1.6.0</exec-maven-plugin-version>
        <findbugs-maven-plugin-version>3.0.4</findbugs-maven-plugin-version>
        <maven-checkstyle-plugin-version>2.17</maven-checkstyle-plugin-version>
        <license-maven-plugin-version>1.13</license-maven-plugin-version>
        <rhq-agent-plugin-plugin-version>1.0</rhq-agent-plugin-plugin-version>
        <maven-dependency-plugin>3.1.1</maven-dependency-plugin>
        <maven-jar-plugin-version>3.1.0</maven-jar-plugin-version>
        <sonar-maven-plugin-version>3.2</sonar-maven-plugin-version>
        <cobertura-maven-plugin-version>2.7</cobertura-maven-plugin-version>
        <maven-shade-plugin-version>3.1.1</maven-shade-plugin-version>

        <maven-war-plugin-version>3.0.0</maven-war-plugin-version>
        <xml-maven-plugin-version>1.0.1</xml-maven-plugin-version>
        <maven-assembly-plugin-version>3.1.0</maven-assembly-plugin-version>
    </properties>

    <!-- Build plugins -->
    <build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <!-- http://maven.apache.org/plugins/maven-compiler-plugin/ -->
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>${maven-compiler-plugin-version}</version>
                </plugin>
                <plugin>
                    <!-- http://maven.apache.org/plugins/maven-resources-plugin/ -->
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-resources-plugin</artifactId>
                    <version>${maven-resources-plugin-version}</version>
                </plugin>
                <plugin>
                    <!-- http://maven.apache.org/plugins/maven-source-plugin/ -->
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-source-plugin</artifactId>
                    <version>${maven-source-plugin-version}</version>
                </plugin>
                <plugin>
                    <!-- http://mojo.codehaus.org/build-helper-maven-plugin/ -->
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>build-helper-maven-plugin</artifactId>
                    <version>${build-helper-maven-plugin-version}</version>
                </plugin>
                <plugin>
                    <!-- http://maven.apache.org/surefire/maven-surefire-plugin -->
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>${maven-surefire-plugin-version}</version>
                </plugin>
                <plugin>
                    <!-- http://mojo.codehaus.org/exec-maven-plugin/ -->
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>exec-maven-plugin</artifactId>
                    <version>${exec-maven-plugin-version}</version>
                </plugin>
                <plugin>
                    <!-- http://mojo.codehaus.org/findbugs-maven-plugin-3.0.0/ -->
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>findbugs-maven-plugin</artifactId>
                    <version>${findbugs-maven-plugin-version}</version>
                </plugin>
                <plugin>
                    <!-- http://maven.apache.org/plugins/maven-checkstyle-plugin/index.html -->
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-checkstyle-plugin</artifactId>
                    <version>${maven-checkstyle-plugin-version}</version>
                </plugin>
                <plugin>
                    <!-- http://mojo.codehaus.org/license-maven-plugin/ -->
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>license-maven-plugin</artifactId>
                    <version>${license-maven-plugin-version}</version>
                </plugin>
                <plugin>
                    <!-- http://maven.apache.org/plugins/maven-dependency-plugin/ -->
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-dependency-plugin</artifactId>
                    <version>${maven-dependency-plugin}</version>
                </plugin>
                <plugin>
                    <!-- http://maven.apache.org/plugins/maven-jar-plugin/ -->
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-jar-plugin</artifactId>
                    <version>${maven-jar-plugin-version}</version>
                </plugin>
                <plugin>
                    <!-- http://mojo.codehaus.org/sonar-maven-plugin -->
                    <groupId>org.sonarsource.scanner.maven</groupId>
                    <artifactId>sonar-maven-plugin</artifactId>
                    <version>${sonar-maven-plugin-version}</version>
                </plugin>
                <plugin>
                    <!-- http://mojo.codehaus.org/cobertura-maven-plugin/ -->
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>cobertura-maven-plugin</artifactId>
                    <version>${cobertura-maven-plugin-version}</version>
                </plugin>
                <plugin>
                    <!-- http://maven.apache.org/plugins/maven-shade-plugin/ -->
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-shade-plugin</artifactId>
                    <version>${maven-shade-plugin-version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-war-plugin</artifactId>
                    <version>${maven-war-plugin-version}</version>
                </plugin>
                <plugin>
                    <!-- http://rhq-project.github.io/rhq-agent-plugin-plugin/ -->
                    <groupId>org.rhq.maven.plugins</groupId>
                    <artifactId>rhq-agent-plugin-plugin</artifactId>
                    <version>${rhq-agent-plugin-plugin-version}</version>
                </plugin>
                <plugin>
                    <!-- http://mojo.codehaus.org/xml-maven-plugin -->
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>xml-maven-plugin</artifactId>
                    <version>${xml-maven-plugin-version}</version>
                </plugin>
                <plugin>
                    <!-- https://maven.apache.org/components/plugins/maven-assembly-plugin/ -->
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-assembly-plugin</artifactId>
                    <version>${maven-assembly-plugin-version}</version>
                </plugin>
                <plugin>
                    <!-- https://www.eclipse.org/m2e/documentation/m2e-execution-not-covered.html -->
                    <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>license-maven-plugin</artifactId>
                                        <versionRange>[${license-maven-plugin-version},)</versionRange>
                                        <goals>
                                            <goal>update-file-header</goal>
                                        </goals>
                                    </pluginExecutionFilter>
                                    <action>
                                        <ignore/>
                                    </action>
                                </pluginExecution>
                            </pluginExecutions>
                        </lifecycleMappingMetadata>
                    </configuration>
                </plugin>
            </plugins>
        </pluginManagement>

        <plugins>
            <!-- General plugins which make the JARs -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>${java.version}</source>
                    <target>${java.version}</target>
                    <encoding>${project.build.sourceEncoding}</encoding>
                    <compilerArgs>
                        <compilerArg>-Xlint:all</compilerArg>
                        <compilerArg>-Xlint:-processing</compilerArg>
                        <compilerArg>-Xdoclint:all</compilerArg>
                        <compilerArg>-Werror</compilerArg>
                    </compilerArgs>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-resources-plugin</artifactId>
                <configuration>
                    <encoding>${project.build.sourceEncoding}</encoding>
                </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>
                </executions>
            </plugin>

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

            <!-- Code quality plugins -->
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>findbugs-maven-plugin</artifactId>
                <dependencies>
                    <dependency>
                        <groupId>com.garethahealy.poms</groupId>
                        <artifactId>building-tools</artifactId>
                        <version>${building-tools-verson}</version>
                        <scope>compile</scope>
                    </dependency>
                </dependencies>
                <configuration>
                    <effort>Max</effort>
                    <threshold>Low</threshold>
                    <xmlOutput>true</xmlOutput>
                    <excludeFilterFile>findbugs-exclude.xml</excludeFilterFile>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>check</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-checkstyle-plugin</artifactId>
                <dependencies>
                    <dependency>
                        <groupId>com.garethahealy.poms</groupId>
                        <artifactId>building-tools</artifactId>
                        <version>${building-tools-verson}</version>
                        <scope>compile</scope>
                    </dependency>
                </dependencies>
                <executions>
                    <execution>
                        <id>validate</id>
                        <phase>validate</phase>
                        <configuration>
                            <configLocation>camel-checkstyle.xml</configLocation>
                            <suppressionsLocation>camel-checkstyle-suppressions.xml</suppressionsLocation>
                            <consoleOutput>true</consoleOutput>
                            <failOnViolation>true</failOnViolation>
                            <failsOnError>true</failsOnError>
                            <encoding>UTF-8</encoding>
                            <sourceDirectory>${basedir}/src</sourceDirectory>
                        </configuration>
                        <goals>
                            <goal>check</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.sonarsource.scanner.maven</groupId>
                <artifactId>sonar-maven-plugin</artifactId>
            </plugin>

            <!-- Governance plugins -->
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>license-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <id>update-file-header</id>
                        <goals>
                            <goal>update-file-header</goal>
                            <goal>download-licenses</goal>
                        </goals>
                        <phase>process-sources</phase>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>
