<!--

    Copyright 2004-2013 The Kuali Foundation

    Licensed under the Educational Community License, Version 2.0 (the "License");
    you may not use this file except in compliance with the License.
    You may obtain a copy of the License at

    http://www.opensource.org/licenses/ecl2.php

    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.

-->
<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.kuali.pom</groupId>
  <version>2.3.9</version>
  <artifactId>kuali-pom</artifactId>
  <packaging>pom</packaging>
  <name>Kuali Foundation</name>
  <description>The Kuali Foundation is an umbrella organization that helps manage the Kuali software community..</description>
  <modules>
    <module>kuali-common</module>
  </modules>
  <licenses>
    <license>
      <name>Educational Community License, Version 2.0</name>
      <url>${kuali.ecl.license.url}</url>
      <distribution>repo</distribution>
    </license>
  </licenses>
  <organization>
    <name>The Kuali Foundation</name>
    <url>http://www.kuali.org/</url>
  </organization>
  <inceptionYear>2004</inceptionYear>
  <ciManagement>
    <system>jenkins</system>
    <url>http://${ci.host}</url>
  </ciManagement>
  <issueManagement>
    <system>JIRA</system>
    <url>http://${jira.hostname}</url>
  </issueManagement>
  <developers>
    <developer>
      <id>jcaddel</id>
      <name>Jeff Caddel</name>
      <email>jcaddel@kuali.org</email>
      <organization>rSmart</organization>
      <timezone>-7</timezone>
    </developer>
  </developers>
  <properties>
    <jira.hostname>jira.kuali.org</jira.hostname>

    <ci.host>ci.fn.kuali.org</ci.host>
    <jenkins.hostname>${ci.host}</jenkins.hostname>

    <maven.resources.escapeString>\</maven.resources.escapeString>
    <maven.min.version>3.0.4</maven.min.version>

    <kuali.encoding>UTF-8</kuali.encoding>
    <project.build.sourceEncoding>${kuali.encoding}</project.build.sourceEncoding>

    <!-- "Extra" project properties -->
    <project.encoding>${kuali.encoding}</project.encoding>
    <project.orgId>${kuali.groupId}</project.orgId>
    <project.orgId.path>org/kuali</project.orgId.path>
    <project.orgId.code>kuali</project.orgId.code>
    <project.metainf.includes>project.*</project.metainf.includes>
    <project.metainf.excludes>project.basedir,project.build.*,project.issueManagement.*,project.ciManagement.*,project.*.home,project.metainf.*,project.gav.*</project.metainf.excludes>
    <project.metainf.skip>false</project.metainf.skip>
    <project.metainf.phase>generate-resources</project.metainf.phase>

    <!-- Mimic Maven's handling of system properties and environment variables in Spring -->
    <kuali.properties.global>BOTH</kuali.properties.global>
    <kuali.properties.missing>INFORM</kuali.properties.missing>

    <!-- Declared as properties so they can be shared between the compiler and javadoc plugins -->
    <kuali.compile.source>1.6</kuali.compile.source>
    <kuali.compile.target>1.6</kuali.compile.target>

    <!-- Don't create -tests.jar for POM's and other modules that don't actually have test code -->
    <kuali.testjar.skipIfEmpty>true</kuali.testjar.skipIfEmpty>
    <!-- This profile provides quality control for official Kuali artifacts (GPG signature, attached sources, javadocs etc.) -->
    <kuali.release.profiles>kuali-release</kuali.release.profiles>
    <!-- This is "false" because their profile forks the maven process when attaching sources, we want "jar-no-fork" -->
    <kuali.release.use.maven.profile>false</kuali.release.use.maven.profile>
    <kuali.release.goals>deploy site-deploy</kuali.release.goals>
    <kuali.release.prepare.goals>clean verify</kuali.release.prepare.goals>

    <!--
      The GPG passphrase is used by the GPG plugin during a release.
      The reason for the .encrypted suffix comes from Maven's property resolution logic.
      It appears that Maven locks down plugin configuration values globally based on the default
      values in it's internal properties object. If an existing property value is UPDATED by something other
      than the <properties> tag inside a Maven pom, plugins do not see the change.
      However, if a new property is ADDED by something else, the plugins pick it up.
      Thus, the properties-maven-plugin detects encrypted property values by suffix, strips the suffix,
      and creates new properties containing the decrypted values.
    -->
    <kuali.gpg.passphrase.encrypted>ENC(2rRGp7BREsY4QxTwlTSX3NRdtqZTP5fR)</kuali.gpg.passphrase.encrypted>
    <kuali.svn.prefix>svn</kuali.svn.prefix>
    <kuali.svn.depth>empty</kuali.svn.depth>
    <kuali.svn.verbose>false</kuali.svn.verbose>
    <!-- This is used in the licenses section as well as the jar/war plugins -->
    <kuali.ecl.license.url>http://maven.kuali.org/external/org/opensource/ecl/2.0/ecl-2.0.txt</kuali.ecl.license.url>

    <!-- Identifier for the Kuali organization -->
    <kuali.groupId>org.kuali</kuali.groupId>

    <kuali.pom.1>org.kuali.pom:kuali-pom</kuali.pom.1>
    <kuali.pom.2>org.kuali.pom:kuali-common</kuali.pom.2>
    <kuali.pom.3>org.kuali.pom:kuali-maven</kuali.pom.3>
    <kuali.site.bucket>site.origin.kuali.org</kuali.site.bucket>
    <kuali.site.hostname>site.kuali.org</kuali.site.hostname>
    <kuali.site.server.id>kuali.site</kuali.site.server.id>
    <kuali.site.descriptor.phase>package</kuali.site.descriptor.phase>
    <!--
      Setting this to true causes Maven to try and contact any url's listed for every dependency in the project(s).
      Typically, quite a few of these urls are out of date, which makes the request eventually time out. This causes basic
      report generation to take a very long time
    -->
    <dependency.locations.enabled>false</dependency.locations.enabled>
    <dependency.details.enabled>false</dependency.details.enabled>
    <!-- These are the Kuali repository settings for an official release -->
    <kuali.repo.release.id>kuali.release</kuali.repo.release.id>
    <kuali.repo.release.name>Kuali Release Repository</kuali.repo.release.name>
    <kuali.repo.release.url>s3://maven.kuali.org/release</kuali.repo.release.url>
    <!-- These are the Kuali repository settings for snapshot builds -->
    <kuali.repo.snapshot.id>kuali.snapshot</kuali.repo.snapshot.id>
    <kuali.repo.snapshot.name>Kuali Snapshot Repository</kuali.repo.snapshot.name>
    <kuali.repo.snapshot.url>s3://maven.kuali.org/snapshot</kuali.repo.snapshot.url>
    <kuali-cm.version>1.2.6</kuali-cm.version>
    <kuali-ec2.version>1.0.5</kuali-ec2.version>
    <!-- Properties for controlling repo settings -->
    <kuali.releases>true</kuali.releases>
    <kuali.snapshots>true</kuali.snapshots>
    <kuali.repo>http://nexus.kuali.org/content/groups/public</kuali.repo>
    <kuali.repo.releases>${kuali.releases}</kuali.repo.releases>
    <kuali.repo.snapshots>${kuali.snapshots}</kuali.repo.snapshots>
    <kuali.plugin.releases>${kuali.releases}</kuali.plugin.releases>
    <kuali.plugin.snapshots>${kuali.snapshots}</kuali.plugin.snapshots>
    <kuali.testjar.phase>package</kuali.testjar.phase>
    <kuali.gpg.phase>install</kuali.gpg.phase>
    <kuali.cloudfront.phase>site-deploy</kuali.cloudfront.phase>

    <!-- If true, the site gets built using /latest/ in the url -->
    <kuali.site.latest>false</kuali.site.latest>
    <kuali.site.latestToken>latest</kuali.site.latestToken>

    <ksite.phase>pre-site</ksite.phase>
    <ksite.publishBase>s3://${kuali.site.bucket}</ksite.publishBase>
    <ksite.publicBase>http://${kuali.site.hostname}</ksite.publicBase>
    <ksite.downloadBase>http://shrub.appspot.com/maven.kuali.org</ksite.downloadBase>
    <!-- Used by both the surefire plugin and the sonar plugin -->
    <surefire.reportsDirectory>${project.build.directory}/surefire-reports</surefire.reportsDirectory>
    <!-- Used by both the "scm" and "updatescm" profiles -->
    <kuali.scm.url>${svn.repository}/${svn.path}</kuali.scm.url>
    <!-- Wagon versions -->
    <wagon.s3.version>1.1.18</wagon.s3.version>
    <!-- Plugin versions (ordered alphabetically) -->
    <plugin.ant.version>1.0.10</plugin.ant.version>
    <plugin.antrun.version>1.7</plugin.antrun.version>
    <plugin.assembly.version>2.4</plugin.assembly.version>
    <plugin.bom.version>1.0.3</plugin.bom.version>
    <plugin.build-helper.version>1.7</plugin.build-helper.version>
    <plugin.buildnumber.version>1.2</plugin.buildnumber.version>
    <plugin.changes.version>2.9</plugin.changes.version>
    <plugin.clean.version>2.5</plugin.clean.version>
    <plugin.cloudfront.version>1.1.5</plugin.cloudfront.version>
    <plugin.compiler.version>3.0</plugin.compiler.version>
    <plugin.crypto.version>1.0.0</plugin.crypto.version>
    <plugin.dependency.version>2.6</plugin.dependency.version>
    <plugin.deploy.version>2.7</plugin.deploy.version>
    <plugin.dnsme.version>1.0.5</plugin.dnsme.version>
    <plugin.enforcer.version>1.2</plugin.enforcer.version>
    <plugin.externals.version>1.0.8</plugin.externals.version>
    <plugin.extractor.version>1.1.10</plugin.extractor.version>
    <plugin.failsafe.version>${plugin.surefire.version}</plugin.failsafe.version>
    <plugin.gpg.version>1.4</plugin.gpg.version>
    <plugin.http.version>1.0.5</plugin.http.version>
    <plugin.impex.version>1.1.12</plugin.impex.version>
    <plugin.install.version>2.4</plugin.install.version>
    <plugin.jar.version>2.4</plugin.jar.version>
    <plugin.javadoc.version>2.9</plugin.javadoc.version>
    <plugin.jenkins.version>1.2.3</plugin.jenkins.version>
    <plugin.klicense.version>1.6.3</plugin.klicense.version>
    <plugin.ksite.version>1.1.3</plugin.ksite.version>
    <plugin.license.version>1.9.0</plugin.license.version>
    <plugin.metainf.version>2.0.2</plugin.metainf.version>
    <plugin.nexus.version>2.1</plugin.nexus.version>
    <plugin.project-info-reports.version>2.6</plugin.project-info-reports.version>
    <plugin.properties.version>2.0.1</plugin.properties.version>
    <plugin.release.version>2.4</plugin.release.version>
    <plugin.resources.version>2.6</plugin.resources.version>
    <plugin.scm.version>1.8.1</plugin.scm.version>

    <!-- 3.0 fixes MSITE-532 but has MSITE-600. As of 3.2 this is still an issue -->
    <plugin.site.version>3.0-beta-3</plugin.site.version>

    <plugin.sonar.version>2.0</plugin.sonar.version>
    <plugin.source.version>2.2.1</plugin.source.version>
    <plugin.spring.version>2.0.6</plugin.spring.version>
    <plugin.sql.version>1.0.15</plugin.sql.version>
    <plugin.surefire.version>2.14</plugin.surefire.version>
    <plugin.svn-revision-number.version>1.13</plugin.svn-revision-number.version>

    <!-- Version 2.0 throws an NPE for "mvn versions:set -DnewVersion=x.y.z -N" -->
    <plugin.versions.version>1.3.1</plugin.versions.version>

    <plugin.war.version>2.3</plugin.war.version>
  </properties>
  <prerequisites>
    <maven>${maven.min.version}</maven>
  </prerequisites>
  <repositories>
    <repository>
      <id>kuali.nexus</id>
      <name>Nexus Repository Manager</name>
      <url>${kuali.repo}</url>
      <releases>
        <enabled>${kuali.repo.releases}</enabled>
      </releases>
      <snapshots>
        <enabled>${kuali.repo.snapshots}</enabled>
      </snapshots>
    </repository>
  </repositories>
  <pluginRepositories>
    <pluginRepository>
      <id>kuali.nexus</id>
      <name>Nexus Repository Manager</name>
      <url>${kuali.repo}</url>
      <releases>
        <enabled>${kuali.plugin.releases}</enabled>
      </releases>
      <snapshots>
        <enabled>${kuali.plugin.snapshots}</enabled>
      </snapshots>
    </pluginRepository>
  </pluginRepositories>
  <url>http://${kuali.site.hostname}/pom/${project.artifactId}/${project.version}</url>
  <distributionManagement>
    <downloadUrl>${kuali.site.download.url}</downloadUrl>
    <site>
      <id>${kuali.site.server.id}</id>
      <name>Kuali Maven Site</name>
      <url>${kuali.site.publish.url}</url>
    </site>
    <repository>
      <id>${kuali.repo.release.id}</id>
      <name>${kuali.repo.release.name}</name>
      <url>${kuali.repo.release.url}</url>
    </repository>
    <snapshotRepository>
      <id>${kuali.repo.snapshot.id}</id>
      <name>${kuali.repo.snapshot.name}</name>
      <url>${kuali.repo.snapshot.url}</url>
    </snapshotRepository>
  </distributionManagement>
  <scm>
    <connection>scm:svn:https://svn.kuali.org/repos/foundation/tags/kuali-pom-2.3.9</connection>
    <developerConnection>scm:svn:https://svn.kuali.org/repos/foundation/tags/kuali-pom-2.3.9</developerConnection>
    <url>https://svn.kuali.org/repos/foundation/tags/kuali-pom-2.3.9</url>
  </scm>
  <build>
    <extensions>
      <extension>
        <groupId>org.kuali.maven.wagons</groupId>
        <artifactId>maven-s3-wagon</artifactId>
        <version>${wagon.s3.version}</version>
      </extension>
    </extensions>
    <pluginManagement>
      <plugins>
        <!-- set versions of common plugins for reproducibility, ordered alphabetically -->
        <plugin>
          <groupId>org.kuali.maven.plugins</groupId>
          <artifactId>ant-maven-plugin</artifactId>
          <version>${plugin.ant.version}</version>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>build-helper-maven-plugin</artifactId>
          <version>${plugin.build-helper.version}</version>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>buildnumber-maven-plugin</artifactId>
          <version>${plugin.buildnumber.version}</version>
        </plugin>
        <plugin>
          <artifactId>maven-antrun-plugin</artifactId>
          <version>${plugin.antrun.version}</version>
        </plugin>
        <plugin>
          <artifactId>maven-assembly-plugin</artifactId>
          <version>${plugin.assembly.version}</version>
        </plugin>
        <plugin>
          <artifactId>maven-clean-plugin</artifactId>
          <version>${plugin.clean.version}</version>
        </plugin>
        <plugin>
          <artifactId>maven-changes-plugin</artifactId>
          <version>${plugin.changes.version}</version>
        </plugin>
        <plugin>
          <groupId>org.kuali.maven.plugins</groupId>
          <artifactId>maven-cloudfront-plugin</artifactId>
          <version>${plugin.cloudfront.version}</version>
          <configuration>
            <organizationGroupId>${kuali.groupId}</organizationGroupId>
            <forceMojoExecution>true</forceMojoExecution>
            <bucket>${kuali.site.bucket}</bucket>
            <serverId>${kuali.site.server.id}</serverId>
            <orgPomGavs>
              <param>${kuali.pom.1}</param>
              <param>${kuali.pom.2}</param>
              <param>${kuali.pom.3}</param>
            </orgPomGavs>
            <latest>${kuali.site.latest}</latest>
            <latestToken>${kuali.site.latestToken}</latestToken>
          </configuration>
        </plugin>
        <plugin>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>${plugin.compiler.version}</version>
          <configuration>
            <source>${kuali.compile.source}</source>
            <target>${kuali.compile.target}</target>
            <encoding>${project.build.sourceEncoding}</encoding>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.kuali.maven.plugins</groupId>
          <artifactId>crypto-maven-plugin</artifactId>
          <version>${plugin.crypto.version}</version>
          <configuration>
            <password>${kuali.enc.password}</password>
          </configuration>
        </plugin>
        <plugin>
          <artifactId>maven-dependency-plugin</artifactId>
          <version>${plugin.dependency.version}</version>
        </plugin>
        <plugin>
          <artifactId>maven-deploy-plugin</artifactId>
          <version>${plugin.deploy.version}</version>
        </plugin>
        <plugin>
          <artifactId>maven-enforcer-plugin</artifactId>
          <version>${plugin.enforcer.version}</version>
        </plugin>
        <plugin>
          <groupId>org.kuali.maven.plugins</groupId>
          <artifactId>externals-maven-plugin</artifactId>
          <version>${plugin.externals.version}</version>
        </plugin>
        <plugin>
          <groupId>org.kuali.maven.plugins</groupId>
          <artifactId>extractor-maven-plugin</artifactId>
          <version>${plugin.extractor.version}</version>
        </plugin>
        <plugin>
          <artifactId>maven-failsafe-plugin</artifactId>
          <version>${plugin.failsafe.version}</version>
        </plugin>
        <plugin>
          <artifactId>maven-gpg-plugin</artifactId>
          <version>${plugin.gpg.version}</version>
        </plugin>
        <plugin>
          <groupId>org.kuali.maven.plugins</groupId>
          <artifactId>maven-impex-plugin</artifactId>
          <version>${plugin.impex.version}</version>
        </plugin>
        <plugin>
          <artifactId>maven-install-plugin</artifactId>
          <version>${plugin.install.version}</version>
        </plugin>
        <plugin>
          <artifactId>maven-jar-plugin</artifactId>
          <version>${plugin.jar.version}</version>
          <configuration>
            <archive>
              <manifestEntries>
                <Bundle-Version>${project.version}</Bundle-Version>
                <Bundle-Name>${project.name}</Bundle-Name>
                <Bundle-License>${kuali.ecl.license.url}</Bundle-License>
                <Bundle-Vendor>${project.organization.name}</Bundle-Vendor>
                <Bundle-DocURL>${project.organization.url}</Bundle-DocURL>
                <Bundle-Timestamp>${maven.build.timestamp}</Bundle-Timestamp>
                <Bundle-SymbolicName>${project.groupId}.${project.artifactId}</Bundle-SymbolicName>
                <Bundle-BuildNumber>${env.BUILD_NUMBER}</Bundle-BuildNumber>
                <SVN-Repository>${svn.repository}</SVN-Repository>
                <SVN-Path>${svn.path}</SVN-Path>
                <SVN-Revision>${svn.revision}</SVN-Revision>
                <SVN-URL>${svn.repository}/${svn.path}</SVN-URL>
                <Maven-Version>${maven.version}</Maven-Version>
              </manifestEntries>
              <manifest>
                <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
                <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
              </manifest>
            </archive>
          </configuration>
        </plugin>
        <plugin>
          <artifactId>maven-javadoc-plugin</artifactId>
          <version>${plugin.javadoc.version}</version>
          <configuration>
            <encoding>${project.build.sourceEncoding}</encoding>
            <source>${kuali.compile.source}</source>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.kuali.maven.plugins</groupId>
          <artifactId>jenkins-maven-plugin</artifactId>
          <version>${plugin.jenkins.version}</version>
        </plugin>
        <plugin>
          <groupId>org.kuali.maven.plugins</groupId>
          <artifactId>maven-ksite-plugin</artifactId>
          <version>${plugin.ksite.version}</version>
          <configuration>
            <organizationGroupId>${kuali.groupId}</organizationGroupId>
            <downloadExternalPath>external</downloadExternalPath>
            <downloadReleasePath>release</downloadReleasePath>
            <downloadSnapshotPath>snapshot</downloadSnapshotPath>
            <downloadBase>${ksite.downloadBase}</downloadBase>
            <publishBase>${ksite.publishBase}</publishBase>
            <publicBase>${ksite.publicBase}</publicBase>
            <snapshotSnippet>SNAPSHOT</snapshotSnippet>
            <orgPomGavs>
              <param>${kuali.pom.1}</param>
              <param>${kuali.pom.2}</param>
              <param>${kuali.pom.3}</param>
            </orgPomGavs>
            <latest>${kuali.site.latest}</latest>
            <latestToken>${kuali.site.latestToken}</latestToken>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.kuali.maven.plugins</groupId>
          <artifactId>license-maven-plugin</artifactId>
          <version>${plugin.klicense.version}</version>
          <configuration>
            <artifactLicenseMapping>classpath:org/kuali/common/cm/license/THIRD-PARTY.properties</artifactLicenseMapping>
            <useMissingFile>true</useMissingFile>
            <groupByLicense>true</groupByLicense>
            <deployMissingFile>false</deployMissingFile>
            <licenseMerges>
              <licenseMerge>Apache Software License - Version 2.0|Apache License V2.0|Apache Public License 2.0|Apache License 2.0|ASF 2.0|Apache License Version 2.0|Apache 2|Apache 2.0|Apache License|Apache License Version 2.0|Apache License, Version 2.0|The Apache Software License, Version 2.0|provided without support or warranty</licenseMerge>
              <licenseMerge>BSD License|BSD|BSD style|BSD-style License|The BSD License|BSD-style license</licenseMerge>
              <licenseMerge>Common Public License - Version 1.0|CPL|Common Public License Version 1.0</licenseMerge>
              <licenseMerge>Eclipse Public License - Version 1.0|Eclipse Public License - v 1.0|Eclipse Public License v1.0|Eclipse Public License, Version 1.0</licenseMerge>
              <licenseMerge>CDDL - Version 1.0|CDDL|CDDL 1.0|CDDL License|COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0|Common Development and Distribution License (CDDL) v1.0</licenseMerge>
              <licenseMerge>CDDL - Version 1.1 / GNU General Public License - Version 2|CDDL v1.1 / GPL v2 dual license|CDDL + GPLv2 with classpath exception</licenseMerge>
              <licenseMerge>Educational Community License - Version 2.0|Educational Community License, Version 2.0</licenseMerge>
              <licenseMerge>GNU Lesser General Public License|GNU LESSER GENERAL PUBLIC LICENSE|lgpl|license.txt|GNU General Public Library|GNU Lesser General Public Licence|LGPL</licenseMerge>
              <licenseMerge>GNU Lesser General Public License - Version 2.1|GNU Lesser General Public License Version 2.1|LGPL 2.1|LGPL, version 2.1</licenseMerge>
              <licenseMerge>GNU Lesser General Public License - Version 3|GNU Lesser General Public License v3.0|GNU Lesser General Public License - Version 3.0</licenseMerge>
              <licenseMerge>GNU General Public License - Version 2|The GNU General Public License, Version 2</licenseMerge>
              <licenseMerge>Mozilla Public License - Version 1.1|Mozilla Public License version 1.1|MPL 1.1</licenseMerge>
              <licenseMerge>MIT License|The MIT License</licenseMerge>
              <licenseMerge>GNU General Public License - Version 2 / CPE|GPL2 w/ CPE|GPLv2+CE</licenseMerge>
              <licenseMerge>Public Domain|Public domain, Sun Microsoystems</licenseMerge>
            </licenseMerges>
          </configuration>
          <dependencies>
            <dependency>
              <groupId>org.kuali.common</groupId>
              <artifactId>kuali-cm</artifactId>
              <version>${kuali-cm.version}</version>
            </dependency>
          </dependencies>
        </plugin>
        <plugin>
          <groupId>com.mycila.maven-license-plugin</groupId>
          <artifactId>maven-license-plugin</artifactId>
          <version>${plugin.license.version}</version>
        </plugin>
        <plugin>
          <groupId>org.kuali.maven.plugins</groupId>
          <artifactId>metainf-maven-plugin</artifactId>
          <version>${plugin.metainf.version}</version>
        </plugin>
        <plugin>
          <artifactId>maven-project-info-reports-plugin</artifactId>
          <version>${plugin.project-info-reports.version}</version>
        </plugin>
        <plugin>
          <artifactId>maven-release-plugin</artifactId>
          <version>${plugin.release.version}</version>
          <configuration>
            <arguments>${kuali.release.arguments}</arguments>
            <releaseProfiles>${kuali.release.profiles}</releaseProfiles>
            <useReleaseProfile>${kuali.release.use.maven.profile}</useReleaseProfile>
            <developmentVersion>${kuali.release.dev.version}</developmentVersion>
            <releaseVersion>${kuali.release.version}</releaseVersion>
            <username>${kuali.release.username}</username>
            <password>${kuali.release.password}</password>
            <preparationGoals>${kuali.release.prepare.goals}</preparationGoals>
            <goals>${kuali.release.goals}</goals>
          </configuration>
        </plugin>
        <plugin>
          <artifactId>maven-resources-plugin</artifactId>
          <version>${plugin.resources.version}</version>
          <configuration>
            <encoding>${project.build.sourceEncoding}</encoding>
            <escapeString>${maven.resources.escapeString}</escapeString>
          </configuration>
        </plugin>
        <plugin>
          <artifactId>maven-scm-plugin</artifactId>
          <version>${plugin.scm.version}</version>
        </plugin>
        <plugin>
          <artifactId>maven-site-plugin</artifactId>
          <version>${plugin.site.version}</version>
          <configuration>
            <reportPlugins>
              <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-project-info-reports-plugin</artifactId>
                <configuration>
                  <dependencyDetailsEnabled>${dependency.details.enabled}</dependencyDetailsEnabled>
                  <dependencyLocationsEnabled>${dependency.locations.enabled}</dependencyLocationsEnabled>
                </configuration>
              </plugin>
            </reportPlugins>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>sonar-maven-plugin</artifactId>
          <version>${plugin.sonar.version}</version>
        </plugin>
        <plugin>
          <groupId>org.kuali.maven.plugins</groupId>
          <artifactId>spring-maven-plugin</artifactId>
          <version>${plugin.spring.version}</version>
        </plugin>
        <plugin>
          <groupId>org.kuali.maven.plugins</groupId>
          <artifactId>sql-maven-plugin</artifactId>
          <version>${plugin.sql.version}</version>
        </plugin>
        <plugin>
          <artifactId>maven-source-plugin</artifactId>
          <version>${plugin.source.version}</version>
        </plugin>
        <plugin>
          <groupId>org.kuali.maven.plugins</groupId>
          <artifactId>bom-maven-plugin</artifactId>
          <version>${plugin.bom.version}</version>
        </plugin>
        <plugin>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>${plugin.surefire.version}</version>
          <configuration>
            <reportsDirectory>${project.build.directory}/surefire-reports</reportsDirectory>
          </configuration>
        </plugin>
        <plugin>
          <groupId>com.google.code.maven-svn-revision-number-plugin</groupId>
          <artifactId>svn-revision-number-maven-plugin</artifactId>
          <version>${plugin.svn-revision-number.version}</version>
          <configuration>
            <verbose>${kuali.svn.verbose}</verbose>
            <entries>
              <entry>
                <prefix>${kuali.svn.prefix}</prefix>
                <depth>${kuali.svn.depth}</depth>
              </entry>
            </entries>
          </configuration>
        </plugin>
        <plugin>
          <artifactId>maven-war-plugin</artifactId>
          <version>${plugin.war.version}</version>
          <configuration>
            <archive>
              <manifestEntries>
                <Bundle-Version>${project.version}</Bundle-Version>
                <Bundle-Name>${project.name}</Bundle-Name>
                <Bundle-License>${kuali.ecl.license.url}</Bundle-License>
                <Bundle-Vendor>${project.organization.name}</Bundle-Vendor>
                <Bundle-DocURL>${project.organization.url}</Bundle-DocURL>
                <Bundle-Timestamp>${maven.build.timestamp}</Bundle-Timestamp>
                <Bundle-SymbolicName>${project.groupId}.${project.artifactId}</Bundle-SymbolicName>
                <Bundle-BuildNumber>${env.BUILD_NUMBER}</Bundle-BuildNumber>
                <SVN-Revision>${svn.revision}</SVN-Revision>
                <SVN-Path>${svn.path}</SVN-Path>
                <SVN-Repository>${svn.repository}</SVN-Repository>
                <SVN-URL>${svn.repository}/${svn.path}</SVN-URL>
                <Maven-Version>${maven.version}</Maven-Version>
              </manifestEntries>
            </archive>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.sonatype.plugins</groupId>
          <artifactId>nexus-maven-plugin</artifactId>
          <version>${plugin.nexus.version}</version>
        </plugin>
        <plugin>
          <groupId>org.kuali.maven.plugins</groupId>
          <artifactId>properties-maven-plugin</artifactId>
          <version>${plugin.properties.version}</version>
          <configuration>
            <password>${kuali.enc.password}</password>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>versions-maven-plugin</artifactId>
          <version>${plugin.versions.version}</version>
          <configuration>
            <generateBackupPoms>false</generateBackupPoms>
          </configuration>
        </plugin>
      </plugins>
    </pluginManagement>
    <plugins>
      <plugin>
        <groupId>org.kuali.maven.plugins</groupId>
        <artifactId>maven-ksite-plugin</artifactId>
        <executions>
          <execution>
            <id>ksite-set</id>
            <phase>${ksite.phase}</phase>
            <goals>
              <goal>set</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.kuali.maven.plugins</groupId>
        <artifactId>maven-cloudfront-plugin</artifactId>
        <executions>
          <execution>
            <id>s3</id>
            <phase>${kuali.cloudfront.phase}</phase>
            <goals>
              <goal>updateoriginbucket</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
  <profiles>
    <!-- Step 1: mvn clean install -DskipTests -->
    <!-- Step 2: mvn initialize sonar:sonar -Psonar -->
    <profile>
      <id>sonar</id>
      <properties>
        <!-- Don't fail the build if a unit test fails, just record the failure -->
        <maven.test.failure.ignore>true</maven.test.failure.ignore>
        <sonar.dynamicAnalysis>true</sonar.dynamicAnalysis>
        <sonar.core.codeCoveragePlugin>jacoco</sonar.core.codeCoveragePlugin>
        <sonar.surefire.reportsPath>${surefire.reportsDirectory}</sonar.surefire.reportsPath>
        <sonar.branch>unknown</sonar.branch>
        <sonar.host>sonar.kuali.org</sonar.host>
        <sonar.host.url>http://${sonar.host}</sonar.host.url>
        <sonar.jdbc.url>jdbc:mysql://${sonar.host}/sonar</sonar.jdbc.url>
        <sonar.jdbc.username>sonar</sonar.jdbc.username>
        <sonar.jdbc.password.encrypted>ENC(AcSSoTW9f+wXEYR4GGnrMw==)</sonar.jdbc.password.encrypted>
        <sonar.jdbc.driver>com.mysql.jdbc.Driver</sonar.jdbc.driver>
      </properties>
      <build>
        <pluginManagement>
          <plugins>
            <plugin>
              <groupId>org.kuali.maven.plugins</groupId>
              <artifactId>extractor-maven-plugin</artifactId>
              <executions>
                <execution>
                  <id>extract</id>
                  <phase>initialize</phase>
                  <goals>
                    <goal>extract</goal>
                  </goals>
                  <configuration>
                    <svnBranchProperty>sonar.branch</svnBranchProperty>
                  </configuration>
                </execution>
              </executions>
            </plugin>
            <plugin>
              <groupId>org.kuali.maven.plugins</groupId>
              <artifactId>properties-maven-plugin</artifactId>
              <executions>
                <execution>
                  <id>decrypt</id>
                  <phase>initialize</phase>
                  <goals>
                    <goal>decryptall</goal>
                  </goals>
                  <configuration>
                    <quiet>true</quiet>
                  </configuration>
                </execution>
              </executions>
            </plugin>
            <plugin>
              <groupId>org.codehaus.mojo</groupId>
              <artifactId>sonar-maven-plugin</artifactId>
              <configuration>
                <sonarHostURL>${sonar.host.url}</sonarHostURL>
              </configuration>
            </plugin>
          </plugins>
        </pluginManagement>
        <plugins>
          <plugin>
            <groupId>org.kuali.maven.plugins</groupId>
            <artifactId>extractor-maven-plugin</artifactId>
          </plugin>
          <plugin>
            <groupId>org.kuali.maven.plugins</groupId>
            <artifactId>properties-maven-plugin</artifactId>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>license</id>
      <properties>
        <license.timestamp.phase>initialize</license.timestamp.phase>
        <license.bom.phase>initialize</license.bom.phase>
        <license.timestamp.format>yyyy</license.timestamp.format>
        <license.format.phase>process-sources</license.format.phase>
        <license.check.phase>verify</license.check.phase>
        <license.status.phase>verify</license.status.phase>
        <license.commit.phase>install</license.commit.phase>
        <license.header>org/kuali/common/cm/license/ecl-2.0-header.txt</license.header>
        <license.strictCheck>true</license.strictCheck>
      </properties>
      <build>
        <pluginManagement>
          <plugins>
            <plugin>
              <groupId>com.mycila.maven-license-plugin</groupId>
              <artifactId>maven-license-plugin</artifactId>
              <configuration>
                <encoding>${project.build.sourceEncoding}</encoding>
                <strictCheck>${license.strictCheck}</strictCheck>
                <header>${license.header}</header>
                <properties>
                  <license.copyrightStartYear>${project.inceptionYear}</license.copyrightStartYear>
                  <license.copyrightCurrentYear>${license.current.year}</license.copyrightCurrentYear>
                </properties>
              </configuration>
              <dependencies>
                <dependency>
                  <groupId>org.kuali.common</groupId>
                  <artifactId>kuali-cm</artifactId>
                  <version>${kuali-cm.version}</version>
                </dependency>
              </dependencies>
            </plugin>
            <plugin>
              <artifactId>maven-scm-plugin</artifactId>
              <configuration>
                <basedir>${project.basedir}</basedir>
                <message>Automated license header update</message>
              </configuration>
            </plugin>
          </plugins>
        </pluginManagement>
        <plugins>
          <plugin>
            <groupId>org.kuali.maven.plugins</groupId>
            <artifactId>bom-maven-plugin</artifactId>
            <executions>
              <execution>
                <id>detect-boms</id>
                <phase>${license.bom.phase}</phase>
                <goals>
                  <goal>strip</goal>
                </goals>
                <configuration>
                  <strip>false</strip>
                  <failBuild>true</failBuild>
                </configuration>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>buildnumber-maven-plugin</artifactId>
            <executions>
              <execution>
                <id>year</id>
                <phase>${license.timestamp.phase}</phase>
                <goals>
                  <goal>create-timestamp</goal>
                </goals>
                <configuration>
                  <timestampFormat>${license.timestamp.format}</timestampFormat>
                  <timestampPropertyName>license.current.year</timestampPropertyName>
                </configuration>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>com.mycila.maven-license-plugin</groupId>
            <artifactId>maven-license-plugin</artifactId>
            <executions>
              <execution>
                <id>update-license-header</id>
                <phase>${license.format.phase}</phase>
                <goals>
                  <goal>format</goal>
                </goals>
              </execution>
              <execution>
                <id>update-pom-headers</id>
                <phase>${license.format.phase}</phase>
                <goals>
                  <goal>format</goal>
                </goals>
                <configuration>
                  <includes>
                    <include>**/pom.xml</include>
                  </includes>
                  <useDefaultExcludes>false</useDefaultExcludes>
                  <excludes>
                    <exclude>**/target/**</exclude>
                  </excludes>
                </configuration>
              </execution>
              <execution>
                <id>verify-license-header</id>
                <phase>${license.check.phase}</phase>
                <goals>
                  <goal>check</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <artifactId>maven-scm-plugin</artifactId>
            <executions>
              <execution>
                <id>license-header-status</id>
                <phase>${license.status.phase}</phase>
                <goals>
                  <goal>status</goal>
                </goals>
              </execution>
              <execution>
                <id>commit-license-header</id>
                <phase>${license.commit.phase}</phase>
                <goals>
                  <goal>checkin</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>sonatype-oss-release</id>
      <properties>
        <kuali.nexus.sonatype.url>https://oss.sonatype.org</kuali.nexus.sonatype.url>
        <kuali.nexus.sonatype.description>Releasing ${project.artifactId} version ${project.version}</kuali.nexus.sonatype.description>
        <kuali.nexus.sonatype.phase>deploy</kuali.nexus.sonatype.phase>
        <kuali.nexus.sonatype.automatic>true</kuali.nexus.sonatype.automatic>
        <kuali.nexus.sonatype.promote.auto.select.override>true</kuali.nexus.sonatype.promote.auto.select.override>
        <kuali.nexus.sonatype.release.repository.id>releases</kuali.nexus.sonatype.release.repository.id>
        <kuali.repo.release.id>sonatype-nexus-staging</kuali.repo.release.id>
        <kuali.repo.release.name>Sonatype Nexus Release Repository</kuali.repo.release.name>
        <kuali.repo.release.url>${kuali.nexus.sonatype.url}/service/local/staging/deploy/maven2</kuali.repo.release.url>
        <!-- These are for reference only. Not currently publishing snapshots to Sonatype's Nexus instance
          <kuali.repo.snapshot.id>sonatype-nexus-snapshots</kuali.repo.snapshot.id>
          <kuali.repo.snapshot.name>Sonatype Nexus Snapshots</kuali.repo.snapshot.name>
          <kuali.repo.snapshot.url>https://oss.sonatype.org/content/repositories/snapshots/</kuali.repo.snapshot.url>
        -->
      </properties>
      <build>
        <plugins>
          <plugin>
            <groupId>org.sonatype.plugins</groupId>
            <artifactId>nexus-maven-plugin</artifactId>
            <configuration>
              <nexusUrl>${kuali.nexus.sonatype.url}</nexusUrl>
              <serverAuthId>${kuali.repo.release.id}</serverAuthId>
              <automatic>${kuali.nexus.sonatype.automatic}</automatic>
              <promoteAutoSelectOverride>${kuali.nexus.sonatype.promote.auto.select.override}</promoteAutoSelectOverride>
              <description>${kuali.nexus.sonatype.description}</description>
              <targetRepositoryId>${kuali.nexus.sonatype.release.repository.id}</targetRepositoryId>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>scm</id>
      <build>
        <plugins>
          <plugin>
            <groupId>com.google.code.maven-svn-revision-number-plugin</groupId>
            <artifactId>svn-revision-number-maven-plugin</artifactId>
            <executions>
              <execution>
                <id>svn</id>
                <goals>
                  <goal>revision</goal>
                </goals>
                <phase>validate</phase>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.kuali.maven.plugins</groupId>
            <artifactId>extractor-maven-plugin</artifactId>
            <executions>
              <execution>
                <id>scm</id>
                <goals>
                  <goal>validatescm</goal>
                </goals>
                <phase>validate</phase>
                <configuration>
                  <scmUrlProperty>kuali.scm.url</scmUrlProperty>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>updatescm</id>
      <build>
        <plugins>
          <plugin>
            <groupId>com.google.code.maven-svn-revision-number-plugin</groupId>
            <artifactId>svn-revision-number-maven-plugin</artifactId>
            <executions>
              <execution>
                <id>svn</id>
                <goals>
                  <goal>revision</goal>
                </goals>
                <phase>initialize</phase>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.kuali.maven.plugins</groupId>
            <artifactId>extractor-maven-plugin</artifactId>
            <executions>
              <execution>
                <id>scm</id>
                <goals>
                  <goal>updatescm</goal>
                </goals>
                <phase>process-resources</phase>
                <configuration>
                  <scmUrlProperty>kuali.scm.url</scmUrlProperty>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>kuali-release</id>
      <properties>
        <license.phase>generate-resources</license.phase>
        <decrypt.phase>initialize</decrypt.phase>
      </properties>
      <build>
        <plugins>
          <!-- Decrypts the gpg password -->
          <plugin>
            <groupId>org.kuali.maven.plugins</groupId>
            <artifactId>properties-maven-plugin</artifactId>
            <executions>
              <execution>
                <id>decrypt</id>
                <goals>
                  <goal>decryptall</goal>
                </goals>
                <phase>${decrypt.phase}</phase>
                <configuration>
                  <quiet>true</quiet>
                  <password>${kuali.enc.password}</password>
                </configuration>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>build-helper-maven-plugin</artifactId>
            <executions>
              <execution>
                <id>metadata</id>
                <goals>
                  <goal>maven-version</goal>
                  <goal>parse-version</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.kuali.maven.plugins</groupId>
            <artifactId>license-maven-plugin</artifactId>
            <executions>
              <execution>
                <id>licenses</id>
                <goals>
                  <goal>add-third-party</goal>
                </goals>
                <phase>${license.phase}</phase>
                <configuration>
                  <thirdPartyFilename>META-INF/THIRD-PARTY.txt</thirdPartyFilename>
                </configuration>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <artifactId>maven-deploy-plugin</artifactId>
            <configuration>
              <updateReleaseInfo>true</updateReleaseInfo>
            </configuration>
          </plugin>
          <plugin>
            <artifactId>maven-gpg-plugin</artifactId>
            <executions>
              <execution>
                <id>gpg</id>
                <phase>${kuali.gpg.phase}</phase>
                <goals>
                  <goal>sign</goal>
                </goals>
                <configuration>
                  <passphrase>${kuali.gpg.passphrase}</passphrase>
                </configuration>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <artifactId>maven-javadoc-plugin</artifactId>
            <executions>
              <execution>
                <id>javadoc</id>
                <goals>
                  <goal>jar</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <artifactId>maven-site-plugin</artifactId>
            <executions>
              <execution>
                <id>descriptor</id>
                <phase>${kuali.site.descriptor.phase}</phase>
                <goals>
                  <goal>attach-descriptor</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <artifactId>maven-jar-plugin</artifactId>
            <executions>
              <execution>
                <id>testjar</id>
                <phase>${kuali.testjar.phase}</phase>
                <goals>
                  <goal>test-jar</goal>
                </goals>
                <configuration>
                  <skipIfEmpty>${kuali.testjar.skipIfEmpty}</skipIfEmpty>
                </configuration>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <artifactId>maven-source-plugin</artifactId>
            <executions>
              <execution>
                <id>sources</id>
                <goals>
                  <goal>jar-no-fork</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>com.google.code.maven-svn-revision-number-plugin</groupId>
            <artifactId>svn-revision-number-maven-plugin</artifactId>
            <executions>
              <execution>
                <id>svn</id>
                <goals>
                  <goal>revision</goal>
                </goals>
                <phase>validate</phase>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <!-- Version the POM's based on ${project.version} + the Jenkins build number -->
      <id>buildnumber</id>
      <properties>
        <original.version>${project.version}</original.version>
        <kuali.build.version>${original.version.trimmed}-build-${env.BUILD_NUMBER}</kuali.build.version>
      </properties>
      <build>
        <plugins>
          <plugin>
            <groupId>org.kuali.maven.plugins</groupId>
            <artifactId>properties-maven-plugin</artifactId>
            <executions>
              <execution>
                <id>parse</id>
                <phase>initialize</phase>
                <goals>
                  <goal>parse-version-properties</goal>
                </goals>
                <configuration>
                  <properties>
                    <param>original.version</param>
                  </properties>
                </configuration>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>versions-maven-plugin</artifactId>
            <executions>
              <execution>
                <id>version</id>
                <phase>initialize</phase>
                <goals>
                  <goal>set</goal>
                </goals>
                <configuration>
                  <generateBackupPoms>false</generateBackupPoms>
                  <newVersion>${kuali.build.version}</newVersion>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <!-- Version the POM's based on ${project.version} + the SVN revision number -->
      <id>revision</id>
      <properties>
        <kuali.build.version>${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}-r${svn.revision}</kuali.build.version>
      </properties>
      <build>
        <plugins>
          <plugin>
            <groupId>com.google.code.maven-svn-revision-number-plugin</groupId>
            <artifactId>svn-revision-number-maven-plugin</artifactId>
            <executions>
              <execution>
                <id>svn</id>
                <phase>initialize</phase>
                <goals>
                  <goal>revision</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>build-helper-maven-plugin</artifactId>
            <executions>
              <execution>
                <id>parse-version</id>
                <phase>initialize</phase>
                <goals>
                  <goal>parse-version</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>versions-maven-plugin</artifactId>
            <executions>
              <execution>
                <id>set-version</id>
                <phase>initialize</phase>
                <goals>
                  <goal>set</goal>
                </goals>
                <configuration>
                  <generateBackupPoms>false</generateBackupPoms>
                  <newVersion>${kuali.build.version}</newVersion>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <!-- Create a build for internal use at Kuali -->
      <id>builds</id>
      <properties>
        <kuali.repo.release.url>s3://maven.kuali.org/builds</kuali.repo.release.url>
        <kuali.gpg.phase>none</kuali.gpg.phase>
        <kuali.site.descriptor.phase>none</kuali.site.descriptor.phase>
        <maven.javadoc.skip>true</maven.javadoc.skip>
        <skipTests>true</skipTests>
      </properties>
    </profile>
    <profile>
      <!-- Format and commit Maven poms -->
      <id>formatpoms</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.kuali.maven.plugins</groupId>
            <artifactId>externals-maven-plugin</artifactId>
            <configuration>
              <commitMessage>Automated POM formatting</commitMessage>
            </configuration>
            <executions>
              <execution>
                <id>format</id>
                <phase>initialize</phase>
                <goals>
                  <goal>formatpoms</goal>
                </goals>
              </execution>
              <execution>
                <id>commit</id>
                <phase>process-resources</phase>
                <goals>
                  <goal>commit</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <!-- Tag today's source tree -->
      <id>nightlytag</id>
      <properties>
        <kuali.nightly.tag>builds/${project.artifactId}-${version.major}.${version.minor}/${version.trimmed}/${kuali.build.day}-r${svn.revision}</kuali.nightly.tag>
        <version>${project.version}</version>
        <nightly.version>${version.trimmed}-r${svn.revision}</nightly.version>
        <svn.from>${extractor.scmUrl}@${svn.revision}</svn.from>
        <svn.to>${extractor.svnTagBase}/${kuali.nightly.tag}</svn.to>
        <svn.copy.message>Automated nightly build tag</svn.copy.message>
        <svn.commit.message>Set version to ${nightly.version}</svn.commit.message>
        <mvn.binary>${maven.home}/bin/mvn</mvn.binary>
      </properties>
      <build>
        <plugins>
          <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>buildnumber-maven-plugin</artifactId>
            <executions>
              <execution>
                <id>day</id>
                <phase>validate</phase>
                <goals>
                  <goal>create-timestamp</goal>
                </goals>
                <configuration>
                  <timestampFormat>yyyyMMdd</timestampFormat>
                  <timestampPropertyName>kuali.build.day</timestampPropertyName>
                </configuration>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.kuali.maven.plugins</groupId>
            <artifactId>extractor-maven-plugin</artifactId>
            <executions>
              <execution>
                <id>extract</id>
                <phase>validate</phase>
                <goals>
                  <goal>extract</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.kuali.maven.plugins</groupId>
            <artifactId>properties-maven-plugin</artifactId>
            <executions>
              <execution>
                <id>parse</id>
                <phase>validate</phase>
                <goals>
                  <goal>parse-version-properties</goal>
                </goals>
                <configuration>
                  <properties>
                    <param>version</param>
                  </properties>
                </configuration>
              </execution>
              <execution>
                <id>write</id>
                <phase>initialize</phase>
                <goals>
                  <goal>write-project-properties</goal>
                </goals>
                <configuration>
                  <outputFile>${project.build.directory}/properties/nightlytag.properties</outputFile>
                  <resolvePlaceholders>true</resolvePlaceholders>
                  <outputStyle>ENVIRONMENT_VARIABLE</outputStyle>
                  <prefix>NT</prefix>
                  <includeEnvironmentVariables>true</includeEnvironmentVariables>
                  <includeSystemProperties>true</includeSystemProperties>
                </configuration>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>com.google.code.maven-svn-revision-number-plugin</groupId>
            <artifactId>svn-revision-number-maven-plugin</artifactId>
            <executions>
              <execution>
                <id>svn</id>
                <goals>
                  <goal>revision</goal>
                </goals>
                <phase>validate</phase>
              </execution>
            </executions>
          </plugin>
          <!-- After http://jira.codehaus.org/browse/SCM-487 is fixed, switch back to using the maven-scm-plugin instead of the maven-antrun-plugin for creating the tag -->
          <plugin>
            <artifactId>maven-antrun-plugin</artifactId>
            <executions>
              <execution>
                <id>tag</id>
                <phase>initialize</phase>
                <goals>
                  <goal>run</goal>
                </goals>
                <configuration>
                  <target>
                    <echo>svn copy ${svn.from} ${svn.to} --parents -m '${svn.copy.message}'</echo>
                    <exec executable="svn" failonerror="true">
                      <arg value="copy" />
                      <arg value="${svn.from}" />
                      <arg value="${svn.to}" />
                      <arg value="--parents" />
                      <arg value="-m" />
                      <arg value="${svn.copy.message}" />
                    </exec>
                    <echo>svn checkout ${svn.to} ${project.build.directory}/checkout</echo>
                    <exec executable="svn" failonerror="true">
                      <arg value="checkout" />
                      <arg value="${svn.to}" />
                      <arg value="${project.build.directory}/checkout" />
                    </exec>
                    <echo>cd ${project.build.directory}/checkout</echo>
                    <echo>${mvn.binary} versions:set -DnewVersion=${nightly.version} -N</echo>
                    <exec dir="${project.build.directory}/checkout" executable="${mvn.binary}" failonerror="true">
                      <arg value="versions:set" />
                      <arg value="-DnewVersion=${nightly.version}" />
                      <arg value="-N" />
                    </exec>
                    <echo>${mvn.binary} process-resources -Pupdatescm -N</echo>
                    <exec dir="${project.build.directory}/checkout" executable="${mvn.binary}" failonerror="true">
                      <arg value="process-resources" />
                      <arg value="-Pupdatescm" />
                      <arg value="-N" />
                    </exec>
                    <echo>svn commit -m "${svn.commit.message}"</echo>
                    <exec dir="${project.build.directory}/checkout" executable="svn" failonerror="true">
                      <arg value="commit" />
                      <arg value="-m" />
                      <arg value="${svn.commit.message}" />
                    </exec>
                  </target>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>
</project>
