<?xml version="1.0" encoding="UTF-8"?>
<!--
  Copyright 2009 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.osedu.org/licenses/ECL-2.0 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>
  <parent>
    <groupId>org.kuali</groupId>
    <artifactId>kuali</artifactId>
    <version>100</version>
  </parent>
  <groupId>org.kuali</groupId>
  <artifactId>kuali-common</artifactId>
  <version>13</version>
  <packaging>pom</packaging>
  <name>Kuali Common</name>

  <properties>
    <maven.build.timestamp.format>yyyy-MM-dd HH:mm z</maven.build.timestamp.format>
    <!-- Explicitly set build timestamp as a custom property.  The maven-resource-plugin is not filtering values correctly without this -->
    <kuali.build.timestamp>${maven.build.timestamp}</kuali.build.timestamp>

    <!-- Default Clover config -->
    <kuali.clover.generate.info.phase>pre-site</kuali.clover.generate.info.phase>
    <kuali.clover.history.dir>${user.home}/.clover/history/${project.groupId}/${project.artifactId}/${project.version}</kuali.clover.history.dir>
    <kuali.clover.license.location>${user.home}/.clover/clover.license</kuali.clover.license.location>
    <kuali.clover.history.generate>true</kuali.clover.history.generate>
    <kuali.clover.exclude.pattern.1>DO_NOT_MATCH_ANYTHING_PATTERN</kuali.clover.exclude.pattern.1>
    <kuali.clover.exclude.pattern.2>DO_NOT_MATCH_ANYTHING_PATTERN</kuali.clover.exclude.pattern.2>
    <kuali.clover.exclude.pattern.3>DO_NOT_MATCH_ANYTHING_PATTERN</kuali.clover.exclude.pattern.3>

    <!-- Default Cobertura config -->
    <kuali.cobertura.instrumentation.ignore>DO_NOT_MATCH_ANYTHING_PATTERN</kuali.cobertura.instrumentation.ignore>
    <kuali.cobertura.instrumentation.exclude>DO_NOT_MATCH_ANYTHING_PATTERN</kuali.cobertura.instrumentation.exclude>

    <!-- javadoc, jxr, pmd, and taglist plugins all have an aggregate option -->
    <kuali.reporting.aggregate>true</kuali.reporting.aggregate>

    <!-- Default JavaDoc config -->
    <kuali.javadoc.quiet>true</kuali.javadoc.quiet>
    <kuali.javadoc.show>private</kuali.javadoc.show>
    <kuali.javadoc.tool.version />
    <kuali.javadoc.linksource>true</kuali.javadoc.linksource>
    <kuali.javadoc.exclude.package.names />
    <kuali.javadoc.maxmemory>512m</kuali.javadoc.maxmemory>
    <!-- Uncomment this to troubleshoot heap issues when generating javadoc -->
    <!-- <kuali.javadoc.additional.joption>-J-XX:MaxPermSize=256m -J-verbose:gc -J-XX:+PrintGCDetails -J-XX:+PrintGCDateStamps -J-XX:+PrintHeapAtGC -J-XX:+PrintTenuringDistribution -J-Xloggc:${project.build.directory}/javadoc-heap.log</kuali.javadoc.additional.joption> -->
    <!-- Setting this to true will generate javadoc.sh in target/site/apidocs.  This allows you to see the exact javadoc command being issued during the build -->
    <kuali.javadoc.debug>false</kuali.javadoc.debug>
    <!-- These 2 should be "aggregate" and "test-aggregate", but with the latest version of the relevant tools (Maven 3.0.1, maven-site-plugin 3.0-beta-3 and 
         maven-javadoc-plugin 2.7), those 2 reports cause a heap error regardless of how large the heap is set.  I set the overall heap to 4 gb's with a MaxPermGen 
         of 512m before switching back to "javadoc" and "test-javadoc" -->
    <kuali.javadoc.report.1>javadoc</kuali.javadoc.report.1>
    <kuali.javadoc.report.2>test-javadoc</kuali.javadoc.report.2>
    <!-- Once the heap issue with aggregate and test-aggregate is worked out, set this to false -->
    <kuali.javadoc.aggregate>${kuali.reporting.aggregate}</kuali.javadoc.aggregate>

    <!-- Placeholders for javadoc link locations.  Override these in child poms as needed -->
    <kuali.javadoc.link.1>http://download.oracle.com/javase/6/docs/api/</kuali.javadoc.link.1>
    <kuali.javadoc.link.2>${kuali.javadoc.link.1}</kuali.javadoc.link.2>
    <kuali.javadoc.link.3>${kuali.javadoc.link.1}</kuali.javadoc.link.3>
    <kuali.javadoc.link.4>${kuali.javadoc.link.1}</kuali.javadoc.link.4>
    <kuali.javadoc.link.5>${kuali.javadoc.link.1}</kuali.javadoc.link.5>
    <kuali.javadoc.link.6>${kuali.javadoc.link.1}</kuali.javadoc.link.6>
    <kuali.javadoc.link.7>${kuali.javadoc.link.1}</kuali.javadoc.link.7>
    <kuali.javadoc.link.8>${kuali.javadoc.link.1}</kuali.javadoc.link.8>
    <kuali.javadoc.link.9>${kuali.javadoc.link.1}</kuali.javadoc.link.9>
    <kuali.javadoc.link.10>${kuali.javadoc.link.1}</kuali.javadoc.link.10>

    <!--  -->
    <kuali.testjar.phase>package</kuali.testjar.phase>
  </properties>
  <repositories>
    <repository>
      <id>kuali.nexus</id>
      <name>Nexus Repository Manager</name>
      <url>http://nexus.kuali.org/content/groups/public</url>
      <releases>
        <enabled>true</enabled>
      </releases>
      <snapshots>
        <enabled>true</enabled>
      </snapshots>
    </repository>
  </repositories>
  <scm>
    <connection>scm:svn:http://svn.kuali.org/repos/foundation/pom/tags/kuali-common-13</connection>
    <developerConnection>scm:svn:http://svn.kuali.org/repos/foundation/pom/tags/kuali-common-13</developerConnection>
    <url>http://svn.kuali.org/repos/foundation/pom/tags/kuali-common-13</url>
  </scm>
  <build>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>cobertura-maven-plugin</artifactId>
          <version>2.4</version>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>findbugs-maven-plugin</artifactId>
          <version>2.3.1</version>
        </plugin>
        <plugin>
          <groupId>com.atlassian.maven.plugins</groupId>
          <artifactId>maven-clover2-plugin</artifactId>
          <version>3.0.4</version>
          <configuration>
            <licenseLocation>${kuali.clover.license.location}</licenseLocation>
            <historyDir>${kuali.clover.history.dir}</historyDir>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-jxr-plugin</artifactId>
          <version>2.2</version>
          <configuration>
            <inputEncoding>${project.build.sourceEncoding}</inputEncoding>
            <aggregate>${kuali.reporting.aggregate}</aggregate>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-plugin-plugin</artifactId>
          <version>2.7</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-pmd-plugin</artifactId>
          <version>2.4</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-site-plugin</artifactId>
          <version>${kuali.site.plugin.version}</version>
          <configuration>
            <reportPlugins>
              <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-javadoc-plugin</artifactId>
                <!-- Version is included here only because it does not inherit correctly from the pluginManagement section of the parent pom -->
                <version>2.7</version>
                <configuration>
                  <excludePackageNames>${kuali.javadoc.exclude.package.names}</excludePackageNames>
                  <links>
                    <link>${kuali.javadoc.link.1}</link>
                    <link>${kuali.javadoc.link.2}</link>
                    <link>${kuali.javadoc.link.3}</link>
                    <link>${kuali.javadoc.link.4}</link>
                    <link>${kuali.javadoc.link.5}</link>
                    <link>${kuali.javadoc.link.6}</link>
                    <link>${kuali.javadoc.link.7}</link>
                    <link>${kuali.javadoc.link.8}</link>
                    <link>${kuali.javadoc.link.9}</link>
                    <link>${kuali.javadoc.link.10}</link>
                  </links>
                  <additionalJOption>${kuali.javadoc.additional.joption}</additionalJOption>
                  <maxmemory>${kuali.javadoc.maxmemory}</maxmemory>
                  <linksource>${kuali.javadoc.linksource}</linksource>
                  <javadocVersion>${kuali.javadoc.tool.version}</javadocVersion>
                  <show>${kuali.javadoc.show}</show>
                  <debug>${kuali.javadoc.debug}</debug>
                  <source>${kuali.compile.source}</source>
                  <quiet>${kuali.javadoc.quiet}</quiet>
                  <aggregate>${kuali.javadoc.aggregate}</aggregate>
                </configuration>
                <reportSets>
                  <reportSet>
                    <id>generate-javadocs</id>
                    <reports>
                      <report>${kuali.javadoc.report.1}</report>
                      <report>${kuali.javadoc.report.2}</report>
                    </reports>
                  </reportSet>
                </reportSets>
              </plugin>
              <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-project-info-reports-plugin</artifactId>
                <!-- Version is included here only because it does not inherit correctly from the pluginManagement section of the parent pom -->
                <version>2.3</version>
                <configuration>
                  <dependencyLocationsEnabled>${kuali.reporting.dependency.locations}</dependencyLocationsEnabled>
                </configuration>
              </plugin>
              <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>cobertura-maven-plugin</artifactId>
                <configuration>
                  <instrumentation>
                    <ignores>
                      <ignore>${kuali.cobertura.instrumentation.ignore}</ignore>
                    </ignores>
                    <excludes>
                      <exclude>${kuali.cobertura.instrumentation.exclude}</exclude>
                    </excludes>
                  </instrumentation>
                  <formats>
                    <format>html</format>
                  </formats>
                </configuration>
              </plugin>
              <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>findbugs-maven-plugin</artifactId>
              </plugin>
              <plugin>
                <groupId>com.atlassian.maven.plugins</groupId>
                <artifactId>maven-clover2-plugin</artifactId>
                <configuration>
                  <licenseLocation>${kuali.clover.license.location}</licenseLocation>
                  <generateHistorical>${kuali.clover.history.generate}</generateHistorical>
                  <historyDir>${kuali.clover.history.dir}</historyDir>
                </configuration>
              </plugin>
              <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jxr-plugin</artifactId>
                <configuration>
                  <inputEncoding>${project.build.sourceEncoding}</inputEncoding>
                  <aggregate>${kuali.reporting.aggregate}</aggregate>
                </configuration>
              </plugin>
              <!-- Included here as a default only until Maven 3.1 is out which will support 'mixins'.  
                   This plugin only generates output if the project is a maven plugin.  
                   For projects that are not maven plugins it does nothing. -->
              <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-plugin-plugin</artifactId>
              </plugin>
              <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-pmd-plugin</artifactId>
                <configuration>
                  <targetJdk>${kuali.compile.source}</targetJdk>
                  <aggregate>${kuali.reporting.aggregate}</aggregate>
                </configuration>
              </plugin>
              <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>taglist-maven-plugin</artifactId>
                <configuration>
                  <aggregate>${kuali.reporting.aggregate}</aggregate>
                  <tagListOptions>
                    <tagClasses>
                      <tagClass>
                        <displayName>TODO's</displayName>
                        <tags>
                          <tag>
                            <matchString>TODO</matchString>
                            <matchType>ignoreCase</matchType>
                          </tag>
                        </tags>
                      </tagClass>
                      <tagClass>
                        <displayName>FIXME's</displayName>
                        <tags>
                          <tag>
                            <matchString>FIXME</matchString>
                            <matchType>ignoreCase</matchType>
                          </tag>
                        </tags>
                      </tagClass>
                    </tagClasses>
                  </tagListOptions>
                </configuration>
              </plugin>
            </reportPlugins>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>taglist-maven-plugin</artifactId>
          <version>2.4</version>
        </plugin>
      </plugins>
    </pluginManagement>
    <plugins>
      <plugin>
        <groupId>com.atlassian.maven.plugins</groupId>
        <artifactId>maven-clover2-plugin</artifactId>
        <executions>
          <execution>
            <id>generate-clover-info</id>
            <phase>${kuali.clover.generate.info.phase}</phase>
            <goals>
              <goal>instrument</goal>
              <goal>aggregate</goal>
              <goal>save-history</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <executions>
          <execution>
            <id>test-jar</id>
            <phase>${kuali.testjar.phase}</phase>
            <goals>
              <goal>test-jar</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
</project>