<?xml version="1.0" encoding="UTF-8"?>
<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>it.tidalwave.thesefoolishthings</groupId>
        <artifactId>thesefoolishthings</artifactId>
        <version>3.1-ALPHA-2</version>
        <relativePath>../pom.xml</relativePath>
    </parent>

    <groupId>it.tidalwave.thesefoolishthings</groupId>
    <artifactId>modules</artifactId>
    <packaging>pom</packaging>
    <version>3.1-ALPHA-2</version>
    <name>TheseFoolishThings (modules)</name>

    <properties>
        <incava.version>1.1.0</incava.version>
        <joda-time.version>1.6.2</joda-time.version>
        <uuid.version>2.1.5</uuid.version>
        <tft.UmlGraphDoc.additionalParam>-views -attributes -operations -types -postfixpackage -nodefontpackagesize 6 -nodefontclasssize 8 -nodefontsize 7 -edgefontsize 7 -nodesep 0.05 -ranksep 0.1 -visibility -inferrel -hide java.*|javax.*</tft.UmlGraphDoc.additionalParam>

        <tft.javac.source>1.7</tft.javac.source> <!-- For Android compatibility -->
        <tft.javac.target>1.7</tft.javac.target>
    </properties>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>com.eaio</groupId>
                <artifactId>uuid</artifactId>
                <version>${uuid.version}</version>
            </dependency>
            <dependency>
                <groupId>joda-time</groupId>
                <artifactId>joda-time</artifactId>
                <version>${joda-time.version}</version>
            </dependency>

            <dependency>
                <groupId>org.incava</groupId>
                <artifactId>org.incava.util.diff</artifactId>
                <version>${incava.version}</version>
            </dependency>

            <!-- FIXME: used as provided dependency in some modules to work around a javadoc crash -->
            <dependency>
                <groupId>commons-logging</groupId>
                <artifactId>commons-logging</artifactId>
                <version>1.2</version>
            </dependency>

            <!-- FIXME: push to SuperPOM -->
<!--
            <dependency>
                <groupId>org.testng</groupId>
                <artifactId>testng</artifactId>
                <scope>test</scope>
                <version>${tft.testng.version}</version>
            </dependency>
            <dependency>
                <groupId>org.hamcrest</groupId>
                <artifactId>hamcrest-all</artifactId>
                <version>${tft.hamcrest-matchers.version}</version>
                <scope>test</scope>
            </dependency>
-->
        </dependencies>
    </dependencyManagement>

    <dependencies>
        <dependency>
            <groupId>com.google.code.findbugs</groupId>
            <artifactId>annotations</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>com.google.code.findbugs</groupId>
                    <artifactId>jsr305</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>net.jcip</groupId>
                    <artifactId>jcip-annotations</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <scope>provided</scope>
        </dependency>

        <!-- TEST DEPENDENCIES -->
        <dependency>
            <groupId>org.testng</groupId>
            <artifactId>testng</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.hamcrest</groupId>
            <artifactId>hamcrest-all</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.mockito</groupId>
            <artifactId>mockito-core</artifactId>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <modules>
        <module>Actors</module>
        <module>Java8Supplements</module>
        <module>MessageBus</module>
        <module>Roles</module>
        <module>SpringMessageBus</module>
        <module>SpringRoles</module>
        <module>Utilities</module>
        <module>TestUtilities</module>
        <module>examples</module>
    </modules>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <configuration>
                    <properties>
                        <property>
                            <name>listener</name>
                            <value>${tft.test.listeners}</value>
                        </property>
                    </properties>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-enforcer-plugin</artifactId>
                <executions>
                    <execution>
                        <id>enforce-banned-dependencies</id>
                        <goals>
                            <goal>enforce</goal>
                        </goals>
                        <configuration>
                            <rules>
                                <bannedDependencies>
                                    <excludes>
                                        <exclude>commons-logging:commons-logging</exclude>
                                        <exclude>org.aspectj:aspectjweaver</exclude>
                                        <exclude>com.kenai.nbpwr:org-slf4j-jdk14</exclude>
                                    </excludes>
                                </bannedDependencies>
                            </rules>
                            <fail>true</fail>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

</project>
