blob: a90443ac1e09528cfea708e7f5282c2fa19d09b7 [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.
-->
<project name="o.apache.tools.ant.module" default="netbeans" basedir=".">
<import file="../nbbuild/templates/projectized.xml"/>
<target name="build-init" depends="projectized.build-init">
<ant dir="external" target="unzip"/>
<property name="src-bridge.cp" value="${module.classpath}:${src-bridge.cp.extra}"/>
</target>
<target name="compile-bridge" depends="init,compile">
<mkdir dir="build/bridge-classes"/>
<depend srcdir="src-bridge" destdir="build/bridge-classes" cache="build/depcache-bridge">
<classpath>
<path path="${src-bridge.cp}"/>
</classpath>
</depend>
<javac srcdir="src-bridge" destdir="build/bridge-classes" deprecation="${build.compiler.deprecation}" debug="${build.compiler.debug}" source="1.6" target="1.6" includeantruntime="false">
<classpath>
<path path="${src-bridge.cp}"/>
</classpath>
<compilerarg line="${javac.compilerargs}"/>
</javac>
<copy todir="build/bridge-classes">
<fileset dir="src-bridge" excludes="${jar-excludes}"/>
</copy>
</target>
<target name="jar-bridge" depends="compile-bridge">
<mkdir dir="${cluster}/ant/nblib"/>
<jar jarfile="${cluster}/ant/nblib/bridge.jar" compress="false">
<fileset dir="build/bridge-classes"/>
</jar>
</target>
<target name="netbeans-extra" depends="jar-bridge">
<mkdir dir="${cluster}/ant/lib"/>
<copy todir="${cluster}/ant/lib">
<fileset dir="external/lib"/>
</copy>
<unzip dest="${cluster}/ant">
<fileset dir="external">
<include name="ant-misc-*.zip"/>
</fileset>
</unzip>
</target>
<target name="test-build" depends="jar-bridge,projectized-common.test-build"/>
<target name="jnlp" depends="netbeans,-jnlp-init">
<property name="dir" location="${jnlp.dest.dir}/org-apache-tools-ant-module"/>
<mkdir dir="${dir}"/>
<copy todir="${dir}" flatten="true">
<fileset dir="${cluster}">
<include name="${module.jar}"/>
<include name="ant/patches/*.jar"/>
</fileset>
</copy>
<copy todir="${dir}">
<fileset dir="${cluster}">
<include name="ant/lib/*.jar"/>
</fileset>
<mapper type="glob" from="ant${file.separator}lib${file.separator}*.jar" to="apache-*-1.10.1.jar"/>
</copy>
<copy file="${cluster}/ant/nblib/bridge.jar" tofile="${dir}/org-apache-tools-ant-module-bridge.jar"/>
<!-- XXX ought to only do this in case jnlp.sign.jars=true -->
<signjar alias="${jnlp.signjar.alias}" storepass="${jnlp.signjar.password}" keystore="${jnlp.signjar.keystore}">
<fileset dir="${dir}">
<include name="org-apache-tools-ant-module.jar"/>
<include name="org-apache-tools-ant-module-bridge.jar"/>
<include name="apache-ant*.jar"/>
</fileset>
</signjar>
<pathconvert property="ant-jar-resources" pathsep="'/&gt;&#10; &lt;jar href='org-apache-tools-ant-module/">
<path>
<fileset dir="${dir}">
<include name="apache-ant*.jar"/>
</fileset>
</path>
<mapper type="glob" from="${dir}${file.separator}*" to="*"/>
</pathconvert>
<echo file="${jnlp.dest.dir}/org-apache-tools-ant-module.jnlp"><![CDATA[<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE jnlp PUBLIC "-//Sun Microsystems, Inc//DTD JNLP Descriptor 6.0//EN" "http://java.sun.com/dtd/JNLP-6.0.dtd">
<jnlp spec='1.0+' codebase='${jnlp.codebase}'>
<information>
<title>Apache Ant Integration</title>
<vendor>NetBeans</vendor>
<description kind='one-line'>Bundles Apache Ant.</description>
<description kind='short'>This module bundles the Apache Ant build tool.</description>
</information>
<security><all-permissions/></security>
<resources>
<jar href='org-apache-tools-ant-module/org-apache-tools-ant-module.jar'/>
<jar href='org-apache-tools-ant-module/org-apache-tools-ant-module-bridge.jar'/>
<jar href='org-apache-tools-ant-module/${ant-jar-resources}'/>
</resources>
<component-desc/>
</jnlp>
]]>
</echo>
</target>
<!-- For use when making new releases: -->
<target name="release-helper" depends="clean" description="Help do some things useful when bundling a new Ant release.">
<ant dir="external" target="clean"/>
<condition property="all.defined">
<and>
<isset property="release.version"/>
<available file="${release.path}" type="dir"/>
</and>
</condition>
<fail unless="all.defined">
You need to set the following properties first:
release.version: version of Ant being bundled, e.g. "1.6"
release.path: full path to the Ant binary distribution, e.g. "/tmp/apache-ant-1.6.0"
</fail>
<property name="orig.manual" location="${release.path}/manual"/>
<echo>2. Creating the Ant manual from ${orig.manual}...</echo>
<property name="online.manual" location="build/release-work/online-manual"/>
<delete dir="${online.manual}"/>
<mkdir dir="${online.manual}"/>
<copy todir="${online.manual}">
<fileset dir="${orig.manual}">
<!-- Included as a separate Javadoc mount: -->
<exclude name="api/"/>
</fileset>
</copy>
<property name="ant-docs" location="../o.apache.tools.ant.module.docs"/>
<property name="ant-docs.zip" location="${ant-docs}/external/ant-docs-${release.version}.zip"/>
<zip zipfile="${ant-docs.zip}" compress="true">
<fileset dir="${online.manual}"/>
</zip>
<property name="here" location="."/>
<property name="ant-libs.zip" location="external/ant-libs-${release.version}.zip"/>
<echo>3. Creating ${ant-libs.zip}...</echo>
<zip zipfile="${ant-libs.zip}" compress="true">
<fileset dir="${release.path}/lib">
<include name="ant*.jar"/>
</fileset>
</zip>
<property name="ant-misc.zip" location="external/ant-misc-${release.version}.zip"/>
<echo>4. Creating ${ant-misc.zip}...</echo>
<zip zipfile="${ant-misc.zip}" compress="true">
<fileset dir="${release.path}">
<include name="bin/"/>
<include name="etc/"/>
</fileset>
</zip>
<echo>Now some (currently) manual steps for you:
5. Mention that the Ant version is ${release.version} in all files in ${here}, e.g.:
- ${ant-docs}/antsrc/MakeManual.java
- ${ant-docs}/src/org/apache/tools/ant/module/docs/Bundle.properties
- ../java.helpset/javahelp/org/netbeans/modules/java/helpset/docs/ant/*.html
- nbproject/project.properties
- ${ant-docs}/nbproject/project.properties
- build.xml
- arch.xml
- external/build.xml
and rename external/ant-*-license.txt (and update the version numbers mentioned in it)
and fix external/binaries-list
(last two steps also in ${ant-docs}/external)
6. Run: ant -f ${ant-docs}/build.xml preview-javahelp
You can ignore links to api/org/apache/... which will be broken, as well as a few other things.
But for real problems in the HTML, commit fixes to docs/manual/ in the ant.apache.org SVN trunk.
Sanity-check the helpset and adjust ${ant-docs}/antsrc/MakeManual.java as needed.
7. Increase spec versions in nbproject/project.properties and ${ant-docs}/manifest.mf.
8. Test everything, including at least:
ant -f ${here}/build.xml -Dtest-unit-sys-prop.ignore.random.failures=true clean netbeans test-unit
ant -f ${ant-docs}/build.xml clean netbeans
ant -f ${here}/../java.project/build.xml -Dtest-unit-sys-prop.ignore.random.failures=true clean test-unit
ant -f ${here}/../java.j2seproject/build.xml -Dtest-unit-sys-prop.ignore.random.failures=true clean test-unit
ant -f ${here}/../build.xml commit-validation
9. Submit a patch for https://svn.apache.org/repos/asf/ant/core/branches/ANT_SITE/xdocs/external.xml
mentioning that the bundled version in NB is now ${release.version}.
10. Edit these instructions in build.xml according to anything you had to do differently.
After that you should be done!
</echo>
</target>
</project>