<?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/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <parent>
    <groupId>io.vertx</groupId>
    <artifactId>vertx-parent</artifactId>
    <version>14</version>
  </parent>

  <artifactId>vertx-codetrans</artifactId>
  <version>3.6.2</version>

  <name>Vert.x code translator</name>

  <properties>
    <stack.version>3.6.2</stack.version>
    <tools.jar>${java.home}/../lib/tools.jar</tools.jar>
    <kotlin.version>1.3.0</kotlin.version>
  </properties>

  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>io.vertx</groupId>
        <artifactId>vertx-dependencies</artifactId>
        <version>${stack.version}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
    </dependencies>
  </dependencyManagement>

  <dependencies>

    <dependency>
      <groupId>io.vertx</groupId>
      <artifactId>vertx-core</artifactId>
    </dependency>
    <dependency>
      <groupId>io.vertx</groupId>
      <artifactId>vertx-codegen</artifactId>
    </dependency>
    <dependency>
      <groupId>org.codehaus.groovy</groupId>
      <artifactId>groovy-all</artifactId>
      <version>2.4.7</version>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>org.jruby</groupId>
      <artifactId>jruby-core</artifactId>
      <version>9.2.4.0</version>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>org.jruby</groupId>
      <artifactId>jruby-stdlib</artifactId>
      <version>9.2.4.0</version>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>org.scala-lang</groupId>
      <artifactId>scala-library</artifactId>
      <version>2.12.0</version>
      <optional>true</optional>
    </dependency>

    <dependency>
      <groupId>org.jetbrains.kotlin</groupId>
      <artifactId>kotlin-stdlib</artifactId>
      <version>${kotlin.version}</version>
    </dependency>

    <dependency>
      <groupId>com.sun</groupId>
      <artifactId>tools</artifactId>
      <version>1.8</version>
      <scope>system</scope>
      <systemPath>${tools.jar}</systemPath>
      <optional>true</optional>
    </dependency>


    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
      <scope>test</scope>
    </dependency>

  </dependencies>

  <build>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-compiler-plugin</artifactId>
          <executions>
            <execution>
              <id>default-compile</id>
              <configuration>
                <compilerArgument>-proc:none</compilerArgument>
              </configuration>
            </execution>
            <execution>
              <id>default-testCompile</id>
              <configuration>
                <annotationProcessors>
                  <annotationProcessor>io.vertx.codetrans.CodeTransProcessor</annotationProcessor>
                </annotationProcessors>
                <compilerArgs>
                  <arg>-Acodetrans.output=${project.basedir}/src/test/generated</arg>
                  <arg>-Acodetrans.config=${project.basedir}/src/test/resources/config.json</arg>
                  <arg>-Acodetrans.render=test</arg>
                  <arg>-Acodetrans.langs=js,ruby,groovy,kotlin,scala</arg>
                </compilerArgs>
<!--
                <testIncludes>
                  <testInclude>io/vertx/**</testInclude>
                </testIncludes>
-->
              </configuration>
            </execution>
          </executions>
        </plugin>
      </plugins>
    </pluginManagement>
    <plugins>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>build-helper-maven-plugin</artifactId>
        <version>1.12</version>
        <executions>
          <execution>
            <id>add-test-source</id>
            <phase>generate-test-sources</phase>
            <goals>
              <goal>add-test-source</goal>
            </goals>
            <configuration>
              <sources>
                <source>${project.basedir}/src/test/resources</source>
              </sources>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <artifactId>maven-resources-plugin</artifactId>
        <executions>
          <execution>
            <id>copy-resources-1</id>
            <phase>generate-test-sources</phase>
            <goals>
              <goal>copy-resources</goal>
            </goals>
            <configuration>
              <outputDirectory>${project.basedir}/src/test/generated/scala</outputDirectory>
              <resources>
                <resource>
                  <directory>${project.basedir}/src/test/resources</directory>
                  <includes>
                    <include>io/**</include>
                  </includes>
                </resource>
                <resource>
                  <directory>${project.basedir}/src/test/java</directory>
                  <includes>
                    <include>io/**</include>
                  </includes>
                </resource>
              </resources>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>net.alchim31.maven</groupId>
        <artifactId>scala-maven-plugin</artifactId>
        <version>3.2.2</version>
        <configuration>
          <sendJavaToScalac>true</sendJavaToScalac>
          <args>
            <arg>-target:jvm-1.8</arg>
            <arg>-feature</arg>
            <arg>-deprecation</arg>
            <arg>-explaintypes</arg>
            <arg>-unchecked</arg>
            <arg>-Xlint</arg>
          </args>
        </configuration>
        <executions>
          <execution>
            <phase>test-compile</phase>
            <goals>
              <goal>compile</goal>
            </goals>
            <configuration>
              <sourceDir>${project.basedir}/src/test/generated/scala</sourceDir>
              <outputDir>${project.build.directory}/scala-classes</outputDir>
              <dependencies>
                <dependency>
                  <groupId>junit</groupId>
                  <artifactId>junit</artifactId>
                  <version>4.12</version>
                </dependency>
              </dependencies>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <artifactId>kotlin-maven-plugin</artifactId>
        <groupId>org.jetbrains.kotlin</groupId>
        <version>${kotlin.version}</version>
        <executions>
          <execution>
            <configuration>
              <jvmTarget>1.8</jvmTarget>
              <sourceDirs>
                <sourceDir>${basedir}/src/test/generated/kotlin</sourceDir>
                <sourceDir>${basedir}/src/test/java</sourceDir>
              </sourceDirs>
              <testOutput>${project.build.directory}/kotlin-classes</testOutput>
            </configuration>
            <goals>
              <goal>test-compile</goal>
            </goals>
            <phase>test-compile</phase>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
</project>
