<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>

    <!-- Project information -->
    <name>Flow Math</name>
    <groupId>com.flowpowered</groupId>
    <artifactId>flow-math</artifactId>
    <version>1.0.3</version>
    <packaging>jar</packaging>
    <inceptionYear>2013</inceptionYear>
    <url>https://flowpowered.com/math</url>
    <description>Immutable math library for Java with a focus on games and computer graphics.</description>

    <!-- Parent information -->
    <parent>
        <groupId>org.sonatype.oss</groupId>
        <artifactId>oss-parent</artifactId>
        <version>9</version>
    </parent>

    <!-- Build properties -->
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <buildNumber>0</buildNumber>
        <ciSystem>unknown</ciSystem>
        <commit>unknown</commit>
        <additionalparam>-Xdoclint:none</additionalparam>
    </properties>

    <!-- License information -->
    <licenses>
        <license>
            <name>MIT License</name>
            <url>https://tldrlegal.com/l/mit</url>
            <distribution>repo</distribution>
        </license>
    </licenses>

    <!-- Organization information -->
    <organization>
        <name>Flow Powered</name>
        <url>https://flowpowered.com</url>
    </organization>

    <!-- Project developers -->
    <developers>
        <developer>
            <id>DDoS</id>
            <name>Aleksi Sapon</name>
            <email>qctechs@gmail.com</email>
        </developer>
        <developer>
            <id>kitskub</id>
            <name>Jack Huey</name>
            <email>kitskub@gmail.com</email>
        </developer>
        <developer>
            <id>Wolf480pl</id>
            <name>Wolf480pl</name>
            <email>wolf480@interia.pl</email>
        </developer>
        <developer>
            <id>lukespragg</id>
            <name>Luke Spragg</name>
            <email>the@wulf.im</email>
        </developer>
    </developers>

    <!-- Source code access -->
    <scm>
        <connection>scm:git:git://github.com/flow/math.git</connection>
        <developerConnection>scm:git:ssh://git@github.com:flow/math.git</developerConnection>
        <url>https://github.com/flow/math</url>
    </scm>

    <!-- Continuous integration -->
    <ciManagement>
        <system>travis</system>
        <url>https://travis-ci.org/flow/math</url>
    </ciManagement>

    <!-- Issue management -->
    <issueManagement>
        <system>github</system>
        <url>https://github.com/flow/math/issues</url>
    </issueManagement>

    <!-- Project dependencies -->
    <dependencies>
        <!-- Testing only -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <!-- Build configuration -->
    <build>
        <defaultGoal>clean install</defaultGoal>

        <!-- Resources to include -->
        <resources>
            <!-- Static resources -->
            <resource>
                <filtering>false</filtering>
                <directory>.</directory>
                <targetPath>.</targetPath>
                <includes>
                    <include>LICENSE.txt</include>
                </includes>
            </resource>
        </resources>

        <!-- Build plugins -->
        <plugins>
            <!-- License header plugin -->
            <plugin>
                <groupId>com.mycila.maven-license-plugin</groupId>
                <artifactId>maven-license-plugin</artifactId>
                <version>1.10.b1</version>
                <executions>
                    <execution>
                        <configuration>
                            <properties>
                                <project>${project.name}</project>
                                <year>${project.inceptionYear}</year>
                                <name>${project.organization.name}</name>
                                <url>${project.organization.url}</url>
                            </properties>
                            <quiet>true</quiet>
                            <encoding>UTF-8</encoding>
                            <strictCheck>true</strictCheck>
                            <header>HEADER.txt</header>
                            <mapping>
                                <java>SLASHSTAR_STYLE</java>
                            </mapping>
                            <keywords>
                                <keyword>${project.name}</keyword>
                                <keyword>license</keyword>
                            </keywords>
                            <includes>
                                <include>src/main/java/**</include>
                                <include>src/test/java/**</include>
                            </includes>
                        </configuration>
                        <phase>clean</phase>
                        <goals>
                            <goal>format</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <!-- Template parsing plugin -->
            <plugin>
                <groupId>com.github.wolf480pl.maven-plugins</groupId>
                <artifactId>template-maven-plugin</artifactId>
                <version>1.0.1</version>
                <executions>
                    <execution>
                        <id>generatei</id>
                        <configuration>
                            <templateDir>src/main/template/integer</templateDir>
                            <types>
                                <type>
                                    <primitive>int</primitive>
                                    <wrapper>Integer</wrapper>
                                    <abbreviation>i</abbreviation>
                                    <max_value>Integer.MAX_VALUE</max_value>
                                    <min_value>Integer.MIN_VALUE</min_value>
                                    <placeholders>
                                        <Overload>double</Overload>
                                        <Overload1>float</Overload1>
                                        <Overload2>long</Overload2>
                                        <S>Int</S>
                                        <FloorFunc>GenericMath.floor</FloorFunc>
                                        <DecEqui>float</DecEqui>
                                    </placeholders>
                                </type>
                                <type>
                                    <primitive>long</primitive>
                                    <wrapper>Long</wrapper>
                                    <abbreviation>l</abbreviation>
                                    <max_value>Long.MAX_VALUE</max_value>
                                    <min_value>Long.MIN_VALUE</min_value>
                                    <placeholders>
                                        <Overload>double</Overload>
                                        <Overload1>float</Overload1>
                                        <Overload2>int</Overload2>
                                        <S>Long</S>
                                        <FloorFunc>GenericMath.floorl</FloorFunc>
                                        <DecEqui>double</DecEqui>
                                    </placeholders>
                                </type>
                            </types>
                        </configuration>
                        <phase>generate-sources</phase>
                        <goals>
                            <goal>generate</goal>
                        </goals>
                    </execution>
                    <execution>
                        <id>test-generatei</id>
                        <configuration>
                            <templateDir>src/test/template/integer</templateDir>
                            <types>
                                <type>
                                    <primitive>int</primitive>
                                    <wrapper>Integer</wrapper>
                                    <abbreviation>i</abbreviation>
                                    <max_value>Integer.MAX_VALUE</max_value>
                                    <min_value>Integer.MIN_VALUE</min_value>
                                    <placeholders>
                                        <Overload>long</Overload>
                                        <S>Int</S>
                                        <DecEqui>float</DecEqui>
                                        <DecEquiTest>TestUtilf</DecEquiTest>
                                    </placeholders>
                                </type>
                                <type>
                                    <primitive>long</primitive>
                                    <wrapper>Long</wrapper>
                                    <abbreviation>l</abbreviation>
                                    <max_value>Long.MAX_VALUE</max_value>
                                    <min_value>Long.MIN_VALUE</min_value>
                                    <placeholders>
                                        <Overload>int</Overload>
                                        <S>Long</S>
                                        <DecEqui>double</DecEqui>
                                        <DecEquiTest>TestUtild</DecEquiTest>
                                    </placeholders>
                                </type>
                            </types>
                        </configuration>
                        <phase>generate-test-sources</phase>
                        <goals>
                            <goal>test-generate</goal>
                        </goals>
                    </execution>
                    <execution>
                        <id>generate</id>
                        <configuration>
                            <templateDir>src/main/template/float</templateDir>
                            <types>
                                <type>
                                    <primitive>float</primitive>
                                    <wrapper>Float</wrapper>
                                    <abbreviation>f</abbreviation>
                                    <max_value>Float.POSITIVE_INFINITY</max_value>
                                    <min_value>Float.NEGATIVE_INFINITY</min_value>
                                    <placeholders>
                                        <Overload>double</Overload>
                                        <Overload1>int</Overload1>
                                        <Overload2>long</Overload2>
                                        <S>Float</S>
                                        <eps>GenericMath.FLT_EPSILON</eps>
                                    </placeholders>
                                </type>
                                <type>
                                    <primitive>double</primitive>
                                    <wrapper>Double</wrapper>
                                    <abbreviation>d</abbreviation>
                                    <max_value>Double.POSITIVE_INFINITY</max_value>
                                    <min_value>Double.NEGATIVE_INFINITY</min_value>
                                    <placeholders>
                                        <Overload>float</Overload>
                                        <Overload1>int</Overload1>
                                        <Overload2>long</Overload2>
                                        <S>Double</S>
                                        <eps>GenericMath.DBL_EPSILON</eps>
                                    </placeholders>
                                </type>
                            </types>
                        </configuration>
                        <phase>generate-sources</phase>
                        <goals>
                            <goal>generate</goal>
                        </goals>
                    </execution>
                    <execution>
                        <id>test-generate</id>
                        <configuration>
                            <templateDir>src/test/template/float</templateDir>
                            <types>
                                <type>
                                    <primitive>float</primitive>
                                    <wrapper>Float</wrapper>
                                    <abbreviation>f</abbreviation>
                                    <max_value>Float.POSITIVE_INFINITY</max_value>
                                    <min_value>Float.NEGATIVE_INFINITY</min_value>
                                    <placeholders>
                                        <Overload>double</Overload>
                                        <Overload1>int</Overload1>
                                        <Overload2>long</Overload2>
                                        <S>Float</S>
                                        <eps>GenericMath.FLT_EPSILON</eps>
                                        <teps>0.00001f</teps>
                                    </placeholders>
                                </type>
                                <type>
                                    <primitive>double</primitive>
                                    <wrapper>Double</wrapper>
                                    <abbreviation>d</abbreviation>
                                    <max_value>Double.POSITIVE_INFINITY</max_value>
                                    <min_value>Double.NEGATIVE_INFINITY</min_value>
                                    <placeholders>
                                        <Overload>float</Overload>
                                        <Overload1>int</Overload1>
                                        <Overload2>long</Overload2>
                                        <S>Double</S>
                                        <eps>GenericMath.DBL_EPSILON</eps>
                                        <teps>0.0000008</teps>
                                    </placeholders>
                                </type>
                            </types>
                        </configuration>
                        <phase>generate-test-sources</phase>
                        <goals>
                            <goal>test-generate</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <!-- Source compiler plugin -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.3</version>
                <configuration>
                    <source>1.6</source>
                    <target>1.6</target>
                    <compilerArguments>
                        <O>-Xlint:all</O>
                        <O>-Xlint:-path</O>
                    </compilerArguments>
                    <showWarnings>true</showWarnings>
                    <showDeprecation>true</showDeprecation>
                </configuration>
            </plugin>
            <!-- JAR creation plugin -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <version>2.6</version>
                <configuration>
                    <archive>
                        <manifestEntries>
                            <Specification-Title>${project.name}</Specification-Title>
                            <Specification-Version>${project.version}+${ciSystem}-b${buildNumber}.git-${commit}</Specification-Version>
                            <Specification-Vendor>${project.organization.name} - ${project.organization.url}</Specification-Vendor>
                        </manifestEntries>
                    </archive>
                </configuration>
            </plugin>
            <!-- Javadoc creation plugin -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-javadoc-plugin</artifactId>
                <version>2.10.3</version>
                <configuration>
                    <author>false</author>
                    <version>false</version>
                </configuration>
            </plugin>
            <!-- Coveralls reporting plugin  -->
            <plugin>
                <groupId>org.eluder.coveralls</groupId>
                <artifactId>coveralls-maven-plugin</artifactId>
                <version>3.1.0</version>
                <configuration>
                    <sourceDirectories>
                        <sourceDirectory>src/main/java</sourceDirectory>
                        <sourceDirectory>target/generated-sources/template</sourceDirectory>
                    </sourceDirectories>
                </configuration>
            </plugin>
            <!-- Cobertura test coverage plugin -->
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>cobertura-maven-plugin</artifactId>
                <version>2.7</version>
                <configuration>
                    <format>xml</format>
                    <maxmem>256m</maxmem>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>
