<?xml version="1.0" encoding="UTF-8"?>
<!--
   Copyright (c) 2009, 2015 Mountainminds GmbH & Co. KG and Contributors
   All rights reserved. This program and the accompanying materials
   are made available under the terms of the Eclipse Public License v1.0
   which accompanies this distribution, and is available at
   http://www.eclipse.org/legal/epl-v10.html

   Contributors:
      Evgeny Mandrikov - initial API and implementation
-->
<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>org.jacoco</groupId>
    <artifactId>org.jacoco.build</artifactId>
    <version>0.7.5.201505241946</version>
    <relativePath>../org.jacoco.build</relativePath>
  </parent>

  <artifactId>org.jacoco.doc</artifactId>
  <!-- do not set packaging to pom, because otherwise we will receive "Not executing Javadoc as the project is not a Java classpath-capable package" -->

  <name>JaCoCo :: Documentation</name>
  <description>JaCoCo Documentation</description>

  <properties>
    <maven.deploy.skip>true</maven.deploy.skip>
  </properties>

  <dependencies>
    <dependency>
      <groupId>${project.groupId}</groupId>
      <artifactId>org.jacoco.core</artifactId>
    </dependency>
    <dependency>
      <groupId>${project.groupId}</groupId>
      <artifactId>org.jacoco.report</artifactId>
    </dependency>
    <dependency>
      <groupId>${project.groupId}</groupId>
      <artifactId>org.jacoco.agent</artifactId>
    </dependency>
    <dependency>
      <groupId>${project.groupId}</groupId>
      <artifactId>org.jacoco.agent.rt</artifactId>
    </dependency>
    <dependency>
      <groupId>${project.groupId}</groupId>
      <artifactId>org.jacoco.agent</artifactId>
      <version>${project.version}</version>
      <classifier>runtime</classifier>
    </dependency>
    <dependency>
      <groupId>${project.groupId}</groupId>
      <artifactId>org.jacoco.ant</artifactId>
    </dependency>
    <dependency>
      <groupId>${project.groupId}</groupId>
      <artifactId>org.jacoco.ant</artifactId>
      <classifier>nodeps</classifier>
    </dependency>
    <dependency>
      <groupId>${project.groupId}</groupId>
      <artifactId>org.jacoco.examples</artifactId>
      <version>${project.version}</version>
      <type>zip</type>
    </dependency>
  </dependencies>

  <build>
    <sourceDirectory>src</sourceDirectory>

    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-antrun-plugin</artifactId>
        <executions>
          <execution>
            <id>prepare-reports</id>
            <phase>prepare-package</phase>
            <goals>
              <goal>run</goal>
            </goals>
            <configuration>
              <target>
                <typedef resource="org/jacoco/ant/antlib.xml"/>
                <echo message="Coverage report"/>
                <report>
                  <executiondata>
                    <fileset dir="../org.jacoco.agent.test/target" includes="jacoco.exec"/>
                    <fileset dir="../org.jacoco.agent.rt.test/target" includes="jacoco.exec"/>
                    <fileset dir="../org.jacoco.ant.test/target" includes="jacoco.exec"/>
                    <fileset dir="../org.jacoco.core.test/target" includes="jacoco.exec"/>
                    <fileset dir="../org.jacoco.examples.test/target" includes="jacoco.exec"/>
                    <fileset dir="../org.jacoco.report.test/target" includes="jacoco.exec"/>
                    <fileset dir="../jacoco-maven-plugin.test/target" includes="jacoco.exec"/>
                  </executiondata>
                  <structure name="JaCoCo">
                    <group name="org.jacoco.agent">
                      <classfiles>
                        <!-- Process class files only, ignore jacocoagent.jar -->
                        <fileset dir="../org.jacoco.agent/target/classes" includes="**/*.class"/>
                      </classfiles>
                      <sourcefiles>
                        <fileset dir="../org.jacoco.agent/src"/>
                      </sourcefiles>
                    </group>
                    <group name="org.jacoco.agent.rt">
                      <classfiles>
                        <fileset dir="../org.jacoco.agent.rt/target/classes"/>
                      </classfiles>
                      <sourcefiles>
                        <fileset dir="../org.jacoco.agent.rt/src"/>
                      </sourcefiles>
                    </group>
                    <group name="org.jacoco.ant">
                      <classfiles>
                        <fileset dir="../org.jacoco.ant/target/classes"/>
                      </classfiles>
                      <sourcefiles>
                        <fileset dir="../org.jacoco.ant/src"/>
                      </sourcefiles>
                    </group>
                    <group name="org.jacoco.core">
                      <classfiles>
                        <fileset dir="../org.jacoco.core/target/classes"/>
                      </classfiles>
                      <sourcefiles>
                        <fileset dir="../org.jacoco.core/src"/>
                      </sourcefiles>
                    </group>
                    <group name="org.jacoco.examples">
                      <classfiles>
                        <fileset dir="../org.jacoco.examples/target/classes"/>
                      </classfiles>
                      <sourcefiles>
                        <fileset dir="../org.jacoco.examples/src"/>
                      </sourcefiles>
                    </group>
                    <group name="org.jacoco.report">
                      <classfiles>
                        <fileset dir="../org.jacoco.report/target/classes"/>
                      </classfiles>
                      <sourcefiles>
                        <fileset dir="../org.jacoco.report/src"/>
                      </sourcefiles>
                    </group>
                    <group name="jacoco-maven-plugin">
                      <classfiles>
                        <fileset dir="../jacoco-maven-plugin/target/classes" excludes="**/HelpMojo.class"/>
                      </classfiles>
                      <sourcefiles>
                        <fileset dir="../jacoco-maven-plugin/src"/>
                      </sourcefiles>
                    </group>
                  </structure>
                  <html destdir="${project.build.directory}/coverage"
                        footer="Code Coverage Report for JaCoCo ${project.version}"
                        locale="en"/>
                  <csv destfile="${project.build.directory}/coverage/coverage.csv"/>
                  <xml destfile="${project.build.directory}/coverage/coverage.xml"/>
                </report>

                <echo message="JUnit report"/>
                <mkdir dir="${project.build.directory}/junit"/>
                <junitreport todir="${project.build.directory}/junit">
                  <fileset dir="../org.jacoco.agent.test/target" includes="surefire-reports/**/*.xml"/>
                  <fileset dir="../org.jacoco.agent.rt.test/target" includes="surefire-reports/**/*.xml"/>
                  <fileset dir="../org.jacoco.ant.test/target" includes="surefire-reports/**/*.xml"/>
                  <fileset dir="../org.jacoco.core.test/target" includes="surefire-reports/**/*.xml"/>
                  <fileset dir="../org.jacoco.report.test/target" includes="surefire-reports/**/*.xml"/>
                  <fileset dir="../org.jacoco.examples.test/target" includes="surefire-reports/**/*.xml"/>
                  <report format="noframes" styledir="xsl" todir="${project.build.directory}/junit">
                    <param name="qualified.bundle.version" expression="${qualified.bundle.version}"/>
                    <param name="jacoco.home.url" expression="${jacoco.home.url}"/>
                    <param name="copyright.years" expression="${copyright.years}"/>
                  </report>
                </junitreport>
                <move file="${project.build.directory}/junit/junit-noframes.html" tofile="${project.build.directory}/junit/index.html"/>
              </target>
            </configuration>
          </execution>
        </executions>
        <dependencies>
          <dependency>
            <groupId>${project.groupId}</groupId>
            <artifactId>org.jacoco.ant</artifactId>
            <version>${project.version}</version>
          </dependency>
          <dependency>
            <groupId>org.apache.ant</groupId>
            <artifactId>ant-junit</artifactId>
            <version>1.8.2</version>
          </dependency>
        </dependencies>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-javadoc-plugin</artifactId>
        <executions>
          <execution>
            <id>attach-javadocs</id>
            <phase>prepare-package</phase>
            <goals>
              <goal>jar</goal>
            </goals>
            <configuration>
              <reportOutputDirectory>${project.build.directory}/apidocs</reportOutputDirectory>
              <includeDependencySources>true</includeDependencySources>
              <excludePackageNames>*.internal,org.jacoco.ant</excludePackageNames>
              <dependencySourceIncludes>
                <dependencySourceInclude>org.jacoco:*</dependencySourceInclude>
              </dependencySourceIncludes>
              <dependencySourceExcludes>
                <dependencySourceExclude>org.jacoco:*.test</dependencySourceExclude>
              </dependencySourceExcludes>
              <doctitle>JaCoCo ${qualified.bundle.version} API</doctitle>
              <windowtitle>JaCoCo ${qualified.bundle.version} API</windowtitle>
              <use>true</use>
              <version>false</version>
              <groups>
                <!-- Note: using org.jacoco.core.* for packages would omit the org.jacoco.core package but using org.jacoco* will include it. -->
                <group>
                  <title>Bundle org.jacoco.core</title>
                  <packages>org.jacoco.core*</packages>
                </group>
                <group>
                  <title>Bundle org.jacoco.report</title>
                  <packages>org.jacoco.report*</packages>
                </group>
                <group>
                  <title>Bundle org.jacoco.agent</title>
                  <packages>org.jacoco.agent*</packages>
                </group>
                <group>
                  <title>JaCoCo Runtime</title>
                  <packages>org.jacoco.agent.rt:com.vladium.emma.rt</packages>
                </group>
              </groups>
              <overview>javadoc/overview.html</overview>
              <stylesheetfile>javadoc/stylesheet.css</stylesheetfile>
            </configuration>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>xml-maven-plugin</artifactId>
        <executions>
          <execution>
            <id>default-transform</id>
            <goals>
              <goal>transform</goal>
            </goals>
            <configuration>
              <transformationSets>
                <transformationSet>
                  <dir>../jacoco-maven-plugin/target/generated-site/xdoc</dir>
                  <includes>
                    <include>*.xml</include>
                  </includes>
                  <stylesheet>xsl/maven-goal.xsl</stylesheet>
                  <fileMappers>
                    <fileMapper implementation="org.codehaus.plexus.components.io.filemappers.FileExtensionMapper">
                      <targetExtension>.html</targetExtension>
                    </fileMapper>
                  </fileMappers>
                  <parameters>
                    <parameter>
                      <name>qualified.bundle.version</name>
                      <value>${qualified.bundle.version}</value>
                    </parameter>
                    <parameter>
                      <name>jacoco.home.url</name>
                      <value>${jacoco.home.url}</value>
                    </parameter>
                    <parameter>
                      <name>copyright.years</name>
                      <value>${copyright.years}</value>
                    </parameter>
                  </parameters>
                </transformationSet>
              </transformationSets>
            </configuration>
          </execution>
          <execution>
            <id>default-validate</id>
            <goals>
              <goal>validate</goal>
            </goals>
            <configuration>
              <validationSets>
                <validationSet>
                  <dir>.</dir>
                  <includes>
                    <include>docroot/**/*.html</include>
                    <include>target/generated-resources/xml/xslt/*.html</include>
                  </includes>
                </validationSet>
              </validationSets>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
</project>
