<?xml version="1.0" encoding="UTF-8"?>

<!--
   ADS - A Java package of algorithms and data structures for educational purposes.  This software was
   originally created for the book Winder & Roberts, "Developing Java Software", Wiley.

   Copyright © 1997–2011 Russel Winder

   This file is part of ADS.

   ADS is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General
   Public License as published by the Free Software Foundation, either version 3 of the License, or (at
   your option) any later version.

   ADS is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the
   implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General
   Public License for more details.

   You should have received a copy of the GNU Lesser General Public License along with ADS.  If not, see
   <http://www.gnu.org/licenses/>.

  Russel Winder can be contacted by email at:  russel@russel.org.uk
-->

<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/maven-v4_0_0.xsd"
>
  <modelVersion>4.0.0</modelVersion>
  <groupId>org.devjavasoft</groupId>
  <artifactId>ads</artifactId>
  <packaging>bundle</packaging>
  <version>3.2.0-SNAPSHOT</version>
  <name>The ADS Library</name>
  <description>
    This library contains classes demonstrating various algorithms and data structures.  It was originally
    used in the first and second editions of the book "Developing Java Software" by Russel Winder and Graham
    Roberts.  The library does not appear in the third edition, but it has been evolved and improved
    nonetheless.
  </description>
  <url>http://www.devjavasoft.org</url>
  <inceptionYear>1997</inceptionYear>
  <organization>
    <name>Russel Winder</name>
    <url>http://www.russel.org.uk</url>
  </organization>
  <licenses>
    <license>
      <name>LGPL</name>
      <url>http://www.gnu.org/licenses/lgpl.html</url>
    </license>
  </licenses>

  <prerequisites>
    <maven>3.0.0</maven>
  </prerequisites>

  <scm>
    <!-- The Bazaar branch is read only so there is no developerConnection -->
    <connection>scm:bazaar:http://www.russel.org.uk/Bazaar/ADS</connection>
    <url>http://www.russel.org.uk/Bazaar/ADS</url>
  </scm>

  <developers>
    <developer>
      <id>russel</id>
      <name>Russel Winder</name>
      <email>russel@russel.org.uk</email>
      <url>http://www.russel.org.uk</url>
      <timezone>0</timezone>
    </developer>
  </developers>

  <dependencies>
    <dependency>
      <groupId>org.testng</groupId>
      <artifactId>testng</artifactId>
      <version>6.5.1</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.felix</groupId>
      <artifactId>org.osgi.core</artifactId>
      <version>1.4.0</version>
    </dependency>
  </dependencies>

  <build>
    <defaultGoal>test</defaultGoal>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>2.3.2</version>
        <configuration>
          <source>7</source>
          <target>7</target>
          <debug>true</debug>
          <showDeprecation>true</showDeprecation>
          <encoding>utf-8</encoding>
          <compilerArguments>
            <Xlint:unchecked />
          </compilerArguments>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.felix</groupId>
        <artifactId>maven-bundle-plugin</artifactId>
        <version>2.3.5</version>
        <extensions>true</extensions>
        <configuration>
          <instructions>
            <Export-Package>org.devjavasoft.ads,org.devjavasoft.ads.*</Export-Package>
          </instructions>
        </configuration>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>2.9</version>
        <!--
            The Surefire plugin assumes that any file with name pattern *Test.java or Test*.java is a test
            class.  We have used *_Test.java for all the test classes but have some non-test classes called
            Test*.java, so we must explicitly specify the test classes, we cannot rely on the defaults.

            There are two ways of explicitly specifying the tests used by TestNG from Surefire, using
            includes or using a suite file.  Since there is also a Gradle build for this use a shared suites
            XML spec.
        -->
        <configuration>
          <forkMode>once</forkMode>
          <!--includes>
            <include>
              **/*_Test.java
            </include>
          </includes-->
          <suiteXmlFiles>
            <suiteXmlFile>config/testng/testng.xml</suiteXmlFile>
          </suiteXmlFiles>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-clean-plugin</artifactId>
        <version>2.4.1</version>
         <configuration>
          <filesets>
            <fileset>
              <!-- This directory is created by TestNG during testing. -->
              <directory>test-output</directory>
            </fileset>
            <fileset>
              <!-- Clean up all the Emacs and GEdit backup files. -->
              <directory>.</directory>
              <includes>
                <include>**/*~</include>
              </includes>
              <followSymlinks>false</followSymlinks>
            </fileset>
          </filesets>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-site-plugin</artifactId>
        <!--version>@project.version@</version-->
        <version>3.0</version>
        <configuration>
          <reportPlugins>

            <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-project-info-reports-plugin</artifactId>
              <!--version>@projectInfoReportsPluginVersion@</version-->
              <version>2.4</version>
              <!--configuration>
                <dependencyDetailsEnabled>false</dependencyDetailsEnabled>
                <dependencyLocationsEnabled>false</dependencyLocationsEnabled>
              </configuration>
              <reports>
                <report>foo</report>
                <report>toto</report>
              </reports-->
            </plugin>

            <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-javadoc-plugin</artifactId>
              <version>2.8</version>
              <configuration>
                <overview>${basedir}/overview.html</overview>
                <private>yes</private>
                <author>true</author>
                <version>true</version>
                <use>true</use>
                <locale>en_GB</locale>
                <encoding>UTF-8</encoding>
                <source>6</source>
                <windowtitle>${project.name}</windowtitle>
                <doctitle>${project.name}</doctitle>
                <header>${project.name}</header>
                <!--  Copyright symbol is &copy; or &#169; -->
                <!--  N-dash symbol is &ndash; or &#8211; -->
                <!--  Hummm... this is XML so we have to extra escaping of HTML entities. -->
                <footer>Copyright &amp;#169; 1997&amp;#8211;2011 Russel Winder.  All rights reserved.</footer>
                <charset>UTF-8</charset>
              </configuration>
            </plugin>
            <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-jxr-plugin</artifactId>
              <version>2.3</version>
            </plugin>
            <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-surefire-report-plugin</artifactId>
              <version>2.9</version>
            </plugin>
            <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-pmd-plugin</artifactId>
              <version>2.5</version>
              <configuration>
                <linkXref>true</linkXref>
                <sourceEncoding>utf-8</sourceEncoding>
                <minimumTokens>100</minimumTokens>
                <targetJdk>1.7</targetJdk>
              </configuration>
            </plugin>
            <plugin>
              <groupId>org.codehaus.mojo</groupId>
              <artifactId>taglist-maven-plugin</artifactId>
              <version>2.4</version>
            </plugin>
            <plugin>
              <groupId>org.codehaus.mojo</groupId>
              <artifactId>cobertura-maven-plugin</artifactId>
              <version>2.5.1</version>
            </plugin>
            <plugin>
              <groupId>org.codehaus.mojo</groupId>
              <artifactId>jdepend-maven-plugin</artifactId>
              <version>2.0-beta-2</version>
            </plugin>
            <plugin>
              <groupId>org.codehaus.mojo</groupId>
              <artifactId>findbugs-maven-plugin</artifactId>
              <version>2.3.2</version>
              <configuration>
                <threshold>Low</threshold>
                <effort>Max</effort>
              </configuration>
            </plugin>
            <plugin>
              <groupId>org.codehaus.mojo</groupId>
              <artifactId>rat-maven-plugin</artifactId>
              <version>1.0-alpha-3</version>
            </plugin>
          </reportPlugins>
        </configuration>
      </plugin>
    </plugins>
  </build>

</project>

