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

    See the NOTICE file distributed with this work for additional
    information regarding copyright ownership.

    This 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 2.1 of
    the License, or (at your option) any later version.

    This software 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 this software; if not, write to the Free
    Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
    02110-1301 USA, or see the FSF site: http://www.fsf.org.

-->
<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>
    <parent>
        <groupId>edu.toronto.cs.medsavant</groupId>
        <artifactId>medsavant-parent</artifactId>
        <version>1.2-SNAPSHOT</version>
    </parent>
    <artifactId>medsavant-shared</artifactId>
    <name>MedSavant - Shared libraries between the client and the server</name>
    <dependencies>
        <dependency>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-compress</artifactId>
            <version>1.6</version>
        </dependency>        
        <dependency>
            <groupId>commons-net</groupId>
            <artifactId>commons-net</artifactId>
            <version>3.2</version>
        </dependency>
        <dependency>
            <groupId>org.jsoup</groupId>
            <artifactId>jsoup</artifactId>
            <version>1.7.1</version>
        </dependency>
        <dependency>
            <groupId>com.healthmarketscience.common</groupId>
            <artifactId>common-util</artifactId>
            <version>1.0.4</version>
        </dependency>
        <dependency>
            <groupId>net.sf.picard</groupId>
            <artifactId>sam-jdk</artifactId>
            <version>1.61</version>
        </dependency>
        <dependency>
            <groupId>net.sf.opencsv</groupId>
            <artifactId>opencsv</artifactId>
            <version>2.3</version>
        </dependency>
        <dependency>
            <groupId>com.googlecode.json-simple</groupId>
            <artifactId>json-simple</artifactId>
            <version>1.1.1</version>
        </dependency>
        <dependency>
                <groupId>com.google.code.externalsortinginjava</groupId>
                <artifactId>externalsortinginjava</artifactId>
                <version>0.1.8</version>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <!-- API backwards compatibility check -->
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>clirr-maven-plugin</artifactId>
                <configuration>
                    <!-- We decided to not enforce compatibility between 1.1 and 1.2,
                         so any Clirr enforcement should only happen after we release 1.2.
                         Remove this setting after changing master to the next version (1.3 or 2.0 SNAPSHOT).
                    -->
                    <comparisonVersion>1.2</comparisonVersion>
                    <ignored>
                        <!-- List of specific API breakages to exclude.
                             See http://mojo.codehaus.org/clirr-maven-plugin/examples/ignored-differences.html
                        -->
                        <!-- Example settings: -->
                        <!-- Adding a method to a class (7011) or interface (7012)
                        <difference>
                            <differenceType>7011</differenceType>
                            <className>**/serverapi/LogManagerAdapter</className>
                            <method>java.util.List getAnnotationLog(java.lang.String, int, int)</method>
                        </difference>
                        -->
                        <!-- Removing a method from a class
                        <difference>
                            <differenceType>7002</differenceType>
                            <className>**/serverapi/LogManagerAdapter</className>
                            <method>java.util.List getAnnotationLog(java.lang.String, int, int)</method>
                        </difference>
                        -->
                        <!-- Change the number of arguments of a method or constructor
                        <difference>
                            <differenceType>7004</differenceType>
                            <className>**/model/SimpleVariantFile</className>
                            <method>SimpleVariantFile(int, int, java.lang.String, java.lang.String, java.lang.String)</method>
                        </difference>
                        -->
                        <!-- Change the retun type of a method
                        <difference>
                            <differenceType>7006</differenceType>
                            <className>**/serverapi/LogManagerAdapter</className>
                            <method>int getServerLogSize(java.lang.String sid)</method>
                            <from>int</from>
                            <to>long</to>
                        </difference>
                        -->
                        <!-- Allowing the addition of any method to an interface
                        <difference>
                            <differenceType>7012</differenceType>
                            <className>**/serverapi/LogManagerAdapter</className>
                            <method>**</method>
                        </difference>
                        -->

                        <!-- Add new ignores here, and remove the following ignores after each release. -->
                    </ignored>
                    <excludes>
                        <exclude>**/internal/**</exclude>
                        <exclude>**/test/**</exclude>
                        <!-- Made some changes to support Indels -->
                        <exclude>**/org/ut/biolab/medsavant/shared/format/BasicVariantColumns</exclude>
                        <exclude>**/org/ut/biolab/medsavant/shared/vcf/VariantRecord</exclude>
                        
                        <!-- Remove the following excludes after each release -->
                    </excludes>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>
