<?xml version="1.0" encoding="UTF-8"?>
<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>
  <groupId>org.zanata</groupId>
  <artifactId>parent</artifactId>
  <version>4.6.2</version>
  <name>Zanata Parent POM</name>
  <description>Parent pom for Zanata modules</description>
  <url>http://zanata.org/</url>
  <packaging>pom</packaging>

  <!--
    Maven likes to add the artifactIds to these URLs (thus breaking
    them), so we have to repeat these URLs again in each POM.
    See https://issues.apache.org/jira/browse/MPIR-234
   -->
  <scm>
    <connection>scm:git:https://github.com/zanata/zanata-platform.git</connection>
    <developerConnection>scm:git:git@github.com:zanata/zanata-platform.git</developerConnection>
    <!-- This url needs to work when Maven adds the artifactId in child modules.
         (Use mvn help:effective-pom to check the result.)
         See https://issues.apache.org/jira/browse/MPIR-234?focusedCommentId=14663321&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14663321
    -->
    <url>https://github.com/zanata/zanata-platform/tree/master/</url>
    <tag>platform-4.6.2</tag>
  </scm>

  <licenses>
    <license>
      <name>GNU Lesser General Public License v2.1</name>
      <url>http://www.gnu.org/licenses/lgpl-2.1.html</url>
      <distribution>repo</distribution>
    </license>
  </licenses>

  <issueManagement>
    <system>Jira</system>
    <url>https://zanata.atlassian.net/</url>
  </issueManagement>

  <ciManagement>
    <system>jenkins</system>
    <notifiers>
      <notifier>
        <type>mail</type>
      </notifier>
    </notifiers>
  </ciManagement>

  <mailingLists>
    <mailingList>
      <name>zanata-users</name>
      <post>zanata-users@redhat.com</post>
      <subscribe>https://www.redhat.com/mailman/listinfo/zanata-users/</subscribe>
      <unsubscribe>zanata-users-request@redhat.com?subject=unsubscribe</unsubscribe>
      <archive>https://www.redhat.com/archives/zanata-users/</archive>
    </mailingList>

    <mailingList>
      <name>zanata-devel</name>
      <post>zanata-devel@redhat.com</post>
      <subscribe>https://www.redhat.com/mailman/listinfo/zanata-devel/</subscribe>
      <unsubscribe>zanata-devel-request@redhat.com?subject=unsubscribe</unsubscribe>
      <archive>https://www.redhat.com/archives/zanata-devel/</archive>
    </mailingList>

    <mailingList>
      <name>zanata-commits</name>
      <!-- users can't post messages: <post>zanata-commits@redhat.com</post> -->
      <subscribe>https://www.redhat.com/mailman/listinfo/zanata-commits/</subscribe>
      <unsubscribe>zanata-commits-request@redhat.com?subject=unsubscribe</unsubscribe>
      <archive>https://www.redhat.com/archives/zanata-commits/</archive>
    </mailingList>

  </mailingLists>

  <organization>
    <name>Zanata Project</name>
    <url>http://zanata.org/</url>
  </organization>

  <developers>
    <!-- in alphabetical order (by id field) -->
    <developer>
      <id>aeng@redhat.com</id>
      <name>Alex Eng</name>
      <email>aeng@redhat.com</email>
      <organization>Red Hat</organization>
      <organizationUrl>http://www.redhat.com/</organizationUrl>
      <timezone>10</timezone>
    </developer>
    <developer>
      <id>camunoz@redhat.com</id>
      <name>Carlos Munoz</name>
      <email>camunoz@redhat.com</email>
      <organization>Red Hat</organization>
      <organizationUrl>http://www.redhat.com/</organizationUrl>
      <timezone>10</timezone>
    </developer>
    <developer>
      <id>damason@redhat.com</id>
      <name>David Mason</name>
      <email>damason@redhat.com</email>
      <organization>Red Hat</organization>
      <organizationUrl>http://www.redhat.com/</organizationUrl>
      <timezone>10</timezone>
    </developer>
    <developer>
      <id>hding@redhat.com</id>
      <name>Helen Ding</name>
      <email>hding@redhat.com</email>
      <organization>Red Hat</organization>
      <organizationUrl>http://www.redhat.com/</organizationUrl>
      <timezone>10</timezone>
    </developer>
    <developer>
      <id>jni@redhat.com</id>
      <name>James Ni</name>
      <email>jni@redhat.com</email>
      <organization>Red Hat</organization>
      <organizationUrl>http://www.redhat.com/</organizationUrl>
      <timezone>8</timezone>
    </developer>
    <developer>
      <id>pahuang@redhat.com</id>
      <name>Patrick Huang</name>
      <email>pahuang@redhat.com</email>
      <organization>Red Hat</organization>
      <organizationUrl>http://www.redhat.com/</organizationUrl>
      <timezone>10</timezone>
    </developer>
    <developer>
      <id>sflaniga@redhat.com</id>
      <name>Sean Flanigan</name>
      <email>sflaniga@redhat.com</email>
      <organization>Red Hat</organization>
      <organizationUrl>http://www.redhat.com/</organizationUrl>
      <timezone>10</timezone>
    </developer>
  </developers>

  <contributors>
    <!-- in alphabetical order (by email field) -->
    <contributor>
      <name>Ding-Yi Chen</name>
      <email>dchen@redhat.com</email>
      <organization>Red Hat</organization>
      <organizationUrl>http://www.redhat.com/</organizationUrl>
      <roles>
        <role>packager</role>
        <role>tester</role>
      </roles>
      <timezone>10</timezone>
    </contributor>
    <contributor>
      <name>Damian Jansen</name>
      <email>djansen@redhat.com</email>
      <organization>Red Hat</organization>
      <organizationUrl>http://www.redhat.com/</organizationUrl>
      <roles>
        <role>tester</role>
      </roles>
      <timezone>10</timezone>
    </contributor>
    <contributor>
      <name>Sachin Pathare</name>
      <email>spathare@redhat.com</email>
      <organization>Red Hat</organization>
      <organizationUrl>http://www.redhat.com/</organizationUrl>
      <roles>
        <role>tester</role>
      </roles>
      <timezone>IST</timezone>
    </contributor>
  </contributors>

  <properties>
    <!--
    Version of java compiler used for building. (Specified as major.minor,
    as used by javac -source and -target).
    -->
    <required.java>1.8</required.java>
    <!-- newer versions have better type inferencing -->
    <java.version.range>[1.8.0-121,)</java.version.range>
    <maven.compiler.source>${required.java}</maven.compiler.source>
    <!--
      Version of Java used for runtime (major.minor) and for bytecode
      generation. Should correspond with animal.sniffer.signature.
    -->
    <!-- NB: When changing this, be sure to update the rpm's spec file to match -->
    <required.jvm>1.8</required.jvm>
    <maven.compiler.target>${required.jvm}</maven.compiler.target>
    <maven.compiler.showWarnings>true</maven.compiler.showWarnings>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

    <!--
      Version of Java used for API compatibility checking. Should
      correspond with required.jvm.
    -->
    <animal.sniffer.signature>org.codehaus.mojo.signature:java18:1.0</animal.sniffer.signature>
    <required.maven>3.5.0</required.maven>
    <maven.build.timestamp.format>yyyyMMdd-HHmm</maven.build.timestamp.format>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

    <!-- The profile 'staticAnalysis' enables these -->
    <dupfind.skip>true</dupfind.skip>
    <enforcer.skip>true</enforcer.skip>
    <findbugs.skip>true</findbugs.skip>
    <mdep.analyze.skip>true</mdep.analyze.skip>
    <checkstyle.skip>true</checkstyle.skip>
    <animal.sniffer.skip>true</animal.sniffer.skip>
    <restrict.skip>true</restrict.skip>

    <hamcrest.version>1.3</hamcrest.version>
    <findbugs.maven.version>3.0.1</findbugs.maven.version>
    <!-- Note: Fedora 23 has 2.4.4. -->
    <groovy.version>2.4.4</groovy.version>
    <!-- Fedora 27 is still on 18.0: https://apps.fedoraproject.org/packages/guava -->
    <guava.version>18.0</guava.version>
    <jackson.version>1.9.13</jackson.version>
    <jaxb.api.version>2.2.12</jaxb.api.version>
    <!-- Fedora <= 27 still uses maven-javadoc-plugin version 2.9.1 -->
    <maven.javadoc.version>3.0.0</maven.javadoc.version>
    <maven.jxr.version>2.5</maven.jxr.version>
    <resteasy.version>3.0.19.Final</resteasy.version>
    <surefire.version>2.21.0</surefire.version>
    <maven.source.version>3.0.1</maven.source.version>
    <site-maven-plugin.version>0.12</site-maven-plugin.version>

    <checkstyle.maven.version>2.17</checkstyle.maven.version>
    <checkstyle.version>7.2</checkstyle.version>
    <checkstyle.config.location>zanata-build-tools/checkstyle.xml</checkstyle.config.location>
    <checkstyle.suppressions.location>zanata-build-tools/checkstyle-suppressions.xml</checkstyle.suppressions.location>
    <!-- <checkstyle.enable.rules.summary>false</checkstyle.enable.rules.summary> -->
    <!-- report violations to stdout (not console!) -->
    <checkstyle.consoleOutput>true</checkstyle.consoleOutput>
    <!-- This won't include frontend code. We should use eslint there. -->
    <checkstyle.includes>*.xml,*.txt,*.md,etc/**,src/main/**,src/test/**,src/etc/**,src/conf/**</checkstyle.includes>
    <checkstyle.excludes>src/test/resources/**,**/.gitkeep</checkstyle.excludes>

    <findbugs.failOnError>true</findbugs.failOnError>
    <findbugs.excludeFilterFile>zanata-build-tools/findbugs-filter.xml</findbugs.excludeFilterFile>
    <reports-plugin.dependencyDetailsEnabled>false</reports-plugin.dependencyDetailsEnabled>
    <reports-plugin.dependencyLocationsEnabled>false</reports-plugin.dependencyLocationsEnabled>
    <slf4j.version>1.7.22</slf4j.version>
  </properties>

  <build>
    <plugins>
      <plugin>
        <groupId>org.jacoco</groupId>
        <artifactId>jacoco-maven-plugin</artifactId>
        <version>0.7.8</version>
        <executions>
          <execution>
            <id>default-prepare-agent</id>
            <goals>
              <goal>prepare-agent</goal>
            </goals>
          </execution>
          <execution>
            <id>default-report</id>
            <phase>prepare-package</phase>
            <goals>
              <goal>report</goal>
            </goals>
          </execution>
          <execution>
            <id>default-check</id>
            <goals>
              <goal>check</goal>
            </goals>
            <configuration>
              <rules>
                <rule>
                  <element>BUNDLE</element>
                  <limits>
                    <limit>
                      <counter>COMPLEXITY</counter>
                      <value>COVEREDRATIO</value>
                      <minimum>0.00</minimum>
                    </limit>
                  </limits>
                </rule>
              </rules>
            </configuration>
          </execution>
        </executions>
      </plugin>

      <!--
        This plugin sorts and reformats the pom.xml.
        NB: Do not sort dependencies because:
        1. Classpath order matters.
        2. So does the order of bom imports.
        See also https://code.google.com/p/sortpom/wiki/SortDependenciesVarning
        and https://code.google.com/p/sortpom/wiki/SortPluginsVarning
      -->
      <plugin>
        <groupId>com.google.code.sortpom</groupId>
        <artifactId>maven-sortpom-plugin</artifactId>
        <version>2.2.1</version>
        <configuration>
          <encoding>${project.build.sourceEncoding}</encoding>
          <keepBlankLines>true</keepBlankLines>
          <nrOfIndentSpace>2</nrOfIndentSpace>
          <predefinedSortOrder>custom_1</predefinedSortOrder>
          <sortProperties>true</sortProperties>
        </configuration>
        <!--
                <executions>
                  <execution>
                    <goals>
                      <goal>sort</goal>
                    </goals>
                    <phase>verify</phase>
                  </execution>
                </executions>
        -->
      </plugin>

      <!-- Allow whitespace checking with "mvn checkstyle:check" -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-checkstyle-plugin</artifactId>
        <configuration>
          <sourceDirectory>${project.basedir}</sourceDirectory>
        </configuration>
        <executions>
          <execution>
            <id>check</id>
            <goals>
              <goal>check</goal>
            </goals>
            <phase>verify</phase>
          </execution>
        </executions>
        <dependencies>
          <dependency>
            <groupId>com.puppycrawl.tools</groupId>
            <artifactId>checkstyle</artifactId>
            <version>${checkstyle.version}</version>
          </dependency>
          <dependency>
            <groupId>org.zanata</groupId>
            <artifactId>build-tools</artifactId>
            <version>${project.version}</version>
          </dependency>
        </dependencies>
      </plugin>

      <plugin>
        <artifactId>maven-eclipse-plugin</artifactId>
        <configuration>
          <downloadSources>true</downloadSources>
          <downloadJavadocs>false</downloadJavadocs>
          <buildOutputDirectory>bin</buildOutputDirectory>
          <skip>true</skip>
        </configuration>
      </plugin>

      <plugin>
        <artifactId>maven-dependency-plugin</artifactId>
        <executions>
          <!--
            Check for misused dependencies during the build
            http://maven.apache.org/plugins/maven-dependency-plugin/examples/failing-the-build-on-dependency-analysis-warnings.html
          -->
          <execution>
            <id>analyze</id>
            <phase>verify</phase>
            <goals>
              <goal>analyze-only</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <failOnWarning>false</failOnWarning>
          <outputXML>true</outputXML>
          <ignoredDependencies combine.children="append">
            <!-- runtime-only dependencies which maven-dependency-analyzer misses  -->
            <ignoredDependency>org.slf4j:slf4j-log4j12</ignoredDependency>
            <ignoredDependency>org.slf4j:slf4j-simple</ignoredDependency>
            <ignoredDependency>org.slf4j:jcl-over-slf4j</ignoredDependency>
          </ignoredDependencies>
        </configuration>
      </plugin>

      <!-- https://github.com/basepom/duplicate-finder-maven-plugin -->
      <plugin>
        <groupId>org.basepom.maven</groupId>
        <artifactId>duplicate-finder-maven-plugin</artifactId>
        <version>1.3.0</version>
        <configuration>
          <failBuildInCaseOfDifferentContentConflict>true</failBuildInCaseOfDifferentContentConflict>
          <!--<printEqualFiles>true</printEqualFiles>-->
          <skip>${dupfind.skip}</skip>
        </configuration>
        <executions>
          <execution>
            <id>check</id>
            <phase>verify</phase>
            <goals>
              <goal>check</goal>
            </goals>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <artifactId>maven-enforcer-plugin</artifactId>
        <version>1.4</version>
        <executions>
          <execution>
            <id>enforce-maven</id>
            <phase>validate</phase>
            <goals>
              <goal>enforce</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <rules>
            <bannedDependencies>
              <excludes combine.children="append">
                <!-- use junit:junit v11+ -->
                <exclude>junit:junit-dep</exclude>
                <exclude>xml-apis:xml-apis</exclude>
                <exclude>xerces:xmlParserAPIs</exclude>

                <!-- use com.google.code.findbugs:findbugs-annotations, net.jcip:jcip-annotations, com.google.code.findbugs:jsr305 -->
                <exclude>com.google.code.findbugs:annotations</exclude>

                <!-- use org.glassfish.jaxb:jaxb-core -->
                <exclude>com.sun.xml.bind:jaxb-core</exclude>
                <!-- use org.glassfish.jaxb:jaxb-runtime -->
                <exclude>com.sun.xml.bind:jaxb-impl</exclude>

                <!-- use org.jboss.spec.javax.servlet -->
                <exclude>javax.servlet:servlet-api</exclude>
                <exclude>javax.servlet:javax.servlet-api</exclude>

                <!-- use org.jboss.spec.javax.annotation -->
                <exclude>javax.annotation:jsr250-api</exclude>

                <exclude>net.sf.okapi.logbind:build-log4j</exclude>
                <!-- use org.javassist:javassist  -->
                <exclude>javassist:javassist</exclude>
                <!-- use org.apache.httpcomponents -->
                <exclude>commons-httpclient:commons-httpclient</exclude>
                <!-- use commons-beanutils:commons-beanutils -->
                <exclude>commons-beanutils:commons-beanutils-core</exclude>
                <!-- use org.slf4j:jcl-over-slf4j -->
                <exclude>commons-logging:commons-logging</exclude>
                <!-- use org.mockito:mockito-core -->
                <exclude>org.mockito:mockito-all</exclude>
                <exclude>org.slf4j:slf4j-jcl</exclude>

                <!-- use resteasy-jaxrs instead of these: -->
                <!-- client could use jersey -->
                <exclude>javax.ws.rs:jsr311-api</exclude>

                <!-- use org.opensymphony.quartz:quartz -->
                <exclude>quartz:quartz</exclude>

                <!-- use com.io7m.xom:xom -->
                <exclude>xom:xom</exclude>
              </excludes>
              <searchTransitive>true</searchTransitive>
            </bannedDependencies>
            <!--
              Ensure that dependencies are compatible with our chosen
              version of Java. See
              http://mojo.codehaus.org/extra-enforcer-rules/enforceBytecodeVersion.html
            -->
            <enforceBytecodeVersion>
              <maxJdkVersion>${required.jvm}</maxJdkVersion>
              <ignoreClasses>
                <!-- Workaround for https://github.com/mojohaus/extra-enforcer-rules/pull/36 -->
                <ignoreClass>module-info</ignoreClass>
              </ignoreClasses>
              <ignoredScopes>
                <!-- Newer bytecode is allowed for system:jdk-tools and similar -->
                <ignoredScope>system</ignoredScope>
              </ignoredScopes>
            </enforceBytecodeVersion>
            <!--
              Ensure that Maven is using our chosen version of the JDK. See
              http://maven.apache.org/enforcer/enforcer-rules/requireJavaVersion.html
            -->
            <requireJavaVersion>
              <version>${java.version.range}</version>
            </requireJavaVersion>
            <requireMavenVersion>
              <version>${required.maven}</version>
            </requireMavenVersion>
            <requireNoRepositories>
              <message xml:space="preserve">Repositories in pom.xml are not allowed by Maven Central</message>
              <banRepositories>true</banRepositories>
              <banPluginRepositories>true</banPluginRepositories>
              <allowedRepositories combine.children="append">
                <allowedRepository>sonatype-snapshots</allowedRepository>
              </allowedRepositories>
            </requireNoRepositories>
            <requireUpperBoundDeps />
          </rules>
        </configuration>
        <dependencies>
          <dependency>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>extra-enforcer-rules</artifactId>
            <version>1.0-beta-3</version>
          </dependency>
        </dependencies>
      </plugin>

      <plugin>
        <groupId>com.yamanyar</groupId>
        <artifactId>restrict-maven-plugin</artifactId>
        <version>0.8</version>
        <executions>
          <execution>
            <phase>verify</phase>
            <goals>
              <goal>restrict</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <continueOnError>false</continueOnError>
          <!-- Don't check our dependencies (yet) -->
          <onlyInspectFolder>true</onlyInspectFolder>
          <printDebugs>false</printDebugs>
          <restrictions>
            <!-- Restrict org.zanata.* access to *.internal.* packages, with some exceptions. -->
            <!-- kotlin.jvm.internal: required by Kotlin-compiled code -->
            <!-- TODO remove references to org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl
                 and org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl -->
            <!-- TODO remove references to org.hibernate.internal.SessionImpl -->
            <!-- TODO remove references to org.hibernate.validator.internal.constraintvalidators.hv.EmailValidator -->
            <!-- TODO block *.impl.* except org.zanata.*, com.google.gwt.i18n.server.impl, antlr.collections.impl.BitSet -->
            <restriction>org.zanata.* to *.internal.*,!kotlin.jvm.internal.*,!org.hibernate.validator.internal.constraintvalidators.hv.EmailValidator,!org.hibernate.engine.jdbc.connections.internal.*,!org.hibernate.internal.SessionImpl</restriction>
          </restrictions>
        </configuration>
      </plugin>

      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>animal-sniffer-maven-plugin</artifactId>
        <version>1.16</version>
        <executions>
          <execution>
            <id>animal-sniffer</id>
            <phase>test</phase>
            <goals>
              <goal>check</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <excludeDependencies>
            <!-- xom:1.0 uses this -->
            <excludeDependency>com.ibm.icu:icu4j:jar:2.6.1</excludeDependency>
          </excludeDependencies>
        </configuration>
      </plugin>

      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>findbugs-maven-plugin</artifactId>
        <version>${findbugs.maven.version}</version>
        <configuration>
          <plugins>
            <plugin>
              <groupId>com.overstock.findbugs</groupId>
              <artifactId>library-detectors</artifactId>
              <version>1.1</version>
            </plugin>
            <plugin>
              <groupId>jp.skypencil.findbugs.slf4j</groupId>
              <artifactId>bug-pattern</artifactId>
              <version>1.3.0</version>
            </plugin>
          </plugins>
        </configuration>
        <dependencies>
          <dependency>
            <groupId>org.zanata</groupId>
            <artifactId>build-tools</artifactId>
            <version>${project.version}</version>
          </dependency>
        </dependencies>
        <executions>
          <execution>
            <id>default</id>
            <goals>
              <goal>check</goal>
            </goals>
          </execution>
        </executions>
      </plugin>


      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>versions-maven-plugin</artifactId>
        <version>2.5</version>
        <configuration>
          <rulesUri>classpath:///zanata-build-tools/versions-rules.xml</rulesUri>
        </configuration>
        <dependencies>
          <dependency>
            <groupId>org.zanata</groupId>
            <artifactId>build-tools</artifactId>
            <version>${project.version}</version>
          </dependency>
        </dependencies>
      </plugin>

      <plugin>
        <groupId>com.lukegb.mojo</groupId>
        <artifactId>gitdescribe-maven-plugin</artifactId>
        <version>2.0</version>
        <executions>
          <execution>
            <goals>
              <goal>gitdescribe</goal>
            </goals>
            <id>git-describe</id>
            <phase>initialize</phase>
            <configuration>
              <descriptionProperty>gitDescribe</descriptionProperty>
              <extraArguments>
              </extraArguments>
            </configuration>
          </execution>
        </executions>
      </plugin>

      <!-- useful for debugging Maven properties: eg mvn initialize antrun:run -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-antrun-plugin</artifactId>
        <executions>
          <execution>
            <id>gitdescribe</id>
            <phase>initialize</phase>
            <goals>
              <goal>run</goal>
            </goals>
            <configuration>
              <target>
                <echo>[describe] ${gitDescribe}</echo>
              </target>
            </configuration>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <inherited>true</inherited>
        <configuration>
          <archive>
            <manifest>
              <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
              <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
            </manifest>
            <manifestEntries>
              <SCM-Describe>${gitDescribe}</SCM-Describe>
              <Implementation-Build>${maven.build.timestamp}</Implementation-Build>
            </manifestEntries>
          </archive>
          <skipIfEmpty>true</skipIfEmpty>
        </configuration>
        <executions>
          <execution>
            <goals>
              <goal>test-jar</goal>
            </goals>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-release-plugin</artifactId>
        <version>2.5.3</version>
        <configuration>
          <allowTimestampedSnapshots>false</allowTimestampedSnapshots>
          <autoVersionSubmodules>true</autoVersionSubmodules>
          <useReleaseProfile>false</useReleaseProfile>
          <localCheckout>true</localCheckout>
          <pushChanges>true</pushChanges>
          <releaseProfiles>release</releaseProfiles>
          <goals>deploy</goals>
        </configuration>
      </plugin>
    </plugins>

    <pluginManagement>
      <plugins>
        <plugin>
          <artifactId>maven-antrun-plugin</artifactId>
          <version>1.8</version>
        </plugin>
        <plugin>
          <artifactId>maven-checkstyle-plugin</artifactId>
          <version>${checkstyle.maven.version}</version>
        </plugin>
        <plugin>
          <artifactId>maven-clean-plugin</artifactId>
          <version>2.6.1</version>
        </plugin>
        <plugin>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>3.7.0</version>
        </plugin>
        <plugin>
          <artifactId>maven-dependency-plugin</artifactId>
          <version>2.10</version>
        </plugin>
        <plugin>
          <artifactId>maven-deploy-plugin</artifactId>
          <version>2.8.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-javadoc-plugin</artifactId>
          <version>${maven.javadoc.version}</version>
          <configuration>
            <!-- for maven-javadoc-plugin 2.x -->
            <additionalparam>-Xdoclint:none</additionalparam>
            <!-- for maven-javadoc-plugin 3.x -->
            <doclint>none</doclint>
          </configuration>
        </plugin>
        <plugin>
          <artifactId>maven-eclipse-plugin</artifactId>
          <version>2.10</version>
        </plugin>
        <plugin>
          <artifactId>maven-install-plugin</artifactId>
          <version>2.5.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-jar-plugin</artifactId>
          <version>3.0.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-resources-plugin</artifactId>
          <version>2.7</version>
          <dependencies>
            <dependency>
                <groupId>org.apache.maven.shared</groupId>
                <artifactId>maven-filtering</artifactId>
                <version>1.3</version>
            </dependency>
          </dependencies>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-shade-plugin</artifactId>
          <version>3.1.0</version>
        </plugin>
        <plugin>
          <artifactId>maven-source-plugin</artifactId>
          <version>${maven.source.version}</version>
        </plugin>
        <plugin>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>${surefire.version}</version>
        </plugin>
        <plugin>
          <artifactId>maven-surefire-report-plugin</artifactId>
          <version>${surefire.version}</version>
        </plugin>
        <plugin>
          <artifactId>maven-jxr-plugin</artifactId>
          <version>${maven.jxr.version}</version>
        </plugin>
        <plugin>
          <artifactId>maven-site-plugin</artifactId>
          <version>3.4</version>
        </plugin>
        <!-- Mandatory plugins for using Spock -->
        <plugin>
          <groupId>org.codehaus.gmaven</groupId>
          <artifactId>gmaven-plugin</artifactId>
          <version>1.5</version>
          <configuration>
            <providerSelection>2.0</providerSelection>
          </configuration>
          <executions>
            <execution>
              <id>spock</id>
              <goals>
                <goal>compile</goal>
                <goal>testCompile</goal>
              </goals>
            </execution>
          </executions>
          <dependencies>
            <dependency>
              <groupId>org.codehaus.gmaven.runtime</groupId>
              <artifactId>gmaven-runtime-1.8</artifactId>
              <version>1.5</version>
              <exclusions>
                <exclusion>
                  <groupId>org.codehaus.groovy</groupId>
                  <artifactId>groovy-all</artifactId>
                </exclusion>
              </exclusions>
            </dependency>
            <dependency>
              <groupId>org.codehaus.groovy</groupId>
              <artifactId>groovy-all</artifactId>
              <version>${groovy.version}</version>
            </dependency>
          </dependencies>
        </plugin>
      </plugins>
    </pluginManagement>
    <extensions>
      <extension>
        <!--
        enables dav: protocol for distributionManagement in maven-deploy-plugin
        -->
        <groupId>org.apache.maven.wagon</groupId>
        <artifactId>wagon-webdav-jackrabbit</artifactId>
        <version>2.10</version>
      </extension>
    </extensions>
  </build>

  <profiles>
    <profile>
      <id>release</id>
      <build>
        <plugins>
          <!-- Deploy sources to OSSRH -->
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-source-plugin</artifactId>
            <version>${maven.source.version}</version>
            <executions>
              <execution>
                <id>attach-sources</id>
                <goals>
                  <goal>jar-no-fork</goal>
                </goals>
              </execution>
            </executions>
          </plugin>

          <plugin>
            <groupId>org.sonatype.plugins</groupId>
            <artifactId>nexus-staging-maven-plugin</artifactId>
            <version>1.6.8</version>
            <extensions>true</extensions>
            <configuration>
              <!-- The Base URL of Nexus instance where we want to stage -->
              <nexusUrl>https://oss.sonatype.org/</nexusUrl>
              <!-- The server "id" element from settings to use authentication from -->
              <serverId>sonatype-staging</serverId>
            </configuration>
          </plugin>

          <!-- Deploy javadocs to OSSRH -->
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-javadoc-plugin</artifactId>
            <executions>
              <execution>
                <id>aggregate</id>
                <goals>
                  <goal>aggregate</goal>
                </goals>
                <phase>site</phase>
              </execution>
              <execution>
                <id>attach-javadocs</id>
                <goals>
                  <goal>jar</goal>
                </goals>
              </execution>
            </executions>
          </plugin>

          <!-- Deploy sign artifacts for OSSRH -->
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-gpg-plugin</artifactId>
            <version>1.6</version>
            <executions>
              <execution>
                <id>sign-artifacts</id>
                <phase>verify</phase>
                <goals>
                  <goal>sign</goal>
                </goals>
              </execution>
            </executions>
            <configuration>
              <useAgent>true</useAgent>
            </configuration>
          </plugin>
        </plugins>
      </build>
      <dependencies>
        <!-- nexus-staging-maven-plugin need this one -->
        <dependency>
          <groupId>org.sonatype.aether</groupId>
          <artifactId>aether-api</artifactId>
          <version>1.13.1</version>
        </dependency>
      </dependencies>
    </profile>

    <profile>
      <!-- This profile lets us skip unit tests (but not integration tests)
        with -DskipUnitTests . The option
        -DskipTests can still be used to skip all tests (unit and integration). -->
      <id>skipUnitTests</id>
      <activation>
        <property>
          <name>skipUnitTests</name>
        </property>
      </activation>
      <build>
        <plugins>
          <plugin>
            <artifactId>maven-surefire-plugin</artifactId>
            <configuration>
              <skipTests>true</skipTests>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>

    <profile>
      <!-- This profile is for *strict* local builds - the Maven build fails
      if there is a problem -->
      <id>staticAnalysis</id>
      <activation>
        <property>
          <name>staticAnalysis</name>
          <value>true</value>
        </property>
      </activation>
      <properties>
        <animal.sniffer.skip>false</animal.sniffer.skip>
        <checkstyle.failOnViolation>true</checkstyle.failOnViolation>
        <checkstyle.skip>false</checkstyle.skip>
        <dupfind.skip>false</dupfind.skip>
        <enforcer.skip>false</enforcer.skip>
        <findbugs.skip>false</findbugs.skip>
        <maven.compiler.failOnWarning>true</maven.compiler.failOnWarning>
        <mdep.analyze.skip>false</mdep.analyze.skip>
        <!-- restrict-maven-plugin -->
        <restrict.skip>false</restrict.skip>
      </properties>
    </profile>

    <profile>
      <!-- For Jenkins, we want to run static analysis, but for some plugins we
      don't want Maven to fail the build - Jenkins will. (With some plugins, we
      don't have that control, or Jenkins doesn't know how to check the
      output.) -->
      <id>staticAnalysisCI</id>
      <activation>
        <property>
          <name>staticAnalysisCI</name>
          <value>true</value>
        </property>
      </activation>
      <properties>
        <animal.sniffer.skip>false</animal.sniffer.skip>
        <!-- These violations will be picked up by CheckStylePublisher -->
        <checkstyle.failOnViolation>false</checkstyle.failOnViolation>
        <checkstyle.skip>false</checkstyle.skip>
        <dupfind.skip>false</dupfind.skip>
        <enforcer.skip>false</enforcer.skip>
        <!-- These violations will be picked up by FindBugsPublisher -->
        <findbugs.failOnError>false</findbugs.failOnError>
        <findbugs.skip>false</findbugs.skip>
        <!-- These violations will be picked up by WarningsPublisher -->
        <maven.compiler.failOnWarning>false</maven.compiler.failOnWarning>
        <mdep.analyze.skip>false</mdep.analyze.skip>
        <!-- restrict-maven-plugin -->
        <restrict.skip>false</restrict.skip>
      </properties>
    </profile>

    <profile>
      <id>dependency-check</id>
      <activation>
        <property>
          <name>depcheck</name>
        </property>
      </activation>
      <properties>
        <!-- for ossindex: -->
        <audit.failOnError>true</audit.failOnError>
        <audit.quiet>true</audit.quiet>

        <!-- TODO ignore by ID, not GAV (need https://github.com/OSSIndex/ossindex-maven-plugin/pull/20) -->
        <!-- wildfly: due to https://github.com/OSSIndex/ossindex-maven-plugin/issues/19 -->
        <!-- picketlink*, jgroups: because we use the app server's version (scope=provided)-->
        <!-- ognl is test only (via concordion) -->
        <audit.ignore>
          org.wildfly.core:wildfly-server:2.0.10.Final,
          org.jgroups:jgroups,
          org.picketlink:picketlink-common,
          org.picketlink:picketlink-federation,
          ognl:ognl:2.6.9,
        </audit.ignore>

        <!--<audit.warnOnIgnore>true</audit.warnOnIgnore>-->
      </properties>
      <build>
        <plugins>
          <plugin>
            <groupId>com.redhat.victims.maven</groupId>
            <artifactId>security-versions</artifactId>
            <version>1.0.6</version>
            <executions>
              <execution>
                <phase>verify</phase>
                <goals>
                  <!-- Disabled due to https://github.com/victims/maven-security-versions/issues/4 -->
                  <!-- <goal>check</goal> -->
                </goals>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>net.ossindex</groupId>
            <artifactId>ossindex-maven-plugin</artifactId>
            <version>2.3.8</version>
            <executions>
              <execution>
                <phase>verify</phase>
                <goals>
                  <goal>audit</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>

    <profile>
      <!-- This profile runs a single integration test with
        -Dit.test=<integration-test-name>, skipping unit tests. -->
      <id>it.test</id>
      <activation>
        <property>
          <name>it.test</name>
        </property>
      </activation>
      <build>
        <plugins>
          <plugin>
            <artifactId>maven-surefire-plugin</artifactId>
            <configuration>
              <skipTests>true</skipTests>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>

    <profile>
      <id>m2e</id>
      <!-- This profile is only active when the property "m2e.version"
        is set, which is the case when building in Eclipse with m2e. -->
      <!-- From http://stackoverflow.com/a/21574285/14379 -->
      <activation>
        <property>
          <name>m2e.version</name>
        </property>
      </activation>
      <build>
        <pluginManagement>
          <plugins>
            <plugin>
              <groupId>org.eclipse.m2e</groupId>
              <artifactId>lifecycle-mapping</artifactId>
              <version>1.0.0</version>
              <configuration>
                <lifecycleMappingMetadata>
                  <pluginExecutions>
                    <pluginExecution>
                      <pluginExecutionFilter>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-enforcer-plugin</artifactId>
                        <versionRange>[1.0.0,)</versionRange>
                        <goals>
                          <goal>enforce</goal>
                        </goals>
                      </pluginExecutionFilter>
                      <action>
                        <ignore />
                      </action>
                    </pluginExecution>
                    <pluginExecution>
                      <pluginExecutionFilter>
                        <groupId>com.lukegb.mojo</groupId>
                        <artifactId>gitdescribe-maven-plugin</artifactId>
                        <versionRange>[2.0,)</versionRange>
                        <goals>
                          <goal>gitdescribe</goal>
                        </goals>
                      </pluginExecutionFilter>
                      <action>
                        <ignore />
                      </action>
                    </pluginExecution>
                    <pluginExecution>
                      <pluginExecutionFilter>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-checkstyle-plugin</artifactId>
                        <versionRange>[2.10,)</versionRange>
                        <goals>
                          <goal>check</goal>
                        </goals>
                      </pluginExecutionFilter>
                      <action>
                        <ignore />
                      </action>
                    </pluginExecution>
                    <pluginExecution>
                      <pluginExecutionFilter>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-dependency-plugin</artifactId>
                        <versionRange>[2.8,)</versionRange>
                        <goals>
                          <goal>analyze-only</goal>
                        </goals>
                      </pluginExecutionFilter>
                      <action>
                        <ignore />
                      </action>
                    </pluginExecution>
                    <pluginExecution>
                      <pluginExecutionFilter>
                        <groupId>org.codehaus.mojo</groupId>
                        <artifactId>findbugs-maven-plugin</artifactId>
                        <versionRange>[2.5.2,)</versionRange>
                        <goals>
                          <goal>check</goal>
                        </goals>
                      </pluginExecutionFilter>
                      <action>
                        <ignore />
                      </action>
                    </pluginExecution>
                    <pluginExecution>
                      <pluginExecutionFilter>
                        <groupId>org.codehaus.groovy.maven</groupId>
                        <artifactId>gmaven-plugin</artifactId>
                        <versionRange>[1.0,)</versionRange>
                        <goals>
                          <goal>execute</goal>
                        </goals>
                      </pluginExecutionFilter>
                      <action>
                        <ignore />
                      </action>
                    </pluginExecution>
                  </pluginExecutions>
                </lifecycleMappingMetadata>
              </configuration>
            </plugin>
          </plugins>
        </pluginManagement>
      </build>
    </profile>

    <profile>
      <!-- Used for MEAD builds -->
      <id>mead</id>
      <activation>
        <property>
          <name>mead</name>
        </property>
      </activation>
      <properties>
        <allow.deploy.skip>false</allow.deploy.skip>

        <animal.sniffer.skip>false</animal.sniffer.skip>
        <checkstyle.skip>false</checkstyle.skip>
        <dupfind.skip>false</dupfind.skip>
        <enforcer.skip>false</enforcer.skip>
        <findbugs.skip>false</findbugs.skip>
        <mdep.analyze.skip>false</mdep.analyze.skip>
        <restrict.skip>false</restrict.skip>

        <mavensign.expand.skip>*</mavensign.expand.skip>
        <mavensign.sign.skip>*</mavensign.sign.skip>
        <skipTests>true</skipTests>
      </properties>
    </profile>

    <profile>
      <id>allReports</id>
      <reporting>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-checkstyle-plugin</artifactId>
          </plugin>

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

          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jxr-plugin</artifactId>
            <configuration>
              <aggregate>true</aggregate>
            </configuration>
          </plugin>

          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-pmd-plugin</artifactId>
            <version>2.5</version>
            <configuration>
              <targetJdk>${required.java}</targetJdk>
            </configuration>
          </plugin>

        </plugins>
      </reporting>
    </profile>
  </profiles>

  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
        <scope>test</scope>
      </dependency>

      <dependency>
        <groupId>com.sun.xml.fastinfoset</groupId>
        <artifactId>FastInfoset</artifactId>
        <version>1.2.13</version>
      </dependency>
      <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.17</version>
      </dependency>
      <dependency>
        <groupId>org.codehaus.groovy</groupId>
        <artifactId>groovy-all</artifactId>
        <version>${groovy.version}</version>
      </dependency>
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>${slf4j.version}</version>
      </dependency>
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
        <version>${slf4j.version}</version>
      </dependency>
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-simple</artifactId>
        <version>${slf4j.version}</version>
      </dependency>
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>jcl-over-slf4j</artifactId>
        <version>${slf4j.version}</version>
      </dependency>
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>log4j-over-slf4j</artifactId>
        <version>${slf4j.version}</version>
      </dependency>
      <dependency>
        <groupId>org.spockframework</groupId>
        <artifactId>spock-core</artifactId>
        <version>1.0-groovy-2.4</version>
        <scope>test</scope>
        <exclusions>
          <exclusion>
            <groupId>junit</groupId>
            <artifactId>junit-dep</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.testng</groupId>
        <artifactId>testng</artifactId>
        <version>6.8.21</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.easymock</groupId>
        <artifactId>easymock</artifactId>
        <version>3.3.1</version>
        <scope>test</scope>
      </dependency>

      <dependency>
        <groupId>org.mockito</groupId>
        <artifactId>mockito-core</artifactId>
        <version>1.10.19</version>
        <scope>test</scope>
      </dependency>

      <dependency>
        <groupId>org.hamcrest</groupId>
        <artifactId>hamcrest-core</artifactId>
        <version>${hamcrest.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.hamcrest</groupId>
        <artifactId>hamcrest-library</artifactId>
        <version>${hamcrest.version}</version>
        <scope>test</scope>
      </dependency>

      <dependency>
        <groupId>com.google.guava</groupId>
        <artifactId>guava</artifactId>
        <version>${guava.version}</version>
      </dependency>

      <dependency>
        <groupId>com.google.guava</groupId>
        <artifactId>guava-gwt</artifactId>
        <version>${guava.version}</version>
        <scope>provided</scope>
      </dependency>

      <dependency>
        <groupId>com.google.code.findbugs</groupId>
        <artifactId>findbugs-annotations</artifactId>
        <version>3.0.1</version>
        <scope>provided</scope>
      </dependency>

      <dependency>
        <groupId>com.google.code.findbugs</groupId>
        <artifactId>jsr305</artifactId>
        <version>3.0.2</version>
        <scope>provided</scope>
      </dependency>

      <dependency>
        <groupId>net.jcip</groupId>
        <artifactId>jcip-annotations</artifactId>
        <version>1.0</version>
        <scope>provided</scope>
      </dependency>

      <dependency>
        <groupId>org.codehaus.jackson</groupId>
        <artifactId>jackson-core-asl</artifactId>
        <version>${jackson.version}</version>
      </dependency>

      <dependency>
        <groupId>org.codehaus.jackson</groupId>
        <artifactId>jackson-jaxrs</artifactId>
        <version>${jackson.version}</version>
      </dependency>

      <dependency>
        <groupId>org.codehaus.jackson</groupId>
        <artifactId>jackson-mapper-asl</artifactId>
        <version>${jackson.version}</version>
      </dependency>

      <dependency>
        <groupId>org.codehaus.jackson</groupId>
        <artifactId>jackson-xc</artifactId>
        <version>${jackson.version}</version>
      </dependency>

      <dependency>
        <groupId>com.h2database</groupId>
        <artifactId>h2</artifactId>
        <version>1.3.170</version>
        <scope>provided</scope>
      </dependency>

      <dependency>
        <groupId>commons-beanutils</groupId>
        <artifactId>commons-beanutils</artifactId>
        <version>1.9.3</version>
        <exclusions>
          <exclusion>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
          </exclusion>
        </exclusions>
      </dependency>

      <dependency>
        <groupId>commons-codec</groupId>
        <artifactId>commons-codec</artifactId>
        <version>1.10</version>
      </dependency>

      <dependency>
        <groupId>commons-collections</groupId>
        <artifactId>commons-collections</artifactId>
        <version>3.2.2</version>
      </dependency>

      <dependency>
        <groupId>javax.transaction</groupId>
        <artifactId>jta</artifactId>
        <version>1.1.1</version>
        <scope>provided</scope>
      </dependency>
      <dependency>
        <groupId>javax.xml.bind</groupId>
        <artifactId>jaxb-api</artifactId>
        <version>${jaxb.api.version}</version>
      </dependency>
      <dependency>
        <groupId>javax.xml.bind</groupId>
        <artifactId>jaxb-api</artifactId>
        <version>${jaxb.api.version}</version>
        <classifier>sources</classifier>
      </dependency>
      <dependency>
        <groupId>javax.xml.stream</groupId>
        <artifactId>stax-api</artifactId>
        <version>1.0</version>
      </dependency>
      <dependency>
        <groupId>org.glassfish.jaxb</groupId>
        <artifactId>jaxb-runtime</artifactId>
        <version>2.2.11</version>
      </dependency>

      <dependency>
        <groupId>org.jboss.logging</groupId>
        <artifactId>jboss-logging</artifactId>
        <version>3.3.0.Final</version>
        <exclusions>
          <exclusion>
            <groupId>javax.el</groupId>
            <artifactId>el-api</artifactId>
          </exclusion>
        </exclusions>
      </dependency>

      <!-- RestEasy dependencies -->
      <!-- zanata-common-api, client and server/services need them -->
      <dependency>
        <groupId>org.jboss.resteasy</groupId>
        <artifactId>resteasy-bom</artifactId>
        <version>${resteasy.version}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
      <dependency>
        <groupId>org.jboss.resteasy</groupId>
        <artifactId>resteasy-jackson-provider</artifactId>
        <version>${resteasy.version}</version>
      </dependency>
      <dependency>
        <groupId>org.jboss.resteasy</groupId>
        <artifactId>resteasy-jaxb-provider</artifactId>
        <version>${resteasy.version}</version>
      </dependency>
      <dependency>
        <groupId>org.jboss.resteasy</groupId>
        <artifactId>resteasy-jaxrs</artifactId>
        <version>${resteasy.version}</version>
        <exclusions>
          <exclusion>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
          </exclusion>
          <exclusion>
            <groupId>javassist</groupId>
            <artifactId>javassist</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.jboss.resteasy</groupId>
        <artifactId>resteasy-multipart-provider</artifactId>
        <version>${resteasy.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.maven</groupId>
        <artifactId>maven-plugin-api</artifactId>
        <version>2.0</version>
      </dependency>
      <dependency>
        <groupId>org.apache.maven</groupId>
        <artifactId>maven-artifact</artifactId>
        <version>${required.maven}</version>
      </dependency>
      <dependency>
        <groupId>com.pyx4j</groupId>
        <artifactId>maven-plugin-log4j</artifactId>
        <version>1.0.1</version>
      </dependency>
      <dependency>
        <groupId>commons-configuration</groupId>
        <artifactId>commons-configuration</artifactId>
        <version>1.10</version>
        <exclusions>
          <exclusion>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
          </exclusion>
        </exclusions>
      </dependency>

      <dependency>
        <groupId>org.fedorahosted.openprops</groupId>
        <artifactId>openprops</artifactId>
        <version>0.8.5</version>
      </dependency>
      <dependency>
        <groupId>org.infinitest</groupId>
        <artifactId>infinitest</artifactId>
        <version>4.0.1</version>
        <scope>test</scope>
      </dependency>

      <!-- Liquibase Dependencies -->
      <!-- If the Liquibase version is being updated, please refer to
      any changelog files that run 'on change' and make sure that they still run
      after upgrading the version. -->
      <dependency>
        <groupId>org.liquibase</groupId>
        <artifactId>liquibase-core</artifactId>
        <version>3.0.7</version>
      </dependency>

      <dependency>
        <groupId>commons-lang</groupId>
        <artifactId>commons-lang</artifactId>
        <version>2.6</version>
      </dependency>

      <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-csv</artifactId>
        <version>1.2</version>
      </dependency>

      <dependency>
        <groupId>commons-io</groupId>
        <artifactId>commons-io</artifactId>
        <version>2.5</version>
      </dependency>

      <dependency>
        <!-- New group Id -->
        <groupId>com.io7m.xom</groupId>
        <artifactId>xom</artifactId>
        <!-- NB: the latest version currently packaged for Fedora: -->
        <version>1.2.10</version>
        <exclusions>
          <exclusion>
            <artifactId>xml-apis</artifactId>
            <groupId>xml-apis</groupId>
          </exclusion>
          <exclusion>
            <groupId>xerces</groupId>
            <artifactId>xercesImpl</artifactId>
          </exclusion>
          <exclusion>
            <groupId>xerces</groupId>
            <artifactId>xmlParserAPIs</artifactId>
          </exclusion>
        </exclusions>
      </dependency>

      <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-collections4</artifactId>
        <version>4.1</version>
      </dependency>

      <dependency>
        <groupId>org.apache.santuario</groupId>
        <artifactId>xmlsec</artifactId>
        <version>2.0.9</version>
      </dependency>

      <dependency>
        <groupId>xalan</groupId>
        <artifactId>xalan</artifactId>
        <version>2.7.2</version>
      </dependency>

      <dependency>
        <groupId>xerces</groupId>
        <artifactId>xercesImpl</artifactId>
        <!-- This comes from jboss - the standard 2.11.0 requires xml-apis (which we exclude) -->
        <version>2.11.0.SP5</version>
      </dependency>

      <dependency>
        <groupId>org.codehaus.plexus</groupId>
        <artifactId>plexus-utils</artifactId>
        <version>3.0.24</version>
      </dependency>

      <!-- Optional dependencies for using Spock -->
      <dependency> <!-- enables mocking of classes (in addition to interfaces) -->
        <groupId>cglib</groupId>
        <artifactId>cglib-nodep</artifactId>
        <version>3.2.4</version>
        <scope>test</scope>
      </dependency>
      <dependency> <!-- enables mocking of classes without default constructor (together with CGLIB) -->
        <groupId>org.objenesis</groupId>
        <artifactId>objenesis</artifactId>
        <version>2.1</version>
        <scope>test</scope>
      </dependency>
    </dependencies>
  </dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>jcl-over-slf4j</artifactId>
    </dependency>
  </dependencies>
  <reporting>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-project-info-reports-plugin</artifactId>
        <version>2.2</version>
        <configuration>
          <!-- these can be incredibly slow -->
          <dependencyDetailsEnabled>${reports-plugin.dependencyDetailsEnabled}</dependencyDetailsEnabled>
          <dependencyLocationsEnabled>${reports-plugin.dependencyLocationsEnabled}</dependencyLocationsEnabled>
        </configuration>
      </plugin>

      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>findbugs-maven-plugin</artifactId>
        <version>${findbugs.maven.version}</version>
        <configuration>
          <xmlOutput>true</xmlOutput>
          <!-- Optional directory to put findbugs xdoc xml report -->
          <xmlOutputDirectory>target/site</xmlOutputDirectory>
        </configuration>
      </plugin>

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

  <distributionManagement>
    <snapshotRepository>
      <id>sonatype-snapshots</id>
      <url>https://oss.sonatype.org/content/repositories/snapshots</url>
    </snapshotRepository>
    <repository>
      <id>sonatype-staging</id>
      <url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
    </repository>
  </distributionManagement>
</project>
