<project>
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.programming.kotlin</groupId>
    <artifactId>chapter12</artifactId>
    <version>1.0-SNAPSHOT</version>

    <packaging>pom</packaging>

    <pluginRepositories>
        <pluginRepository>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
            <id>bintray-kotlin-kotlin-dev</id>
            <name>bintray</name>
            <url>http://dl.bintray.com/kotlin/kotlin-dev</url>
        </pluginRepository>
    </pluginRepositories>

    <repositories>
        <repository>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
            <id>bintray-kotlin-kotlin-dev</id>
            <name>bintray</name>
            <url>http://dl.bintray.com/kotlin/kotlin-dev</url>
        </repository>
    </repositories>


    <modules>
        <module>hello-api</module>
        <module>hello-impl</module>
        <module>stream-api</module>
        <module>stream-impl</module>
        <module>integration-tests</module>
        <module>cassandra-config</module>
    </modules>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <version>2.10</version>
                <configuration>
                    <artifactItems>
                        <artifactItem>
                            <groupId>[ groupId ]</groupId>
                            <artifactId>[ artifactId ]</artifactId>
                            <version>[ version ]</version>
                            <type>[ packaging ]</type>
                            <classifier> [classifier - optional] </classifier>
                            <overWrite>[ true or false ]</overWrite>
                            <outputDirectory>[ output directory ]</outputDirectory>
                            <destFileName>[ filename ]</destFileName>
                        </artifactItem>
                    </artifactItems>
                    <!-- other configurations here -->
                </configuration>
            </plugin>
            <plugin>
                <artifactId>kotlin-maven-plugin</artifactId>
                <groupId>org.jetbrains.kotlin</groupId>
                <version>${kotlin.version}</version>
                <executions>
                    <execution>
                        <id>compile</id>
                        <goals>
                            <goal>compile</goal>
                        </goals>
                        <configuration>
                            <sourceDirs>
                                <sourceDir>${project.basedir}/src/main/kotlin</sourceDir>
                                <sourceDir>${project.basedir}/src/main/java</sourceDir>
                            </sourceDirs>
                        </configuration>
                    </execution>
                    <execution>
                        <id>test-compile</id>
                        <goals>
                            <goal>test-compile</goal>
                        </goals>
                        <configuration>
                            <sourceDirs>
                                <sourceDir>${project.basedir}/src/main/kotlin</sourceDir>
                                <sourceDir>${project.basedir}/src/main/java</sourceDir>
                            </sourceDirs>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <artifactId>maven-assembly-plugin</artifactId>
                <version>2.6</version>
            </plugin>
            <plugin>
                <groupId>com.lightbend.lagom</groupId>
                <artifactId>lagom-maven-plugin</artifactId>
                <version>${lagom.version}</version>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.5.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <compilerArgs>
                        <arg>-parameters</arg>
                    </compilerArgs>
                </configuration>
                <executions>
                    <execution>
                        <id>default-compile</id>
                        <phase>none</phase>
                    </execution>
                    <execution>
                        <id>default-testCompile</id>
                        <phase>none</phase>
                    </execution>
                    <execution>
                        <id>java-compile</id>
                        <phase>compile</phase>
                        <goals>
                            <goal>compile</goal>
                        </goals>
                    </execution>
                    <execution>
                        <id>java-test-compile</id>
                        <phase>test-compile</phase>
                        <goals>
                            <goal>testCompile</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>com.fasterxml.jackson.module</groupId>
                <artifactId>jackson-module-kotlin</artifactId>
                <version>2.7.8</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.jetbrains.kotlin</groupId>
                        <artifactId>kotlin-stdlib</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.jetbrains.kotlin</groupId>
                        <artifactId>kotlin-reflect</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <dependency>
                <groupId>com.lightbend.lagom</groupId>
                <artifactId>lagom-javadsl-server_2.11</artifactId>
                <version>${lagom.version}</version>
            </dependency>
            <dependency>
                <groupId>com.typesafe.play</groupId>
                <artifactId>play-netty-server_2.11</artifactId>
                <version>${play.version}</version>
            </dependency>
            <dependency>
                <groupId>com.lightbend.lagom</groupId>
                <artifactId>lagom-javadsl-api_2.11</artifactId>
                <version>${lagom.version}</version>
            </dependency>
            <dependency>
                <groupId>com.lightbend.lagom</groupId>
                <artifactId>lagom-javadsl-persistence-cassandra_2.11</artifactId>
                <version>${lagom.version}</version>
            </dependency>
            <dependency>
                <groupId>com.lightbend.lagom</groupId>
                <artifactId>lagom-logback_2.11</artifactId>
                <version>${lagom.version}</version>
            </dependency>
            <dependency>
                <groupId>com.lightbend.lagom</groupId>
                <artifactId>lagom-javadsl-testkit_2.11</artifactId>
                <version>${lagom.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>com.lightbend.lagom</groupId>
                <artifactId>lagom-javadsl-integration-client_2.11</artifactId>
                <version>${lagom.version}</version>
            </dependency>
            <dependency>
                <groupId>com.typesafe.conductr</groupId>
                <artifactId>${conductr.lib.name}</artifactId>
                <version>1.4.7</version>
            </dependency>
            <dependency>
                <groupId>org.jetbrains.kotlin</groupId>
                <artifactId>kotlin-stdlib</artifactId>
                <version>${kotlin.version}</version>
            </dependency>
            <dependency>
                <groupId>org.jetbrains.kotlin</groupId>
                <artifactId>kotlin-reflect</artifactId>
                <version>${kotlin.version}</version>
            </dependency>
            <dependency>
                <groupId>io.kotlintest</groupId>
                <artifactId>kotlintest</artifactId>
                <version>${kotlin.test.version}</version>
                <scope>test</scope>
            </dependency>

        </dependencies>
    </dependencyManagement>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

        <kotlin.version>1.1-M04</kotlin.version>
        <lagom.version>1.2.0</lagom.version>
        <play.version>2.5.4</play.version>
        <conductr.lib.name>lagom10-conductr-bundle-lib_2.11</conductr.lib.name>
    </properties>
</project>
