<?xml version="1.0" encoding="UTF-8"?>
<!--
  Copyright (c) 2012, 2020 Eclipse Foundation and others.
  All rights reserved. This program and the accompanying materials
  are made available under the terms of the Eclipse Distribution License v1.0
  which accompanies this distribution, and is available at
  http://www.eclipse.org/org/documents/edl-v10.php
 
  Contributors:
    Thanh Ha (Eclipse Foundation) - initial implementation
    Mickael Istria (Red Hat Inc.) - 425796 intermediary pom for factorization
-->

<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.webtools.jsdt</groupId>
    <artifactId>docs</artifactId>
    <version>3.6.0-SNAPSHOT</version>
  </parent>

  <groupId>org.eclipse.webtools.jsdt.docs</groupId>
  <artifactId>org.eclipse.wst.jsdt.doc</artifactId>
  <version>2.0.300-SNAPSHOT</version>
  <packaging>eclipse-plugin</packaging>
  <!--  generate java doc -->
   <profiles>
    <profile>
      <id>build-docs</id>
      <activation>
        <property>
          <!-- skip the java doc build by setting skipjavadocbuild to any value. -->
          <name>!skipjavadocbuild</name>
        </property>
      </activation>
      <build>
        <plugins>
          <plugin>
            <groupId>org.eclipse.tycho.extras</groupId>
            <artifactId>tycho-eclipserun-plugin</artifactId>
            <version>${tycho-extras.version}</version>
            <executions>
              <execution>
                <id>build_java_doc</id>
                <phase>compile</phase>
                <configuration>
                  <useJDK>BREE</useJDK>
                  <skip>false</skip>
                  <!-- call buildDoc.xml -->
                  <!-- TODO switch to new parameter when we've moved up to Tycho 1.0, as appArgLine is deprecated 
                  <applicationsArgs>
                    <args>-consolelog</args>
                    <args>-debug</args>
                    <args>-application</args>
                    <args>org.eclipse.ant.core.antRunner</args>
                    <args>-quiet</args>
                    <args>-buildfile</args>
                    <args>buildDoc.xml</applicationsArgs>
                  -->
                  <appArgLine>-consolelog -debug -application org.eclipse.ant.core.antRunner -quiet -buildfile buildDoc.xml</appArgLine>
                  <dependencies>
                    <!-- list of bundles that we need -->
                    <dependency>
                      <artifactId>org.eclipse.osgi.compatibility.state</artifactId>
                      <type>eclipse-plugin</type>
                    </dependency>
                    <dependency>
                      <artifactId>org.eclipse.ant.core</artifactId>
                      <type>eclipse-plugin</type>
                    </dependency>
                    <dependency>
                      <artifactId>org.apache.ant</artifactId>
                      <type>eclipse-plugin</type>
                    </dependency>
                    <dependency>
                      <artifactId>org.eclipse.help.base</artifactId>
                      <type>eclipse-plugin</type>
                    </dependency>
                    <dependency>
                      <artifactId>org.eclipse.pde.build</artifactId>
                      <type>eclipse-plugin</type>
                    </dependency>
                    <dependency>
                      <artifactId>org.eclipse.pde.core</artifactId>
                      <type>eclipse-plugin</type>
                    </dependency>
                    <dependency>
                      <artifactId>org.eclipse.update.configurator</artifactId>
                      <type>eclipse-plugin</type>
                    </dependency>
                  </dependencies>
                  <project>${project}</project>
                  <repositories>
                    <repository>
                      <id>eclipse</id>
                      <layout>p2</layout>
                      <url>${platform-repo.url}</url>
                    </repository>
                  </repositories>
                </configuration>
                <goals>
                  <goal>eclipse-run</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>
</project>
