blob: e8fd9608482e916ac3f6d84bb6e80464eacb7cef [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
<!DOCTYPE someant [
<!ENTITY properties SYSTEM "properties.xml">
<!ENTITY replaces SYSTEM "replaces.xml">
<!ENTITY disallowed-links SYSTEM "disallowed-links.xml">
]>
<project basedir="." name="nbbuild/javadoctools" default="build-javadoc">
<import file="../default.xml"/>
<target name="build-javadoc" depends="-jdk-init,-load-build-properties,init-tasks,set-buildnumber" description="Builds Javadoc documentation for modules; on branches pass e.g. -Djavadoc.web.root=http://bits.netbeans.org/6.7/javadoc">
<resolvelist name="allmodules" path="modules.fullpath" dir="${nb_all}" list="${nb.clusters.list}" modules="${config.javadoc.all}"/>
<sortsuitemodules unsortedmodules="${modules.fullpath}" sortedmodulesproperty="modules.sorted"/>
<property name="export.interfaces" location="${netbeans.javadoc.dir}/../ModulesExportedInterfaces"/>
<property name="export.apichanges" location="${netbeans.javadoc.dir}/../APIChanges"/>
<mkdir dir="${export.interfaces}"/>
<mkdir dir="${export.apichanges}"/>
<property name="javadoc.fail.on.error" value="true"/>
<subant-junit target="javadoc" failonerror="${javadoc.fail.on.error}" report="${nb_all}/nbbuild/build/build-all-javadoc.xml">
<buildpath path="${modules.sorted}"/>
</subant-junit>
<antcall inheritall="true" inheritrefs="true" target="generate-xml"/>
<antcall inheritall="true" inheritrefs="true" target="generate-html"/>
<antcall inheritall="true" inheritrefs="true" target="check-broken-links"/>
<property name="javadoc.web.zip" location="${nb_all}/nbbuild/NetBeans-${buildnum}-javadoc-web.zip"/>
<property name="javadoc.zip" location="${nb_all}/nbbuild/NetBeans-${buildnum}-javadoc.zip"/>
<condition property="skip.javadoc.web.zip" value="true">
<equals arg1="${javadoc.web.zip}" arg2=""/>
</condition>
<antcall inheritall="true" inheritrefs="true" target="build-zip-web"/>
<antcall inheritall="true" inheritrefs="true" target="build-zip-lite"/>
</target>
<target name="build-zip-web" depends="init" unless="skip.javadoc.web.zip">
<zip destfile="${javadoc.web.zip}" update="true" duplicate="preserve" compress="true">
<zipfileset dir="${netbeans.javadoc.dir}" filemode="644" prefix="">
<include name="**/*"/>
</zipfileset>
</zip>
</target>
<target name="build-zip-lite" depends="init">
<zip destfile="${javadoc.zip}" update="true" duplicate="preserve" compress="true">
<zipfileset dir="${nb_all}/nbbuild/build/tmp" filemode="644" prefix="">
<include name="overview-summary.html"/>
</zipfileset>
<zipfileset dir="${netbeans.javadoc.dir}" filemode="644" prefix="">
<include name="**/*"/>
<exclude name="*.zip"/>
<exclude name="overview-summary.html"/>
<exclude name="tmp/**"/>
</zipfileset>
</zip>
</target>
<target name="generate-xml" depends="init">
<echo file="${export.apichanges}/header.gen">&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;changes&gt;
</echo>
<echo file="${export.apichanges}/footer.gen">
&lt;/changes&gt;
</echo>
<concat destfile="${netbeans.javadoc.dir}/apichanges.xml">
<fileset dir="${export.apichanges}" includes="header.gen"/>
<fileset dir="${export.apichanges}" includes="*" excludes="*.gen"/>
<fileset dir="${export.apichanges}" includes="footer.gen"/>
</concat>
<echo file="${export.interfaces}/header.gen">&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;apis&gt;
</echo>
<echo file="${export.interfaces}/footer.gen">
&lt;/apis&gt;
</echo>
<concat destfile="${netbeans.javadoc.dir}/modules.xml">
<fileset dir="${export.interfaces}" includes="header.gen"/>
<fileset dir="${export.interfaces}" includes="*" excludes="*.gen"/>
<fileset dir="${export.interfaces}" includes="footer.gen"/>
</concat>
<taskdef name="javadoc-index" classname="org.netbeans.nbbuild.JavadocIndex" classpath="${nbantext.jar}"/>
<javadoc-index target="${netbeans.javadoc.dir}/allclasses.xml">
<packageslist dir="${netbeans.javadoc.dir}">
<include name="**/allclasses-noframe.html"/>
</packageslist>
</javadoc-index>
<!-- we concat all xml into one big xml file alldatas.xml -->
<echo file="${export.interfaces}/header.gen">&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;alldata&gt;
</echo>
<echo file="${export.interfaces}/footer.gen">
&lt;/alldata&gt;
</echo>
<concat destfile="${netbeans.javadoc.dir}/alldatas.xml">
<fileset dir="${export.interfaces}" includes="header.gen"/>
<fileset file="${netbeans.javadoc.dir}/allclasses.xml"/>
<fileset file="${netbeans.javadoc.dir}/modules.xml"/>
<fileset file="${netbeans.javadoc.dir}/apichanges.xml"/>
<fileset dir="${export.interfaces}" includes="footer.gen"/>
<filterchain>
<linecontainsregexp negate="true">
<regexp pattern="&lt;\?xml version"/>
</linecontainsregexp>
</filterchain>
</concat>
</target>
<target name="generate-html" depends="init">
<!-- reformulate dev version from json to more human version -->
<condition property="json.uversion" value="${json.version}" else="Development Version">
<not>
<equals arg1="${json.version}" arg2="dev"/>
</not>
</condition>
<style in="${netbeans.javadoc.dir}/alldatas.xml" out="${netbeans.javadoc.dir}/usecases.html" style="export2usecases.xsl">
<param name="date" expression="${modules-javadoc-date}"/>
<param name="maturity" expression="${json.maturity}" />
<param name="version" expression="${json.uversion}" />
<param name="releaseinfo" expression="${xmlrelease}" />
</style>
<style in="${netbeans.javadoc.dir}/alldatas.xml" out="${netbeans.javadoc.dir}/apichanges.html" style="export2apichanges.xsl">
<param name="date" expression="${modules-javadoc-date}"/>
<param name="changes-since-year" expression="${previous.release.year}"/>
<param name="changes-since-day" expression="${previous.release.day}"/>
<param name="changes-since-month" expression="${previous.release.month}"/>
<param name="include-introduction" expression="true"/>
<param name="maturity" expression="${json.maturity}" />
<param name="version" expression="${json.uversion}" />
<param name="releaseinfo" expression="${xmlrelease}" />
<param name="allmodule" expression="${netbeans.javadoc.dir}/modules.xml" />
</style>
<style in="${netbeans.javadoc.dir}/alldatas.xml" out="${netbeans.javadoc.dir}/apichanges.atom" style="export2apichanges-atom.xsl">
<param name="date" expression="${atom-date}"/>
<param name="maturity" expression="${json.maturity}" />
</style>
<!-- copy some assets to apidoc root -->
<copy file="netbeans.css" tofile="${netbeans.javadoc.dir}/netbeans.css"/>
<copy file="siteresource/apache-netbeans.svg" tofile="${netbeans.javadoc.dir}/apache-netbeans.svg" overwrite="true"/>
<copy todir="${netbeans.javadoc.dir}" overwrite="true">
<fileset dir="siteresource" >
<include name="**/*.png"/>
</fileset>
</copy>
<condition property="javadoc.style.sheet.exists">
<available file="${netbeans.javadoc.dir}/org-openide-util/javadoc.css"/>
</condition>
<fail unless="javadoc.style.sheet.exists">
The org-openide-util/javadoc.css has to exist as we are referring to
it from master module Javadoc pages. If it does not anymore, update
the export*.xsl templates.
</fail>
<!--
<style in="${netbeans.javadoc.dir}/allclasses.xml" out="${netbeans.javadoc.dir}/allclasses-frame.html" style="export2allclasses.xsl"/>
<style in="${netbeans.javadoc.dir}/modules.xml" out="${netbeans.javadoc.dir}/overview-frame.html" style="export2allmodules.xsl">
<param name="date" expression="${modules-javadoc-date}"/>
</style>
-->
<style in="${netbeans.javadoc.dir}/alldatas.xml" out="${netbeans.javadoc.dir}/layers.html" style="export2layer.xsl">
<param name="date" expression="${modules-javadoc-date}"/>
<param name="maturity" expression="${json.maturity}" />
<param name="version" expression="${json.uversion}" />
<param name="releaseinfo" expression="${xmlrelease}" />
</style>
<style in="${netbeans.javadoc.dir}/alldatas.xml" out="${netbeans.javadoc.dir}/properties.html" style="export2property.xsl">
<param name="date" expression="${modules-javadoc-date}"/>
<param name="maturity" expression="${json.maturity}" />
<param name="version" expression="${json.uversion}" />
<param name="releaseinfo" expression="${xmlrelease}" />
</style>
<style in="${netbeans.javadoc.dir}/alldatas.xml" out="${netbeans.javadoc.dir}/branding.html" style="export2branding.xsl">
<param name="date" expression="${modules-javadoc-date}"/>
<param name="maturity" expression="${json.maturity}" />
<param name="version" expression="${json.uversion}" />
<param name="releaseinfo" expression="${xmlrelease}" />
</style>
<!-- at the end generate the index.html so people know where to start -->
<style in="${netbeans.javadoc.dir}/alldatas.xml" out="${netbeans.javadoc.dir}/index.html" style="export2index.xsl">
<param name="date" expression="${modules-javadoc-date}"/>
<param name="maturity" expression="${json.maturity}" />
<param name="version" expression="${json.uversion}" />
<param name="releaseinfo" expression="${xmlrelease}" />
</style>
&properties;
<replace dir="${netbeans.javadoc.dir}">
<include name="*.html"/>
<replacefilter token="@JDK@" value="${javaapidocurl}"/>
&replaces;
<replacefilter token="http://root/" value="."/>
<replacefilter token="$${javadoc.web.root}" value="."/>
</replace>
<echo message="Javadoc index has been generated to ${netbeans.javadoc.dir}/index.html"/>
</target>
<target name="check-broken-links" depends="init" unless="javadoc.skip.brokenlinks.check">
<taskdef name="checklinks" classname="org.netbeans.nbbuild.CheckLinks" classpath="${nbantext.jar}"/>
<property name="javadoc.check.forbidden.links" value="true"/>
<checklinks basedir="${netbeans.javadoc.dir}" checkexternal="${javadoc.check.external.links}" checkforbidden="${javadoc.check.forbidden.links}" checkspaces="false" report="${netbeans.javadoc.dir}/checklinks-errors.xml">
<include name="*/overview-summary.html"/>
<include name="*/apichanges.html"/>
<include name="*/architecture-summary.html"/>
<include name="*/**/package-summary.html"/>
<include name="*/**/doc-files/**/*.html"/>
<include name="*.html"/>
&disallowed-links;
</checklinks>
</target>
</project>