<?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>at.molindo</groupId>
    <artifactId>helios-parent</artifactId>
    <version>0.9.13</version>
  </parent>

  <name>Helios API Documentation</name>
  <artifactId>helios-api-documentation</artifactId>
  <packaging>jar</packaging>

  <dependencies>
    <!-- depend on these to ensure they get built first -->
    <dependency>
      <groupId>at.molindo</groupId>
      <artifactId>helios-services</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>at.molindo</groupId>
      <artifactId>helios-client</artifactId>
      <version>${project.version}</version>
    </dependency>
  </dependencies>

  <profiles>
    <profile>
      <id>jacoco</id>
      <!-- The jacoco maven plugin does not calculate code coverage for multi-module projects -->
      <!-- properly, so we use an ant task instead to generate a report for all modules. -->
      <!-- https://github.com/jacoco/jacoco/pull/97 -->
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <version>2.10</version>
            <executions>
              <execution>
                <id>jacoco-dependency-ant</id>
                <goals>
                  <goal>copy</goal>
                </goals>
                <phase>process-test-resources</phase>
                <inherited>false</inherited>
                <configuration>
                  <artifactItems>
                    <artifactItem>
                      <groupId>org.jacoco</groupId>
                      <artifactId>org.jacoco.ant</artifactId>
                      <version>${jacoco.version}</version>
                    </artifactItem>
                  </artifactItems>
                  <stripVersion>true</stripVersion>
                  <outputDirectory>${project.build.directory}/jacoco</outputDirectory>
                </configuration>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-antrun-plugin</artifactId>
            <version>1.8</version>
            <executions>
              <execution>
                <id>prepare-reports</id>
                <phase>prepare-package</phase>
                <goals>
                  <goal>run</goal>
                </goals>
                <configuration>
                  <target>
                    <taskdef name="report" classname="org.jacoco.ant.ReportTask">
                      <classpath path="${project.build.directory}/jacoco/org.jacoco.ant.jar" />
                    </taskdef>
                    <echo message="Coverage report" />
                    <report>
                      <executiondata>
                        <fileset dir=".." includes="**/jacoco.exec" />
                      </executiondata>
                      <structure name="JaCoCo">
                        <group name="helios-client">
                          <classfiles>
                            <fileset dir="../helios-client/target/classes" />
                          </classfiles>
                          <sourcefiles>
                            <fileset dir="../helios-client/src" />
                          </sourcefiles>
                        </group>
                        <group name="helios-service-registration">
                          <classfiles>
                            <fileset dir="../helios-service-registration/target/classes" />
                          </classfiles>
                          <sourcefiles>
                            <fileset dir="../helios-service-registration/src" />
                          </sourcefiles>
                        </group>
                        <group name="helios-services">
                          <classfiles>
                            <fileset dir="../helios-services/target/classes" />
                          </classfiles>
                          <sourcefiles>
                            <fileset dir="../helios-services/src" />
                          </sourcefiles>
                        </group>
                        <group name="helios-testing">
                          <classfiles>
                            <fileset dir="../helios-testing/target/classes" />
                          </classfiles>
                          <sourcefiles>
                            <fileset dir="../helios-testing/src" />
                          </sourcefiles>
                        </group>
                        <group name="helios-tools">
                          <classfiles>
                            <fileset dir="../helios-tools/target/classes" />
                          </classfiles>
                          <sourcefiles>
                            <fileset dir="../helios-tools/src" />
                          </sourcefiles>
                        </group>
                      </structure>
                      <html destdir="${project.build.directory}/jacoco/report/html" footer="Code Coverage Report for Helios ${project.version}" locale="en" />
                      <csv destfile="${project.build.directory}/jacoco/report/coverage.csv" />
                      <xml destfile="${project.build.directory}/jacoco/report/coverage.xml" />
                    </report>
                  </target>
                </configuration>
              </execution>
            </executions>
            <dependencies>
              <dependency>
                <groupId>org.jacoco</groupId>
                <artifactId>org.jacoco.ant</artifactId>
                <version>${jacoco.version}</version>
              </dependency>
            </dependencies>
          </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>

  <reporting>
    <plugins>
      <plugin>
        <groupId>com.spotify.docgenerator</groupId>
        <artifactId>docgenerator-maven-plugin</artifactId>
        <version>0.0.1</version>
        <configuration>
          <jsonClassesFiles>
            <jsonClassesFile>${project.basedir}/../helios-client/target/classes/JSONClasses</jsonClassesFile>
          </jsonClassesFiles>
          <restEndpointsFiles>
            <restEndpointsFile>${project.basedir}/../helios-services/target/classes/RESTEndpoints</restEndpointsFile>
          </restEndpointsFiles>
          <jarFiles>
            <jarFile>${project.basedir}/../helios-client/target/helios-client-${project.version}.jar</jarFile>
          </jarFiles>
        </configuration>
      </plugin>
    </plugins>
  </reporting>
</project>
