blob: af82135cbd2660fe89c0a3edc10917aa10bf84d7 [file] [log] [blame]
<!--
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.
-->
<!--
Commons Build: Standard XDOC Pages Generation.
$HeadURL$
$Revision$ $Date$
-->
<project name="Commons Build: Standard XDOC Pages Generation" basedir=".">
<property name="commonsMojoId" value="Commons:xdoc-generate" />
<property name="commonsMojoXdocDir" value="resources/commons-xdoc-templates" />
<property name="commonsMojoTempDir" value="target/commons-generated-xdocs" />
<property name="level" value="info" />
<!-- ========== Generate Mailing List Page ================================ -->
<target name="mail-page" description="Generate Mailing List page">
<echo level="${level}" message="----- commons:mailing-list - Parameters - START -----" />
<echo level="${level}" message="project.name : ${project.name}" />
<echo level="${level}" message="commons.componentid : ${commons.componentid}" />
<echo level="${level}" message="commons.xdoc.dir : ${commons.xdoc.dir}" />
<echo level="${level}" message="----- commons:mailing-list - Parameters - END -----" />
<echo level="info" message="*** Generating ${project.name} Mailing List Page ***" />
<!-- Create a temporary directory to load the template files into -->
<mkdir dir="${commonsMojoTempDir}"/>
<!-- Load the issue-tracking template from mojo resources to temp directory -->
<loadresource property="mailinglists-xml">
<javaresource name="${commonsMojoXdocDir}/mail-lists-template.xml"/>
</loadresource>
<echo message="${mailinglists-xml}" file="${commonsMojoTempDir}/mail-lists-template.xml" append="false" />
<!-- Copy the mail-lists template filtering to replace properties -->
<copy file="${commonsMojoTempDir}/mail-lists-template.xml" tofile="${commonsMojoTempDir}/mail-lists.xml" overwrite="true">
<filterset>
<filter token="NAME" value="${project.name}"/>
<filter token="ID" value="${commons.componentid}"/>
</filterset>
</copy>
<!-- copy to either m1 or m2 xdoc directory -->
<antcall target="copy-to-xdoc-dir">
<param name="file.name" value="mail-lists.xml"/>
</antcall>
</target>
<!-- ========== Generate Issue Tracking Page ============================== -->
<target name="jira-page" description="Generate JIRA Issue Tracking page">
<echo level="${level}" message="----- commons:jira-page - Parameters - START -----" />
<echo level="${level}" message="project.name : ${project.name}" />
<echo level="${level}" message="commons.xdoc.dir : ${commons.xdoc.dir}" />
<echo level="${level}" message="commons.jira.id : ${commons.jira.id}" />
<echo level="${level}" message="commons.jira.pid : ${commons.jira.pid}" />
<echo level="${level}" message="----- commons:jira-page - Parameters - END -----" />
<echo level="info" message="*** Generating ${project.name} Issue Tracking Page ***" />
<!-- Create a temporary directory to load the template files into -->
<mkdir dir="${commonsMojoTempDir}"/>
<!-- Load the issue-tracking template from mojo resources to temp directory -->
<loadresource property="issuetracking-xml">
<javaresource name="${commonsMojoXdocDir}/issue-tracking-template.xml"/>
</loadresource>
<echo message="${issuetracking-xml}" file="${commonsMojoTempDir}/issue-tracking-template.xml" append="false" />
<!-- Copy the issue-tracking template filtering to replace properties -->
<copy file="${commonsMojoTempDir}/issue-tracking-template.xml" tofile="${commonsMojoTempDir}/issue-tracking.xml" overwrite="true">
<filterset>
<filter token="NAME" value="${project.name}"/>
<filter token="JIRA_ID" value="${commons.jira.id}"/>
<filter token="JIRA_PID" value="${commons.jira.pid}"/>
</filterset>
</copy>
<!-- copy to either m1 or m2 xdoc directory -->
<antcall target="copy-to-xdoc-dir">
<param name="file.name" value="issue-tracking.xml"/>
</antcall>
</target>
<!-- ========== Generate Sandbox Issue Tracking Page ====================== -->
<target name="sandbox-jira-page" description="Generate Sandbox JIRA Issue Tracking page">
<echo level="${level}" message="----- commons:sandbox-jira-page - Parameters - START -----" />
<echo level="${level}" message="project.name : ${project.name}" />
<echo level="${level}" message="commons.jira.componentid: ${commons.jira.componentid}" />
<echo level="${level}" message="----- commons:sandbox-jira-page - Parameters - END -----" />
<echo level="info" message="*** Generating ${project.name} Sandbox Issue Tracking Page ***" />
<!-- Create a temporary directory to load the template files into -->
<mkdir dir="${commonsMojoTempDir}"/>
<!-- Load the issue-tracking template from mojo resources to temp directory -->
<loadresource property="sandbox-issuetracking-xml">
<javaresource name="${commonsMojoXdocDir}/sandbox-issue-tracking-template.xml"/>
</loadresource>
<echo message="${sandbox-issuetracking-xml}" file="${commonsMojoTempDir}/sandbox-issue-tracking-template.xml" append="false" />
<!-- Copy the issue-tracking template filtering to replace properties -->
<copy file="${commonsMojoTempDir}/sandbox-issue-tracking-template.xml" tofile="${commonsMojoTempDir}/issue-tracking.xml" overwrite="true">
<filterset>
<filter token="NAME" value="${project.name}"/>
<filter token="JIRA_COMPONENTID" value="${commons.jira.componentid}"/>
</filterset>
</copy>
<!-- copy to either m1 or m2 xdoc directory -->
<antcall target="copy-to-xdoc-dir">
<param name="file.name" value="issue-tracking.xml"/>
</antcall>
</target>
<!-- ========== Generate Download Page ==================================== -->
<target name="download-page" description="Generate Download page">
<echo level="${level}" message="----- commons:download-page - Parameters - START -----" />
<echo level="${level}" message="project.name : ${project.name}" />
<echo level="${level}" message="commons.componentid : ${commons.componentid}" />
<echo level="${level}" message="commons.release.version : ${commons.release.version}" />
<echo level="${level}" message="commons.release.name : ${commons.release.name}" />
<echo level="${level}" message="commons.release.desc : ${commons.release.desc}" />
<echo level="${level}" message="commons.binary.suffix : ${commons.binary.suffix}" />
<echo level="${level}" message="commons.release.subdir : ${commons.release.subdir}" />
<echo level="${level}" message="commons.release.2.version: ${commons.release.2.version}" />
<echo level="${level}" message="commons.release.2.name : ${commons.release.2.name}" />
<echo level="${level}" message="commons.release.2.desc : ${commons.release.2.desc}" />
<echo level="${level}" message="commons.release.2.binary.suffix: ${commons.release.2.binary.suffix}" />
<echo level="${level}" message="commons.release.2.subdir : ${commons.release.2.subdir}" />
<echo level="${level}" message="commons.release.3.version: ${commons.release.3.version}" />
<echo level="${level}" message="commons.release.3.name : ${commons.release.3.name}" />
<echo level="${level}" message="commons.release.3.desc : ${commons.release.3.desc}" />
<echo level="${level}" message="commons.release.3.binary.suffix: ${commons.release.3.binary.suffix}" />
<echo level="${level}" message="commons.release.3.subdir : ${commons.release.3.subdir}" />
<echo level="${level}" message="----- commons:download-page - Parameters - END -----" />
<echo level="info" message="*** Generating ${project.name} ${commons.release.version} Download Page ***" />
<!-- Create a temporary directory to load the template files into -->
<mkdir dir="${commonsMojoTempDir}"/>
<!-- Load the dowload-page template from mojo resources to temp directory -->
<antcall target="load-no-download-page-template"/>
<antcall target="load-download-page-head"/>
<antcall target="load-download-page-body-1"/>
<antcall target="load-download-page-body-2"/>
<antcall target="load-download-page-body-3"/>
<antcall target="load-download-page-foot"/>
<!-- copy to either m1 or m2 xdoc directory -->
<antcall target="copy-to-xdoc-dir">
<param name="file.name" value="download_${commons.componentid}.xml"/>
</antcall>
</target>
<target name="load-download-page-head" if="commons.release.version">
<echo level="info" message="*** loading download-page header file ***" />
<!-- Load header -->
<loadresource property="download-page-head-xml">
<javaresource name="${commonsMojoXdocDir}/download-page-head.xml"/>
<filterchain>
<replacetokens>
<token key="NAME" value="${project.name}"/>
</replacetokens>
</filterchain>
</loadresource>
<echo message="${download-page-head-xml}" file="${commonsMojoTempDir}/download_${commons.componentid}.xml" append="false" />
</target>
<target name="load-download-page-body-1" if="commons.release.version">
<echo level="info" message="*** loading download-page body(1) file***" />
<condition property="BINDIR" value="${commons.release.subdir}" else="binaries">
<isset property="commons.release.subdir"/>
</condition>
<condition property="SRCDIR" value="${commons.release.subdir}" else="source">
<isset property="commons.release.subdir"/>
</condition>
<!-- Load Body -->
<loadresource property="download-page-body-1-xml">
<javaresource name="${commonsMojoXdocDir}/download-page-body.xml"/>
<filterchain>
<replacetokens>
<token key="VERSION" value="${commons.release.version}"/>
<token key="RELDESC" value="${commons.release.desc}"/>
<token key="NAME" value="${project.name}"/>
<token key="ID" value="${commons.componentid}"/>
<token key="FINAL_NAME" value="${commons.release.name}"/>
<token key="BINARY-SUFFIX" value="${commons.binary.suffix}"/>
<token key="BINDIR" value="${BINDIR}"/>
<token key="SRCDIR" value="${SRCDIR}"/>
</replacetokens>
</filterchain>
</loadresource>
<echo message="${download-page-body-1-xml}" file="${commonsMojoTempDir}/download_${commons.componentid}.xml" append="true" />
</target>
<target name="load-download-page-body-2" if="commons.release.2.version">
<echo level="info" message="*** loading download-page body(2) file***" />
<condition property="BINDIR" value="${commons.release.2.subdir}" else="binaries">
<isset property="commons.release.2.subdir"/>
</condition>
<condition property="SRCDIR" value="${commons.release.2.subdir}" else="source">
<isset property="commons.release.2.subdir"/>
</condition>
<!-- Load Body -->
<loadresource property="download-page-body-2-xml">
<javaresource name="${commonsMojoXdocDir}/download-page-body.xml"/>
<filterchain>
<replacetokens>
<token key="VERSION" value="${commons.release.2.version}"/>
<token key="RELDESC" value="${commons.release.2.desc}"/>
<token key="NAME" value="${project.name}"/>
<token key="ID" value="${commons.componentid}"/>
<token key="FINAL_NAME" value="${commons.release.2.name}"/>
<token key="BINARY-SUFFIX" value="${commons.release.2.binary.suffix}"/>
<token key="BINDIR" value="${BINDIR}"/>
<token key="SRCDIR" value="${SRCDIR}"/>
</replacetokens>
</filterchain>
</loadresource>
<echo message="${download-page-body-2-xml}" file="${commonsMojoTempDir}/download_${commons.componentid}.xml" append="true" />
</target>
<target name="load-download-page-body-3" if="commons.release.3.version">
<echo level="info" message="*** loading download-page body(3) file***" />
<condition property="BINDIR" value="${commons.release.3.subdir}" else="binaries">
<isset property="commons.release.3.subdir"/>
</condition>
<condition property="SRCDIR" value="${commons.release.3.subdir}" else="source">
<isset property="commons.release.3.subdir"/>
</condition>
<!-- Load Body -->
<loadresource property="download-page-body-3-xml">
<javaresource name="${commonsMojoXdocDir}/download-page-body.xml"/>
<filterchain>
<replacetokens>
<token key="VERSION" value="${commons.release.3.version}"/>
<token key="RELDESC" value="${commons.release.3.desc}"/>
<token key="NAME" value="${project.name}"/>
<token key="ID" value="${commons.componentid}"/>
<token key="FINAL_NAME" value="${commons.release.3.name}"/>
<token key="BINARY-SUFFIX" value="${commons.release.3.binary.suffix}"/>
<token key="BINDIR" value="${BINDIR}"/>
<token key="SRCDIR" value="${SRCDIR}"/>
</replacetokens>
</filterchain>
</loadresource>
<echo message="${download-page-body-3-xml}" file="${commonsMojoTempDir}/download_${commons.componentid}.xml" append="true" />
</target>
<target name="load-download-page-foot" if="commons.release.version">
<echo level="info" message="*** loading download-page footer files ***" />
<!-- Load Footer -->
<loadresource property="download-page-foot-xml">
<javaresource name="${commonsMojoXdocDir}/download-page-foot.xml"/>
<filterchain>
<replacetokens>
<token key="ID" value="${commons.componentid}"/>
</replacetokens>
</filterchain>
</loadresource>
<echo message="${download-page-foot-xml}" file="${commonsMojoTempDir}/download_${commons.componentid}.xml" append="true" />
</target>
<target name="load-no-download-page-template" unless="commons.release.version">
<echo level="info" message="*** copying no-download-page-template.xml ***" />
<loadresource property="no-downloadpage-xml">
<javaresource name="${commonsMojoXdocDir}/no-download-page-template.xml"/>
</loadresource>
<echo message="${no-downloadpage-xml}" file="${commonsMojoTempDir}/download-page-template.xml" append="false" />
</target>
<target name="copy-to-xdoc-dir">
<available file="xdocs" type="dir" property="m1.xdocs.lib.present"/>
<available file="src/site/xdoc" type="dir" property="m2.xdocs.lib.present"/>
<antcall target="copy-to-m1-xdoc-dir"/>
<antcall target="copy-to-m2-xdoc-dir"/>
</target>
<target name="copy-to-m1-xdoc-dir" if="m1.xdocs.lib.present">
<echo level="info" message="*** Copying ${file.name} to m1 xdocs dir ***" />
<copy file="${commonsMojoTempDir}/${file.name}" tofile="xdocs/${file.name}" overwrite="true" filtering="true"/>
</target>
<target name="copy-to-m2-xdoc-dir" if="m2.xdocs.lib.present">
<echo level="info" message="*** Copying ${file.name} to m2 src/site/xdoc dir ***" />
<copy file="${commonsMojoTempDir}/${file.name}" tofile="src/site/xdoc/${file.name}" overwrite="true" filtering="true"/>
</target>
<!-- ========== Generate README.md file ================================ -->
<target name="readme-md" description="Generate README.md">
<echo level="${level}" message="----- commons:readme-md - Parameters - START -----" />
<echo level="${level}" message="project.name : ${project.name}" />
<echo level="${level}" message="project.artifactId : ${project.artifactId}" />
<echo level="${level}" message="project.groupId : ${project.groupId}" />
<echo level="${level}" message="commons.release.version : ${commons.release.version}" />
<echo level="${level}" message="commons.componentid : ${commons.componentid}" />
<echo level="${level}" message="----- commons:readme-md - Parameters - END -----" />
<echo level="info" message="*** Generating ${project.name} README.md ***" />
<!-- Create a temporary directory to load the template files into -->
<mkdir dir="${commonsMojoTempDir}"/>
<!-- Load the readme-md template from mojo resources to temp directory -->
<loadresource property="readme-md">
<javaresource name="${commonsMojoXdocDir}/readme-md-template.md"/>
</loadresource>
<echo message="${readme-md}" file="${commonsMojoTempDir}/readme-md-template.md" append="false" />
<!-- Without using ant-contrib: remove "-project" for multi-module artifacts -->
<loadresource property="tmp.artifactId">
<propertyresource name="project.artifactId" />
<filterchain>
<tokenfilter>
<filetokenizer/>
<replacestring from="-project" to=""/>
</tokenfilter>
</filterchain>
</loadresource>
<!-- Copy the readme-md template filtering to replace properties -->
<copy file="${commonsMojoTempDir}/readme-md-template.md" tofile="README.md" overwrite="true">
<filterset>
<filter token="NAME" value="${project.name}"/>
<filter token="ARTIFACTID" value="${project.artifactId}"/>
<filter token="ARTIFACTCOREID" value="${tmp.artifactId}"/>
<filter token="GROUPID" value="${project.groupId}"/>
<filter token="VERSION" value="${commons.release.version}"/>
<filter token="DESCRIPTION" value="${project.description}"/>
<filter token="ID" value="${commons.componentid}"/>
</filterset>
</copy>
</target>
<!-- ========== Generate CONTRIBUTING.md file ================================ -->
<target name="contributing-md" description="Generate CONTRIBUTING.md">
<echo level="${level}" message="----- commons:readme-md - Parameters - START -----" />
<echo level="${level}" message="project.name : ${project.name}" />
<echo level="${level}" message="project.artifactId : ${project.artifactId}" />
<echo level="${level}" message="commons.jira.id : ${commons.jira.id}" />
<echo level="${level}" message="commons.componentid : ${commons.componentid}" />
<echo level="${level}" message="----- commons:readme-md - Parameters - END -----" />
<echo level="info" message="*** Generating ${project.name} CONTRIBUTING.md ***" />
<!-- Create a temporary directory to load the template files into -->
<mkdir dir="${commonsMojoTempDir}"/>
<!-- Load the contributing-md template from mojo resources to temp directory -->
<loadresource property="contributing-md">
<javaresource name="${commonsMojoXdocDir}/contributing-md-template.md"/>
</loadresource>
<echo message="${contributing-md}" file="${commonsMojoTempDir}/contributing-md-template.md" append="false" />
<!-- Without using ant-contrib: remove "-project" for multi-module artifacts -->
<loadresource property="tmp.artifactId">
<propertyresource name="project.artifactId" />
<filterchain>
<tokenfilter>
<filetokenizer/>
<replacestring from="-project" to=""/>
</tokenfilter>
</filterchain>
</loadresource>
<!-- Copy the mail-lists template filtering to replace properties -->
<copy file="${commonsMojoTempDir}/contributing-md-template.md" tofile="CONTRIBUTING.md" overwrite="true">
<filterset>
<filter token="NAME" value="${project.name}"/>
<filter token="ARTIFACTID" value="${project.artifactId}"/>
<filter token="ARTIFACTCOREID" value="${tmp.artifactId}"/>
<filter token="JIRA_ID" value="${commons.jira.id}"/>
<filter token="ID" value="${commons.componentid}"/>
</filterset>
</copy>
</target>
</project>