<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <modelVersion>4.0.0</modelVersion>

    <parent>
        <groupId>org.eclipse.mylyn.docs</groupId>
        <artifactId>docs.main</artifactId>
        <version>3.0.0-SNAPSHOT</version>
        <relativePath>./pom.xml</relativePath>
    </parent>

    <artifactId>docs.build</artifactId>
    <name>Mylyn Docs: Docs Build</name>
    <packaging>pom</packaging>

    <properties>
        <docs.goal>verify</docs.goal>
        <p2.repo.local>${basedir}/.local-repo</p2.repo.local>
    </properties>

    <build>
        <plugins>
            <plugin>
                <artifactId>maven-antrun-plugin</artifactId>
                <version>1.8</version>
                <dependencies>
                    <dependency>
                        <groupId>org.apache.ant</groupId>
                        <artifactId>ant-nodeps</artifactId>
                        <version>1.7.0</version>
                    </dependency>
                </dependencies>
                <executions>
                    <execution>
                        <id>update-targets</id>
                        <phase>generate-sources</phase>
                        <configuration>
                            <target>
                                <property name="target-file" value="${basedir}/docs/targets/docs.target"/>
                                <property name="target-file-template" value="${target-file}-template"/>
                                <delete file="${target-file}" failonerror="false"/>
                                <copy file="${target-file-template}" tofile="${target-file}"/>
                                <replaceregexp file="${target-file}" byline="true">
                                    <regexp pattern="MYLYN_DOCS_ROOT"/>
                                    <substitution expression="${basedir}"/>
                                </replaceregexp>
                            </target>
                        </configuration>
                        <goals>
                            <goal>run</goal>
                        </goals>
                    </execution>
                    <execution>
                        <id>remove-wikitext-from-p2-index</id>
                        <phase>generate-sources</phase>
                        <configuration>
                            <target>
                                <property name="p2-index-file" value="${p2.repo.local}/.meta/p2-artifacts.properties"/>
                                <touch file="${p2-index-file}" mkdirs="true"/>
                                <replaceregexp file="${p2-index-file}" flags="gm">
                                    <regexp pattern="^p2\.osgi\.bundle\:org\.eclipse\.mylyn\.wikitext\..*$"/>
                                    <substitution expression=""/>
                                </replaceregexp>
                                <delete includeemptydirs="true">
                                    <fileset dir="${p2.repo.local}" defaultexcludes="false">
                                       <include name="org/eclipse/mylyn/docs/**" />
                                    </fileset>
                                    <fileset dir="${p2.repo.local}" defaultexcludes="false">
                                       <include name="p2/org/eclipse/update/feature/org.eclipse.mylyn.wikitext*/**" />
                                    </fileset>
                                    <fileset dir="${p2.repo.local}" defaultexcludes="false">
                                       <include name="p2/osgi/bundle/org.eclipse.mylyn.wikitext*/**" />
                                    </fileset>
                                </delete>
                            </target>
                        </configuration>
                        <goals>
                            <goal>run</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <!--
                Maven invoker plugin is used as a way to delay Tycho target
                platform resolution, since part of the target platform is created
                as part of the build.
                -->
                <artifactId>maven-invoker-plugin</artifactId>
                <version>2.0.0</version>
                <configuration>
                    <pom>docs/pom.xml</pom>
                    <streamLogs>true</streamLogs>
                    <localRepositoryPath>.local-repo</localRepositoryPath>
                    <goals>
                        <goal>clean</goal>
                        <goal>${docs.goal}</goal>
                    </goals>
                </configuration>
                <executions>
                    <execution>
                        <id>two-part-build</id>
                        <goals>
                            <goal>install</goal><!-- install to avoid stale p2 cache with locally built artifacts -->
                            <goal>run</goal>
                            <goal>verify</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>
