<?xml version="1.0" encoding="UTF-8"?>
<!--
  Copyright (c) 2012 Oracle. All rights reserved.
  This program and the accompanying materials are made available under the
  terms of the Eclipse Public License 2.0, which accompanies this distribution
  and is available at https://www.eclipse.org/legal/epl-2.0/.

  Contributors:
    Oracle - initial API and implementation
 -->
<project name="JPT Doc ISV Build" default="all"  basedir="." >
	<target name="init">
		<available file="${basedir}/index" property="index.present"/>
		<path location="${basedir}/../../../eclipse/plugins" id="pluginsInstallDir"/>
		<pathconvert property="base.plugins.install.dir" refid="pluginsInstallDir"/>
		<property name="java.bin" value="${java.home}/../bin" />
		<property name="optionsFile" value="jptOptions.tmp.txt" />
		<property name="sourcepathFile" value="jptSourcepath.tmp.properties" />
		<property name="classpathFile" value="jptClasspath.tmp.properties" />
		<property name="packagesFile" value="jptPackages.tmp.properties" />
		<condition property="pathSeparator" value=":">
			<os family="unix" />
		</condition>
		<condition property="pathSeparator" value=";">
			<os family="windows" />
		</condition>

		<delete file="${optionsFile}"/>
		<delete file="${sourcepathFile}"/>
		<delete file="${classpathFile}"/>
		<delete file="${packagesFile}"/>
	</target>

	<target name="getJavadocPath">
		<available file="${java.bin}/javadoc.exe" property="javadoc" value="${java.bin}/javadoc.exe"/>
		<available file="${java.bin}/javadoc" property="javadoc" value="${java.bin}/javadoc" />
	</target>

	<target name="all" depends="init" unless="index.present">
		<!-- antcall target="convertSchemaToHtml" /-->
		<antcall target="generateJavadoc" />
		<!-- antcall target="build.index" /-->
		<!-- antcall target="createDocZip" /-->
	</target>

	<!-- generateJavadoc -->
	<target name="generateJavadoc" depends="getJavadocPath" if="javadoc">
		<echo message="#### jpt.doc.isv #### - java.home = ${java.home}" />
		<echo message="base.plugins.install.dir = ${base.plugins.install.dir}" />
		<copy file="jptOptions.template" tofile="${optionsFile}" overwrite="true" />
		<copy file="jptSourcepath.template" tofile="${sourcepathFile}" overwrite="true" />
		<copy file="jptClasspath.template" tofile="${classpathFile}" overwrite="true" />
		<copy file="jptPackages.template" tofile="${packagesFile}" overwrite="true" />

        <antcall target="addBundle">
            <param name="bundleName" value="jpt.common.utility" />
        </antcall>
        <antcall target="addBundle">
            <param name="bundleName" value="jpt.common.core" />
        </antcall>
        <antcall target="addBundle">
            <param name="bundleName" value="jpt.common.ui" />
        </antcall>
        <antcall target="addBundle">
            <param name="bundleName" value="jpt.jpa.core" />
        </antcall>
        <antcall target="addBundle">
            <param name="bundleName" value="jpt.jpa.db" />
        </antcall>
        <antcall target="addBundle">
            <param name="bundleName" value="jpt.jpa.ui" />
        </antcall>
        <antcall target="addBundle">
            <param name="bundleName" value="jpt.jpa.eclipselink.core" />
        </antcall>
        <antcall target="addBundle">
            <param name="bundleName" value="jpt.jpa.eclipselink.core.ddlgen" />
        </antcall>
        <antcall target="addBundle">
            <param name="bundleName" value="jpt.jaxb.core" />
        </antcall>
        <antcall target="addBundle">
            <param name="bundleName" value="jpt.jaxb.core.schemagen" />
        </antcall>
        <antcall target="addBundle">
            <param name="bundleName" value="jpt.jaxb.ui" />
        </antcall>
        <antcall target="addBundle">
            <param name="bundleName" value="jpt.jaxb.eclipselink.core" />
        </antcall>
        <antcall target="addBundle">
            <param name="bundleName" value="jpt.jaxb.eclipselink.core.schemagen" />
        </antcall>
        <antcall target="addBundle">
            <param name="bundleName" value="jpt.dbws.eclipselink.core.gen" />
        </antcall>

        <antcall target="replaceRtToken" />
        <antcall target="replaceJptRtToken" />
        <antcall target="replaceWtpRtToken" />
        <antcall target="replaceJptSourcepathToken" />
        <antcall target="replacePackagesToken" />

		<replaceregexp file="${basedir}/${optionsFile}" flags="g" match=";" replace="${pathSeparator}" />

		<!--scrub isv plugin directories of any preexisting doc content-->
		<delete dir="index-files"/>
		<delete dir="org"/>
		<delete dir="resources"/>

		<exec dir="." executable="${javadoc}" output="jptJavadoc.log">
			<arg line="@${basedir}/${optionsFile} -J-Xmx1000M" />
		</exec>
	</target>

	<!-- replaceRtToken -->
	<target name="replaceRtToken" if="optionsFile" >
		<fileset id="jreJars" dir="${java.home}/lib">
		    <include name="*.jar" />
		</fileset>
		<pathconvert pathsep="${pathSeparator}" property="jreClasspath" refid="jreJars"/>
		<replace file="${basedir}/${optionsFile}" token="@rt@" value="${jreClasspath}" />
	</target>

	<!-- replaceWtpRtToken -->
	<target name="replaceWtpRtToken" if="optionsFile" >
		<fileset id="wtpJars" dir="${base.plugins.install.dir}">
		    <include name="*.jar" />
		</fileset>
		<pathconvert pathsep="${pathSeparator}" property="wtpClasspath" refid="wtpJars"/>
		<replace file="${basedir}/${optionsFile}" token="@wtprt@" value="${wtpClasspath}" />
	</target>

	<!-- replaceJptRtToken -->
	<target name="replaceJptRtToken" if="optionsFile" >
		<property file="${classpathFile}" />
		<replace file="${basedir}/${optionsFile}" token="@jptrt@" value="${jptClasspath}" />
	</target>

	<!-- replaceJptSourcepathToken -->
	<target name="replaceJptSourcepathToken" if="optionsFile" >
		<property file="${sourcepathFile}" />
		<replace file="${basedir}/${optionsFile}" token="@jptsourcepath@" value="${jptSourcepath}" />
	</target>

	<!-- replacePackagesToken -->
	<target name="replacePackagesToken" if="optionsFile" >
		<property file="${packagesFile}" />
		<replace file="${basedir}/${optionsFile}" token="@jptPackages@" value="${jptPackages}" />
	</target>
	
	<!-- addBundle -->
	<target name="addBundle" if="optionsFile" >
		<echo message="${bundleName}" />
		<property file="${basedir}/${bundleName}.properties" />
		<echo file="${sourcepathFile}" message="../org.eclipse.${bundleName}/src;" append="true"/>
		<echo file="${classpathFile}" message="../org.eclipse.${bundleName}/@dot;" append="true"/>
		<echo file="${packagesFile}" message="${jptPackages} " append="true"/>
	</target>

	<target name="buildJptDoc" unless="jpt.index.present">
		<ant antfile="buildDoc.xml" dir="../org.eclipse.jpt.doc.isv" />
	</target>

	<target name="build.index" description="Builds search index for the plug-in: org.eclipse.jpt.doc.isv." if="eclipse.running">
		<help.buildHelpIndex manifest="${basedir}/plugin.xml" destination="${basedir}"/>
	</target>

	<target name="createDocZip">
		<zip zipfile="${basedir}/doc.zip"
		basedir="${basedir}"
		includes="schema.css, book.css, notices.html, about.html, concepts/**, guide/**, tips/**, reference/**, tasks/**, whatsNew/**, images/**"
	/>
	</target>
</project>
