blob: 932d14a84ce1aa442511dd5b17767e7a1a3c32fd [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 basedir="." default="netbeans" name="jnlpinstaller">
<property name="nb_all" location="../../.."/>
<import file="${nb_all}/nbbuild/default.xml" />
<property name="jnlp-api.file.location" value="external/jnlp-definitions-7.0.jar"/>
<property name="jnlp-servlet.file.location" value="external/webstart-jnlp-servlet-1.0-beta-7.jar"/>
<property name="jnlp.signjar.alias" value="jnlp" />
<property name="jnlp.signjar.keystore" location="default.keystore" />
<property name="jnlp.signjar.password" value="netbeans" />
<property name="jnlp.codebase.base" location="release" />
<property name="jnlp.codebase" value="file:${jnlp.codebase.base}/" />
<property name="jnlp.static" value="true" />
<property name="allmodules" value="${nb.cluster.platform}" />
<taskdef name="moduleinfo" classpath="${nb_all}/nbbuild/build/nbantext.jar" classname="org.netbeans.nbbuild.ModuleInfo" />
<target name="compile">
<delete file="src/META-INF/netbeans-location.properties"/>
<javac debug="${build.compiler.debug}" deprecation="${build.compiler.deprecation}" destdir="src" srcdir="src">
<classpath refid="cp"/>
</javac>
</target>
<!-- The main target -->
<target depends="jnlp-expand1, create-war" name="netbeans">
</target>
<target depends="create-config-base" name="create-config">
<copy file="help.jnlp" tofile="release/help.jnlp" />
</target>
<!-- default jars that we do not want to sign and pack -->
<selector id="extensions" >
<filename name="**/*jh*.jar" />
</selector>
<selector id="no-extensions" >
<not>
<selector refid="extensions" />
</not>
</selector>
<!-- This target fills in the content of file nb-launch.jnlp.
Scans all the available jar files and adds entries to the .jnlp file.
-->
<target depends="copy-to-release, create-jnlp-jars" name="create-config-base">
<!-- This target creates the end of nb-launch.jnlp file -->
<path id="jarfiles">
<fileset dir="release">
<include name="*.jar"/>
<!-- do not enumerate extensions-->
<selector refid="no-extensions" />
</fileset>
</path>
<property location="${nb_all}/nbbuild/installer/jnlp/release/" name="dirname"/>
<!-- save directory name for replacing back -->
<replace file="release/nb-launch.jnlp" token="${dirname}" value="D#I#R#_#N#A#M#E"/>
<pathconvert dirsep="${file.separator}" pathsep="" property="jar-files-list" refid="jarfiles"/>
<echo append="true" file="release/nb-launch.jnlp" message="@@@${jar-files-list}%%%"/>
<echo message="Replacing ${dirname}"/>
<replace file="release/nb-launch.jnlp" token="${dirname}${file.separator}" value="@@@###"/>
<replace file="release/nb-launch.jnlp" token="@@@@@@" value=""/>
<replace file="release/nb-launch.jnlp" token="@@@">
<replacevalue><![CDATA["/>
]]></replacevalue>
</replace>
<replace file="release/nb-launch.jnlp" token="%%%">
<replacevalue><![CDATA["/>
]]></replacevalue>
</replace>
<replace file="release/nb-launch.jnlp" token="###">
<replacevalue><![CDATA[ <jar href="]]></replacevalue>
</replace>
<echo append="true" file="release/nb-launch.jnlp" message="${jnlp.extra.properties}"/>
<echo append="true" file="release/nb-launch.jnlp">
<![CDATA[
</resources>
<application-desc main-class="org.netbeans.jnlp.Main"/>
</jnlp>
]]></echo>
<!-- replace back accidentally replaced name of the directory -->
<replace file="release/nb-launch.jnlp" token="D#I#R#_#N#A#M#E" value="${dirname}${file.separator}"/>
<echo message="JNLP file release/nb-launch.jnlp has been generated. You can pass it to javaws." />
</target>
<target depends="jars" name="copy-to-release">
<mkdir dir="release"/>
<delete file="release/nb-launch.jnlp"/>
<copy flatten="true" todir="release">
<fileset dir="">
<include name="*.jnlp"/>
</fileset>
</copy>
</target>
<target name="jnlp-expand1" depends="create-config" if="jnlp.static">
<replace dir="release" token="@CODEBASE@" value="${jnlp.codebase}">
<filename name="*.jnlp" />
</replace>
<replace file="release/nb-launch.jnlp" token="@NAME@" value="nb-launch.jnlp"/>
</target>
<target name="jnlp-expand2" depends="create-config" unless="jnlp.static">
<replace dir="release" token="@CODEBASE@" value="$$$$codebase">
<filename name="*.jnlp" />
</replace>
<replace file="release/nb-launch.jnlp" token="@NAME@" value="$$$$name"/>
</target>
<target name="create-war" depends="jnlp-expand2" unless="jnlp.static">
<mkdir dir="release/WEB-INF/lib"/>
<copy file="${jnlp-servlet.file.location}" todir="release/WEB-INF/lib"/>
<mkdir dir="release/WEB-INF/classes"/>
<copy todir="release/WEB-INF/classes" flatten="false">
<fileset dir="src" excludes="**/*.java">
<include name="**/IndexServlet*"/>
</fileset>
</copy>
<war basedir="release"
compress="false"
webxml="web.xml"
warfile="${netbeans.dest}.war"/>
</target>
<target depends="jars,generate-keystore" name="create-jnlp-jars">
<mkdir dir="release"/>
<copy flatten="true" todir="release">
<fileset dir="jars">
<include name="**/*.jar"/>
<!-- we do not support autoupdate in webstart -->
<include name="**/org-netbeans-modules-autoupdate.jar" />
</fileset>
</copy>
<!-- now they can be signed -->
<signjar alias="${jnlp.signjar.alias}" keystore="${jnlp.signjar.keystore}" storepass="${jnlp.signjar.password}">
<fileset dir=".">
<include name="release/*.jar"/>
<selector refid="no-extensions" />
</fileset>
</signjar>
</target>
<target name="nbm"/>
<target description="Clean build products." name="clean">
<delete>
<fileset dir="src">
<include name="**/*.class"/>
</fileset>
</delete>
<!-- workaround for issue 20745 -->
<delete dir="netbeans/lib"/>
<delete dir="Info"/>
<delete file="manifest-subst.mf"/>
<delete dir="javadoc"/>
<delete dir="release"/>
<delete dir="jars"/>
<delete file="${netbeans.dest}.war"/>
<delete file="src/META-INF/netbeans-location.properties"/>
</target>
<target depends="clean" name="real-clean">
<delete dir="reload"/>
</target>
<path id="cp">
<pathelement location="${o.n.core.dir}/core/core.jar"/>
<pathelement location="${jnlp-api.file.location}"/>
</path>
<target name="jars" depends="compile">
<taskdef name="repeat" classname="org.netbeans.nbbuild.Repeat" classpath="${nb_all}/nbbuild/build/nbantext.jar"/>
<repeat values="${allmodules}" name="maindir" target="buildjar"/>
<mkdir dir="jars"/>
<jar compress="false"
jarfile="jars/nbjnlpinstaller.jar">
<fileset dir="src" excludes="**/*.java"/>
</jar>
</target>
<!-- copies and conditionally repackages all jars -->
<target name="buildjar">
<echo message="buildjar running with property maindir == ${maindir}"/>
<moduleinfo
module="${maindir}"
filesetname="buildjar.files"
clusterdirname="buildjar.cluster"
trackingpath="${netbeans.dest.dir}"
failonerror="false"
/>
<mkdir dir="jars"/>
<copy todir="jars" flatten="true" >
<fileset refid="buildjar.files" >
</fileset>
</copy>
</target>
<available file="${jnlp.signjar.keystore}" property="do.not.generate.keystore" />
<target name="generate-keystore" unless="do.not.generate.keystore" >
<echo message="Going to create default keystore in ${jnlp.signjar.keystore}" />
<exec
executable="keytool"
dir="."
inputstring="
noname${line.separator}
noorganization${line.separator}
nolocation${line.separator}
nostate${line.separator}
no${line.separator}yes${line.separator}yes${line.separator}"
>
<arg value="--genkey" />
<arg value="--alias" />
<arg value="${jnlp.signjar.alias}" />
<arg value="--keystore" />
<arg file="${jnlp.signjar.keystore}" />
<arg value="--storepass" />
<arg value="${jnlp.signjar.password}" />
<arg value="--keypass" />
<arg value="${jnlp.signjar.password}" />
</exec>
</target>
</project>