| <?xml version="1.0"?> |
| <!-- |
| 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 default="buildsource" basedir="." xmlns:jacoco="antlib:org.jacoco.ant"> |
| |
| <!-- Set Properties --> |
| |
| |
| <!-- User settings --> |
| <property environment="env"/> |
| <property file="local.properties"/> |
| |
| <property file="${user.home}/ant.properties"/> |
| <!-- Set property lib dir --> |
| <property name="properties.dir" value="${basedir}/tools/ant/properties"/> |
| <!-- Significant dirs --> |
| <property file="${properties.dir}/dirs.properties"/> |
| <!-- Compiler settings --> |
| <property file="${properties.dir}/sane${sanity}.properties"/> |
| <!-- Public api --> |
| <property file="${javadoctools.dir}/publishedapi.ant"/> |
| |
| <!-- You can override this property in local.properties to fetch from an alternative location --> |
| <property name="javasedoc.url" value="https://docs.oracle.com/javase/9/docs/api"/> |
| <property name="j2eedoc.url" value="https://docs.oracle.com/javaee/7/api"/> |
| <property name="javasedoc.local" value="packageListLoc-se-9"/> |
| <property name="j2eedoc.local" value="packageListLoc-j2ee-7"/> |
| |
| <!-- These properties are used by the Release build process. --> |
| <condition property="isWindows"> |
| <os family="windows"/> |
| </condition> |
| |
| <condition property="isUnix"> |
| <not> |
| <os family="windows"/> |
| </not> |
| </condition> |
| |
| <!-- <echoproperties/> --> |
| |
| <!-- Targets --> |
| |
| <target |
| name="buildsource" |
| depends="checkCompilerLevel,init,prebuild,setCompilerProperties,felixStubs,shared,client,engine,storeless,tools,drda,optional,runner,build,versioninfo,localeinfo,binscripts,generateSecurityPolicies" |
| description="Compile the product source (does not build the tests)." |
| /> |
| <target |
| name="all" |
| depends="buildsource,demo,testing,runmessagecheck" |
| description="Compile all of the source, including tests as well as production code." |
| /> |
| |
| <!-- Generate security policies and corresponding documentation --> |
| <!-- <target name="buildPolicyFiles" unless="messagesUpToDate" --> |
| <target |
| name="generateSecurityPolicies" |
| description="Build security policies." |
| > |
| |
| <taskdef |
| name="generatePolicies" |
| classname="org.apache.derbyBuild.SecurityPolicyGenerator" |
| classpath="${out.build.dir}" |
| /> |
| |
| <generatePolicies |
| baseDirectory="${basedir}" |
| /> |
| |
| </target> |
| |
| <!-- ==================================================================== --> |
| <!-- Initialize targets --> |
| <!-- ==================================================================== --> |
| |
| <target name="version_check"> |
| <antversion property="version.running" /> |
| <fail message="FATAL ERROR: The running Ant version, ${version.running}, is too old."> |
| <condition> |
| <not> |
| <antversion atleast="1.10.2" /> |
| </not> |
| </condition> |
| </fail> |
| </target> |
| |
| <target name="init" unless="init.done" depends="version_check,makeOutDirs,install_junit,setCompilerProperties"> |
| <tstamp/> |
| <antcall target="make-generated-dirs"/> |
| <antcall target="make-release-dirs"/> |
| |
| <!-- Create the emtpy dir that we put in the boot classpath to |
| prevent the default Java runtime libraries from being loaded. |
| --> |
| <mkdir dir="${empty}"/> |
| |
| <!-- generate sanity state.properties if one does not exist --> |
| <available property="state.available" file="${state.file}"/> |
| <antcall target="ensuresanitystate"/> |
| <property file="${state.file}"/> |
| <property file="${properties.dir}/sane${sanity}.properties"/> |
| <antcall target="setissane"/> |
| <available property="atLeastJava11" classname="java.lang.invoke.ConstantBootstraps"/> |
| <property name="init.done" value="true"/> |
| </target> |
| |
| <target name="makeOutDirs"> |
| <mkdir dir="${out.dir}"/> |
| |
| <mkdir dir="${out.build.dir}"/> |
| <mkdir dir="${out.client.dir}"/> |
| <mkdir dir="${out.demo.dir}"/> |
| <mkdir dir="${out.drda.dir}"/> |
| <mkdir dir="${out.engine.dir}"/> |
| <mkdir dir="${out.optional.dir}"/> |
| <mkdir dir="${out.run.dir}"/> |
| <mkdir dir="${out.shared.dir}"/> |
| <mkdir dir="${out.storeless.dir}"/> |
| <mkdir dir="${out.stubs.dir}"/> |
| <mkdir dir="${out.testing.dir}"/> |
| <mkdir dir="${out.pptesting.dir}"/> |
| <mkdir dir="${out.tools.dir}"/> |
| </target> |
| |
| <target name="make-generated-dirs"> |
| |
| <mkdir dir="${generated.dir}"/> |
| <mkdir dir="${generated.bin.dir}"/> |
| <mkdir dir="${generated.src.dir}"/> |
| <mkdir dir="${generated.src.engine.dir}"/> |
| <mkdir dir="${generated.src.shared.dir}"/> |
| <mkdir dir="${generated.src.tools.dir}"/> |
| <mkdir dir="${generated.src.tests.dir}"/> |
| <mkdir dir="${generated.sanity.dir}"/> |
| <mkdir dir="${generated.ij.dir}"/> |
| <mkdir dir="${generated.sql.dir}"/> |
| <mkdir dir="${generated.engine.locale.dir}"/> |
| <mkdir dir="${generated.cache.dir}"/> |
| <mkdir dir="${generated.toursdb.dir}"/> |
| |
| </target> |
| |
| <target name="make-release-dirs"> |
| |
| <mkdir dir="${release.base}"/> |
| <mkdir dir="${release.dir}"/> |
| <mkdir dir="${snapshot.dir}"/> |
| |
| </target> |
| |
| <target name="setissane"> |
| <condition property="is.sane"> |
| <equals arg1="${sanity}" arg2="true"/> |
| </condition> |
| </target> |
| |
| <target name="ensuresanitystate" unless="state.available"> |
| <antcall target="evaluate.sane"/> |
| </target> |
| <target name="evaluate.sane"> |
| <condition property="generate.sane"> |
| <or> |
| <equals arg1="${sane}" arg2="true"/> |
| <not> |
| <isset property="sane"/> |
| </not> |
| </or> |
| </condition> |
| <antcall target="ensuresanitystate.sane"/> |
| <antcall target="ensuresanitystate.insane"/> |
| </target> |
| <target name="ensuresanitystate.sane" if="generate.sane"> |
| <antcall target="sane"/> |
| </target> |
| <target name="ensuresanitystate.insane" unless="generate.sane"> |
| <antcall target="insane"/> |
| </target> |
| |
| <target name="showenv" depends="init" unless="showenv.done"> |
| <echo level="info" message=""/> |
| <echo level="info" message="Ant environment:"/> |
| <echo level="info" message=" Base Directory: ${basedir}"/> |
| <echo level="info" message=" Build output: ${out.dir}"/> |
| <echo level="info" message=" Compiler: ${build.compiler}"/> |
| <echo level="info" message=" Sane = ${sane}"/> |
| <echo level="info" message=" Proceed = ${proceed}"/> |
| <echo level="info" message=""/> |
| <property name="showenv.done" value="true"/> |
| </target> |
| |
| <!-- Make sure compiler level is Java 8 level or higher --> |
| <target name="checkCompilerLevel"> |
| |
| <available property="compilerAtCorrectLevel" classname="java.sql.ShardingKey"/> |
| <fail unless="compilerAtCorrectLevel" message="Compiler level must be Java 9 or later."/> |
| |
| </target> |
| |
| <!-- ==================================================================== --> |
| <!-- Download junit 3.8.2 --> |
| <!-- ==================================================================== --> |
| |
| |
| <!-- You can override this property in local.properties to fetch from an alternative location --> |
| <property name="junit.url" value="http://repo1.maven.org/maven2/junit/junit/3.8.2/junit-3.8.2.jar"/> |
| <target name="junit_check"> |
| <!-- check if junit is set, if set, if junit.jar is really there, if not, error out --> |
| <fail message="junit property is set to ${junit}, but there is no junit.jar there."> |
| <condition> |
| <and> |
| <isset property="junit"/> |
| <not> |
| <available file="${junit}"/> |
| </not> |
| </and> |
| </condition> |
| </fail> |
| <condition property="junitfile" value="${junit}"> |
| <and> |
| <isset property="junit"/> |
| </and> |
| </condition> |
| <condition property="junitfile" value="${basedir}/tools/java/junit.jar"> |
| <not> |
| <isset property="junit"/> |
| </not> |
| </condition> |
| <available file="${junitfile}" property="junit.exists"/> |
| </target> |
| |
| <target name="install_junit" depends="junit_check" unless="junit.exists" description="installs junit.jar into derby"> |
| <get src="${junit.url}" dest="${basedir}/tools/java/junit.jar" verbose="true" ignoreerrors="true"/> |
| </target> |
| |
| <!-- ==================================================================== --> |
| <!-- Build version info files --> |
| <!-- ==================================================================== --> |
| |
| <target name="versioninfo" depends="ckversioninfo,writeversioninfo"/> |
| |
| <target name="ckversioninfo"> |
| <condition property="versioninfo.available"> |
| <and> |
| <available file="${out.engine.dir}/org/apache/derby/info/engine/info.properties"/> |
| <available file="${out.tools.dir}/org/apache/derby/info/tools/info.properties"/> |
| <available file="${out.drda.dir}/org/apache/derby/info/net/info.properties"/> |
| <available file="${out.client.dir}/org/apache/derby/info/client/info.properties"/> |
| <available file="${out.shared.dir}/org/apache/derby/info/shared/info.properties"/> |
| <available file="${out.testing.dir}/org/apache/derby/info/tsting/info.properties"/> |
| </and> |
| </condition> |
| </target> |
| |
| <target name="writeversioninfo" unless="versioninfo.available"> |
| <mkdir dir="${out.engine.dir}/org/apache/derby/info/"/> |
| <mkdir dir="${out.engine.dir}/org/apache/derby/info/engine"/> |
| |
| <mkdir dir="${out.tools.dir}/org/apache/derby/info"/> |
| <mkdir dir="${out.tools.dir}/org/apache/derby/info/tools"/> |
| |
| <mkdir dir="${out.drda.dir}/org/apache/derby/info"/> |
| <mkdir dir="${out.drda.dir}/org/apache/derby/info/net"/> |
| |
| <mkdir dir="${out.client.dir}/org/apache/derby/info"/> |
| <mkdir dir="${out.client.dir}/org/apache/derby/info/client"/> |
| |
| <mkdir dir="${out.shared.dir}/org/apache/derby/info"/> |
| <mkdir dir="${out.shared.dir}/org/apache/derby/info/shared"/> |
| |
| <mkdir dir="${out.testing.dir}/org/apache/derby/info"/> |
| <mkdir dir="${out.testing.dir}/org/apache/derby/info/tsting"/> |
| |
| <antcall target="infowriter"> |
| <param name="info.buildnumber" value="1"/> |
| <param name="info.iname" value="Apache Derby Embedded Engine"/> |
| <param name="info.ename" value="Apache Derby"/> |
| <param name="info.productfile" value="codeline"/> |
| <param name="info.file" value="${out.engine.dir}/org/apache/derby/info/engine/info.properties"/> |
| </antcall> |
| <antcall target="infowriter"> |
| <param name="info.buildnumber" value="1"/> |
| <param name="info.iname" value="Apache Derby Tools"/> |
| <param name="info.ename" value="Apache Derby"/> |
| <param name="info.productfile" value="codeline"/> |
| <param name="info.file" value="${out.tools.dir}/org/apache/derby/info/tools/info.properties"/> |
| </antcall> |
| <antcall target="infowriter"> |
| <param name="info.buildnumber" value="1"/> |
| <param name="info.iname" value="Apache Derby Network Server"/> |
| <param name="info.ename" value="Apache Derby"/> |
| <param name="info.productfile" value="codeline"/> |
| <param name="info.file" value="${out.drda.dir}/org/apache/derby/info/net/info.properties"/> |
| </antcall> |
| <antcall target="infowriter"> |
| <param name="info.buildnumber" value="1"/> |
| <param name="info.iname" value="Apache Derby Network Client"/> |
| <param name="info.ename" value="Apache Derby"/> |
| <param name="info.productfile" value="codeline"/> |
| <param name="info.file" value="${out.client.dir}/org/apache/derby/info/client/info.properties"/> |
| </antcall> |
| <antcall target="infowriter"> |
| <param name="info.buildnumber" value="1"/> |
| <param name="info.iname" value="Apache Derby Shared Utilities"/> |
| <param name="info.ename" value="Apache Derby"/> |
| <param name="info.productfile" value="codeline"/> |
| <param name="info.file" value="${out.shared.dir}/org/apache/derby/info/shared/info.properties"/> |
| </antcall> |
| </target> |
| |
| <target name="cleanversion"> |
| <delete file="${out.engine.dir}/org/apache/derby/info/engine/info.properties"/> |
| <delete file="${out.tools.dir}/org/apache/derby/info/tools/info.properties"/> |
| <delete file="${out.drda.dir}/org/apache/derby/info/net/info.properties"/> |
| <delete file="${out.client.dir}/org/apache/derby/info/client/info.properties"/> |
| <delete file="${out.shared.dir}/org/apache/derby/info/shared/info.properties"/> |
| <delete file="${out.testing.dir}/org/apache/derby/info/tsting/info.properties"/> |
| </target> |
| |
| <!-- Set the ant variables which identify the compiler classpaths. --> |
| <target name="setCompilerProperties" unless="compilerPropsAlreadySet" depends="prebuild"> |
| |
| <property file="${properties.dir}/defaultcompiler.properties"/> |
| <property file="${properties.dir}/${build.compiler}.properties"/> |
| <!-- Compile-time classpath`< properties files --> |
| <property file="${properties.dir}/extrapath.properties"/> |
| |
| <property file="${properties.dir}/compilepath.properties"/> |
| <!-- Release and version info --> |
| <property file="${properties.dir}/release.properties"/> |
| |
| <property name="compilerPropsAlreadySet" value="true"/> |
| |
| </target> |
| |
| <!-- ==================================================================== --> |
| <!-- Info writer build target --> |
| <!-- ==================================================================== --> |
| |
| <target name="infowriter"> |
| <propertyfile file="${info.file}" comment="${copyright.comment}"> |
| <entry key="derby.version.major" value="${major}"/> |
| <entry key="derby.version.minor" value="${minor}"/> |
| <entry key="derby.version.maint" value="${maint}"/> |
| <entry key="derby.version.drdamaint" value="${drdamaint}"/> |
| <entry key="derby.build.number" value="${info.buildnumber}"/> |
| <entry key="derby.product.technology.name" value="${info.iname}"/> |
| <entry key="derby.product.external.name" value="${info.ename}"/> |
| <entry key="derby.product.external.version" value="${eversion}"/> |
| <entry key="derby.version.beta" value="${beta}"/> |
| <entry key="derby.product.vendor" value="${vendor}"/> |
| <entry key="derby.product.file" value="${info.productfile}"/> |
| </propertyfile> |
| </target> |
| |
| <!-- |
| Create the release properties file and check it in |
| |
| Args: |
| |
| bumpID true or false, depending on whether you want to increment the last digit of the release id (defaults to false) |
| --> |
| <target name="writeAndCheckinReleaseProperties" depends="writeRelProps,promptforsvncredentials"> |
| |
| <!-- Check in the new release id. --> |
| <antcall target="checkinfile"> |
| <param name="checkinComment" value="Derby release ID set to: ${derby.release.id.new}"/> |
| <param name="fileName" value="${releasePropertyFile}"/> |
| </antcall> |
| |
| </target> |
| |
| <!-- |
| Create the release properties file. |
| |
| Args: |
| |
| bumpID true or false, depending on whether you want to increment the last digit of the release id (defaults to false) |
| --> |
| <target name="writeRelProps" depends="init,prebuild,promptforreleaseid"> |
| |
| <taskdef |
| name="writeAndCheckinReleaseProperties" |
| classname="org.apache.derbyPreBuild.ReleaseProperties" |
| classpath="${out.build.dir}:${derby.shared.src.dir}" |
| /> |
| |
| <property name="releasePropertyFile" value="${properties.dir}/release.properties"/> |
| <property name="bumpID" value="false"/> |
| |
| <writeAndCheckinReleaseProperties |
| releaseID="${derby.release.id}" |
| releasePropertiesFileName="${releasePropertyFile}" |
| bump="${bumpID}" |
| /> |
| |
| <!-- |
| If we were asked to bump the release id, then the actual release id |
| will be different from the original id passed into this target. |
| --> |
| <echo message="Derby release ID set to: ${derby.release.id.new}"/> |
| |
| </target> |
| |
| <!-- ==================================================================== --> |
| <!-- Locale info writer build target --> |
| <!-- ==================================================================== --> |
| |
| <target name="buildlocaleinfo"> |
| <property name="locale.output.dir" value="${out.dir}/${locale.stub}${locale.iname}/org/apache/derby/info/${locale.stub}${locale.iname}"/> |
| <mkdir dir="${locale.output.dir}"/> |
| |
| <antcall target="localeinfowriter"> |
| <param name="info.buildnumber" value="1"/> |
| <param name="info.iname" value="_${locale.iname}"/> |
| <param name="info.ename" value="${locale.ename}"/> |
| <param name="info.file" value="${locale.output.dir}/info.properties"/> |
| </antcall> |
| </target> |
| |
| <target name="localeinfowriter"> |
| <propertyfile file="${info.file}" comment="${copyright.comment}"> |
| <entry key="derby.locale.version.major" value="${major}"/> |
| <entry key="derby.locale.version.minor" value="${minor}"/> |
| <entry key="derby.locale.version.maint" value="${maint}"/> |
| <entry key="derby.locale.build.number" value="${info.buildnumber}"/> |
| <entry key="derby.locale.technology.name" value="${info.iname}"/> |
| <entry key="derby.locale.external.name" value="${info.ename}"/> |
| <entry key="derby.version.beta" value="${beta}"/> |
| <entry key="derby.locale.vendor" value="${vendor}"/> |
| <entry key="derby.product.file" value="${info.productfile}"/> |
| </propertyfile> |
| </target> |
| |
| |
| <!-- ==================================================================== --> |
| <!-- Build Locale info --> |
| <!-- ==================================================================== --> |
| |
| <target name="localeinfo" |
| depends="checklocaleinfo,checkmessages" |
| unless="localeinfo.available"> |
| |
| <antcall target="buildlocaleinfo"> |
| <param name="locale.iname" value="cs"/> |
| <param name="locale.ename" value="Czech/International [cs]"/> |
| <param name="info.buildnumber" value="1"/> |
| <param name="info.productfile" value="codeline"/> |
| </antcall> |
| <antcall target="buildlocaleinfo"> |
| <param name="locale.iname" value="de_DE"/> |
| <param name="locale.ename" value="German/Germany [de_DE]"/> |
| <param name="info.buildnumber" value="1"/> |
| <param name="info.productfile" value="codeline"/> |
| </antcall> |
| <antcall target="buildlocaleinfo"> |
| <param name="locale.iname" value="es"/> |
| <param name="locale.ename" value="Spanish/International [es]"/> |
| <param name="info.buildnumber" value="1"/> |
| <param name="info.productfile" value="codeline"/> |
| </antcall> |
| <antcall target="buildlocaleinfo"> |
| <param name="locale.iname" value="fr"/> |
| <param name="locale.ename" value="French/International [fr]"/> |
| <param name="info.buildnumber" value="1"/> |
| <param name="info.productfile" value="codeline"/> |
| </antcall> |
| <antcall target="buildlocaleinfo"> |
| <param name="locale.iname" value="hu"/> |
| <param name="locale.ename" value="Hungarian/International [hu]"/> |
| <param name="info.buildnumber" value="1"/> |
| <param name="info.productfile" value="codeline"/> |
| </antcall> |
| <antcall target="buildlocaleinfo"> |
| <param name="locale.iname" value="it"/> |
| <param name="locale.ename" value="Italian/International [it]"/> |
| <param name="info.buildnumber" value="1"/> |
| <param name="info.productfile" value="codeline"/> |
| </antcall> |
| <antcall target="buildlocaleinfo"> |
| <param name="locale.iname" value="ja_JP"/> |
| <param name="locale.ename" value="Japanese/Japan [ja_JP]"/> |
| <param name="info.buildnumber" value="1"/> |
| <param name="info.productfile" value="codeline"/> |
| </antcall> |
| <antcall target="buildlocaleinfo"> |
| <param name="locale.iname" value="ko_KR"/> |
| <param name="locale.ename" value="Korean/Korea [ko_KR]"/> |
| <param name="info.buildnumber" value="1"/> |
| <param name="info.productfile" value="codeline"/> |
| </antcall> |
| <antcall target="buildlocaleinfo"> |
| <param name="locale.iname" value="pl"/> |
| <param name="locale.ename" value="Polish/International [pl]"/> |
| <param name="info.buildnumber" value="1"/> |
| <param name="info.productfile" value="codeline"/> |
| </antcall> |
| <antcall target="buildlocaleinfo"> |
| <param name="locale.iname" value="pt_BR"/> |
| <param name="locale.ename" value="Portuguese/Brazil [pt_BR]"/> |
| <param name="info.buildnumber" value="1"/> |
| <param name="info.productfile" value="codeline"/> |
| </antcall> |
| <antcall target="buildlocaleinfo"> |
| <param name="locale.iname" value="ru"/> |
| <param name="locale.ename" value="Russian/International [ru]"/> |
| <param name="info.buildnumber" value="1"/> |
| <param name="info.productfile" value="codeline"/> |
| </antcall> |
| <antcall target="buildlocaleinfo"> |
| <param name="locale.iname" value="zh_CN"/> |
| <param name="locale.ename" value="Simplified_Chinese/PR_China [zh_CN]"/> |
| <param name="info.buildnumber" value="1"/> |
| <param name="info.productfile" value="codeline"/> |
| </antcall> |
| <antcall target="buildlocaleinfo"> |
| <param name="locale.iname" value="zh_TW"/> |
| <param name="locale.ename" value="Chinese/Taiwan_Traditional [zh_TW]"/> |
| <param name="info.buildnumber" value="1"/> |
| <param name="info.productfile" value="codeline"/> |
| </antcall> |
| </target> |
| |
| <target name="checklocaleinfo"> |
| <condition property="localeinfo.available"> |
| <and> |
| <available file="${${out.dir}/${locale.stub}cs/org/apache/derby/info/${locale.stub}cs/info.properties"/> |
| <available file="${${out.dir}/${locale.stub}de_DE/org/apache/derby/info/${locale.stub}de_DE/info.properties"/> |
| <available file="${${out.dir}/${locale.stub}es/org/apache/derby/info/${locale.stub}es/info.properties"/> |
| <available file="${${out.dir}/${locale.stub}fr/org/apache/derby/info/${locale.stub}fr/info.properties"/> |
| <available file="${${out.dir}/${locale.stub}hu/org/apache/derby/info/${locale.stub}hu/info.properties"/> |
| <available file="${${out.dir}/${locale.stub}it/org/apache/derby/info/${locale.stub}it/info.properties"/> |
| <available file="${${out.dir}/${locale.stub}ja_JP/org/apache/derby/info/${locale.stub}ja_JP/info.properties"/> |
| <available file="${${out.dir}/${locale.stub}ko_KR/org/apache/derby/info/${locale.stub}ko_KR/info.properties"/> |
| <available file="${${out.dir}/${locale.stub}pl/org/apache/derby/info/${locale.stub}pl/info.properties"/> |
| <available file="${${out.dir}/${locale.stub}pt_BR/org/apache/derby/info/${locale.stub}pt_BR/info.properties"/> |
| <available file="${${out.dir}/${locale.stub}ru/org/apache/derby/info/${locale.stub}ru/info.properties"/> |
| <available file="${${out.dir}/${locale.stub}zh_CN/org/apache/derby/info/${locale.stub}zh_CN/info.properties"/> |
| <available file="${${out.dir}/${locale.stub}zh_TW/org/apache/derby/info/${locale.stub}zh_TW/info.properties"/> |
| </and> |
| </condition> |
| </target> |
| |
| <target name="cleanlocale"> |
| <delete file="${out.dir}/${locale.stub}cs/org/apache/derby/info/${locale.stub}cs/info.properties"/> <delete file="${out.dir}/${locale.stub}de_DE/org/apache/derby/info/${locale.stub}de_DE/info.properties"/> |
| <delete file="${out.dir}/${locale.stub}es/org/apache/derby/info/${locale.stub}es/info.properties"/> |
| <delete file="${out.dir}/${locale.stub}fr/org/apache/derby/info/${locale.stub}fr/info.properties"/> |
| <delete file="${out.dir}/${locale.stub}hu/org/apache/derby/info/${locale.stub}hu/info.properties"/> |
| <delete file="${out.dir}/${locale.stub}it/org/apache/derby/info/${locale.stub}it/info.properties"/> |
| <delete file="${out.dir}/${locale.stub}ja_JP/org/apache/derby/info/${locale.stub}ja_JP/info.properties"/> |
| <delete file="${out.dir}/${locale.stub}ko_KR/org/apache/derby/info/${locale.stub}ko_KR/info.properties"/> |
| <delete file="${out.dir}/${locale.stub}pl/org/apache/derby/info/${locale.stub}pl/info.properties"/> |
| <delete file="${out.dir}/${locale.stub}pt_BR/org/apache/derby/info/${locale.stub}pt_BR/info.properties"/> |
| <delete file="${out.dir}/${locale.stub}ru/org/apache/derby/info/${locale.stub}ru/info.properties"/> |
| <delete file="${out.dir}/${locale.stub}zh_CN/org/apache/derby/info/${locale.stub}zh_CN/info.properties"/> |
| <delete file="${out.dir}/${locale.stub}zh_TW/org/apache/derby/info/${locale.stub}zh_TW/info.properties"/> |
| </target> |
| |
| <target name="checkmessages" depends="checkmessages-done" |
| unless="checkmessages.done"> |
| <java classname="org.apache.derbyBuild.MessageVetter" |
| classpath="${out.build.dir}" |
| failonerror="true"> |
| <arg file="${out.engine.dir}/org/apache/derby/loc"/> |
| <arg file="${out.drda.dir}/org/apache/derby/loc/drda"/> |
| </java> |
| <touch file="${generated.dir}/checkmessages.done"/> |
| </target> |
| |
| <target name="checkmessages-done"> |
| <uptodate property="checkmessages.done" |
| targetfile="${generated.dir}/checkmessages.done"> |
| <srcresources> |
| <fileset dir="${out.engine.dir}/org/apache/derby/loc" |
| includes="*.properties"/> |
| <fileset dir="${out.drda.dir}/org/apache/derby/loc/drda" |
| includes="*.properties"/> |
| </srcresources> |
| </uptodate> |
| </target> |
| |
| <!-- ==================================================================== --> |
| <!-- Derby Engine build target --> |
| <!-- ==================================================================== --> |
| |
| <target name="engine" depends="shared,state"> |
| <ant dir="${derby.engine.src.dir}"/> |
| <antcall target="build"/> |
| <ant dir="${derby.engine.dir}/loc"/> |
| <antcall target="class_size_catalog"/> |
| </target> |
| <target name="engine_169_opt" depends="engine"> |
| <ant dir="${derby.engine.src.dir}" target="engine_169_opt"/> |
| </target> |
| |
| <target name="tools" depends="engine"> |
| <ant dir="${derby.tools.src.dir}"/> |
| </target> |
| |
| <target name="optional" depends="engine"> |
| <ant dir="${derby.optional.src.dir}"/> |
| </target> |
| |
| <target name="runner" depends="optional"> |
| <ant dir="${derby.run.src.dir}"/> |
| </target> |
| |
| <target name="storeless" depends="engine"> |
| <ant dir="${derby.storeless.src.dir}"/> |
| </target> |
| |
| <target name="shared" depends="init,state"> |
| <ant dir="${derby.shared.src.dir}"/> |
| </target> |
| |
| <target name="drda" depends="engine"> |
| <ant dir="${derby.drda.src.dir}"/> |
| </target> |
| |
| <target name="client" depends="shared"> |
| <ant dir="${derby.client.src.dir}"/> |
| </target> |
| |
| <target name="prebuild" depends="makeOutDirs"> |
| <mkdir dir="${out.dir}"/> |
| <ant dir="${derby.build.src.dir}/org/apache/derbyPreBuild"/> |
| </target> |
| |
| <target name="build"> |
| <ant dir="${derby.build.src.dir}"/> |
| </target> |
| |
| <target name="demo" depends="buildsource,vti-demo"> |
| <ant dir="${derby.demo.src.dir}"/> |
| </target> |
| |
| <target name="vti-demo" depends="buildsource"> |
| <ant dir="${derby.demo.src.dir}" target="compile-vtidemo"/> |
| </target> |
| |
| <target name="testing" depends="buildsource,buildtestinginfo"> |
| <ant dir="${derby.testing.src.dir}"/> |
| <ant dir="${derby.pptesting.src.dir}"/> |
| </target> |
| |
| <target name="build-test-jars" description="Build jar files used in tests." depends="buildsource" > |
| |
| <ant dir="${derby.testing.src.dir}/${derby.testing.functest.dir}/tests/lang" target="build-test-jars" /> |
| |
| </target> |
| |
| <!-- Run the MessageBundleTest --> |
| <target name="runmessagecheck"> |
| <java fork="true" |
| classname="org.apache.derbyBuild.MessageBundleTest" |
| failonerror="true" |
| classpath="${out.build.dir}:${out.shared.dir}:${out.engine.dir}" |
| /> |
| </target> |
| |
| <!-- Run the RefreshJarDriftTest --> |
| <target name="refreshjardriftcheck" |
| description="Fix discrepancies between the actual and expected contents of the Derby jar files."> |
| <java |
| fork="true" |
| classname="org.apache.derbyBuild.JarDriftTest" |
| failonerror="true" |
| classpath="${out.build.dir}"> |
| <arg value="refresh"/> |
| </java> |
| </target> |
| |
| <!-- Run the JarDriftTest --> |
| <target name="jardriftcheck" |
| description="Report discrepancies between the actual and expected contents of the Derby jar files."> |
| <java |
| fork="true" |
| classname="org.apache.derbyBuild.JarDriftTest" |
| failonerror="true" |
| classpath="${out.build.dir}" |
| /> |
| </target> |
| |
| <!-- ==================================================================== --> |
| <!-- Build SanityState.java --> |
| <!-- ==================================================================== --> |
| |
| <target name="getstate"> |
| <condition property="needstate"> |
| <or> |
| <not> |
| <equals arg1="${sane}" arg2="${sanity}"/> |
| </not> |
| <not> |
| <available file="${generated.sanity.dir}/SanityState.java"/> |
| </not> |
| </or> |
| </condition> |
| </target> |
| |
| <property name="state.file" value="${generated.sanity.dir}/state.properties"/> |
| <property file="${state.file}"/> |
| |
| <!-- Build SanityState.java --> |
| <target name="state" if="needstate" depends="showenv,getstate"> |
| <echo level="info" message=" Generating SanityState.java..."/> |
| <property name="sane" value="true"/> |
| <filter token="SANE" value="${sane}"/> |
| <copy file="${sanity.dir}/SanityState.tmpl" |
| tofile="${generated.sanity.dir}/SanityState.java" |
| overwrite="yes" filtering="on"/> |
| <property name="header" value="Generated file - do not modify!"/> |
| <propertyfile file="${state.file}" comment="${header}"> |
| <entry key="sanity" value="${sane}" type="string"/> |
| </propertyfile> |
| <delete dir="${sanity.out.dir}"/> |
| </target> |
| |
| <!-- =================================================================== --> |
| <!-- Remove SanityState.java file --> |
| <!-- =================================================================== --> |
| <target name="cleanstate"> |
| <delete dir="${generated.sanity.dir}"/> |
| <delete dir="${sanity.out.dir}"/> |
| </target> |
| |
| <!-- =================================================================== --> |
| <!-- Remove all built objects (except jars) --> |
| <!-- =================================================================== --> |
| <target |
| name="clobber" |
| depends="clean,cleangenerated,cleanstate,cleanreleasefiles" |
| description="Remove all build artifacts." |
| > |
| <delete file="${out.base}/changenumber.properties"/> |
| <delete file="${basedir}/jacoco.exec"/> |
| </target> |
| |
| <!-- =================================================================== --> |
| <!-- Remove the tree of generated intermediate sources --> |
| <!-- =================================================================== --> |
| <target name="cleangenerated"> |
| <delete dir="${generated.dir}"/> |
| </target> |
| |
| <!-- =================================================================== --> |
| <!-- Remove output tree --> |
| <!-- =================================================================== --> |
| <target name="clean"> |
| <delete dir="${out.dir}"/> |
| <delete dir="${generated.dir}"/> |
| <delete dir="${out.storeless.dir}"/> |
| </target> |
| |
| <!-- ==================================================================== --> |
| <!-- Build parsers --> |
| <!-- ==================================================================== --> |
| |
| <!-- Top level target for building both of the javacc parsers --> |
| <target name="parsers"> |
| <ant dir="${derby.tools.dir}/impl/tools" target="parser"/> |
| <ant dir="${derby.engine.dir}/impl/sql" target="parser"/> |
| </target> |
| |
| <target name="genParser" depends="chkparser" unless="parser.done"> |
| <echo level="info" message=" ${msg}"/> |
| <delete> |
| <fileset dir="${outroot}/${directory}" includes="${rmfiles}"/> |
| </delete> |
| <java classname="javacc" |
| classpath="${javacc}" |
| dir="${derbysrc.dir}/${srcroot}/${directory}" |
| fork="yes" |
| failonerror="true"> |
| <arg value="-OUTPUT_DIRECTORY=${outroot}/${directory}"/> |
| <arg value="${jjfile}"/> |
| </java> |
| <!-- Qualify reference to tokenImage to fix issue with inheritence --> |
| <!-- IBM JDK 1.3.1. See DERBY-1078 --> |
| <replaceregexp file="${outroot}/${directory}/${chkfile}" match="tokenImage" |
| replace="${constantsfile}.tokenImage"/> |
| </target> |
| |
| <target name="chkparser"> |
| <uptodate property="parser.done" |
| targetfile="${outroot}/${directory}/${chkfile}" > |
| <srcfiles dir="${derbysrc.dir}/${srcroot}/${directory}" includes="${jjfile}" /> |
| </uptodate> |
| </target> |
| |
| <!-- =================================================================== --> |
| <!-- Build the stub FELIX (OSGI) implementation --> |
| <!-- =================================================================== --> |
| <target name="felixStubs"> |
| <mkdir dir="${out.stubs.dir}"/> |
| <mkdir dir="${out.felix.dir}"/> |
| |
| <javac |
| source="${min.version}" |
| target="${min.version}" |
| nowarn="on" |
| debug="${debug}" debuglevel="${debuglevel}" |
| depend="${depend}" |
| deprecation="${deprecation}" |
| optimize="${optimize}" |
| proceed="${proceed}" |
| verbose="${verbose}" |
| srcdir="${derby.felix.src.dir}" |
| destdir="${out.felix.dir}"> |
| <compilerarg value="-Xlint:unchecked"/> |
| </javac> |
| |
| </target> |
| |
| <!-- =================================================================== --> |
| <!-- Build the Unix shell scripts under bin --> |
| <!-- =================================================================== --> |
| |
| <target name="binscripts" depends="check-binscripts" unless="binscripts.done"> |
| <antcall target="makebinscript"> |
| <param name="script" value="dblook"/> |
| </antcall> |
| |
| <antcall target="makebinscript"> |
| <param name="script" value="ij"/> |
| </antcall> |
| |
| <antcall target="makebinscript"> |
| <param name="script" value="sysinfo"/> |
| </antcall> |
| |
| <antcall target="makebinscript"> |
| <param name="script" value="NetworkServerControl"/> |
| </antcall> |
| |
| <antcall target="makebinscript"> |
| <param name="script" value="startNetworkServer"/> |
| </antcall> |
| |
| <antcall target="makebinscript"> |
| <param name="script" value="stopNetworkServer"/> |
| </antcall> |
| |
| <!-- All the scripts should be executable. --> |
| <chmod perm="+x" dir="${generated.bin.dir}" includes="*"/> |
| |
| </target> |
| |
| <target name="makebinscript"> |
| <concat destfile="${generated.bin.dir}/${script}"> |
| <fileset file="bin/templates/derby_common.sh"/> |
| <fileset file="bin/templates/${script}"/> |
| </concat> |
| </target> |
| |
| <target name="check-binscripts"> |
| <dependset> |
| <srcfileset file="bin/templates/derby_common.sh"/> |
| <targetfileset dir="${generated.bin.dir}"/> |
| </dependset> |
| <uptodate property="binscripts.done"> |
| <srcfiles dir="bin/templates" excludes="derby_common.sh"/> |
| <globmapper from="*" to="${generated.bin.dir}/*"/> |
| </uptodate> |
| </target> |
| |
| <!-- =================================================================== --> |
| <!-- Remove generated message files --> |
| <!-- =================================================================== --> |
| <target name="cleanmessages"> |
| <delete> |
| <fileset dir="${generated.engine.locale.dir}" includes="messages_en.properties"/> |
| </delete> |
| </target> |
| |
| <!-- =================================================================== --> |
| <!-- Class Size Catalog build --> |
| <!-- =================================================================== --> |
| |
| <!-- |
| Create the class size catalog, a java file |
| |
| Note that checking the up-to-date status of the files scanned by |
| ClassSizeCrawler will not always result in the ClassSizeCatalogImpl |
| being updated properly. We would have to be able to scan the full |
| dependency tree. This does prevent recompilation in most cases, |
| and requires it in the most obvious. If there is concern that |
| the ClassSizeCatalogImpl may have changed significantly since the |
| last build, run clobber and rebuild to regenerate it. |
| --> |
| |
| <target name="class_size_catalog" depends="cscuptodate" unless="csc.uptodate"> |
| <java classname="org.apache.derbyBuild.ClassSizeCrawler" |
| fork="yes" |
| failonerror="yes"> |
| <classpath> |
| <pathelement path="${out.build.dir}:${out.engine.dir}"/> |
| </classpath> |
| <jvmarg value="-DWS=${workspace}"/> |
| <jvmarg value="-DclassDir=${out.engine.dir}"/> |
| <jvmarg value="-Dout=${generated.cache.dir}/ClassSizeCatalogImpl.java"/> |
| <jvmarg value="-Dprefix.1=org.apache.derby.iapi.types"/> |
| <jvmarg value="-Dprefix.2=org.apache.derby.impl"/> |
| <arg value="org.apache.derby.iapi.types.DataValueDescriptor"/> |
| <arg value="org.apache.derby.impl.store.raw.data.RecordId"/> |
| <arg value="org.apache.derby.iapi.store.raw.ContainerKey"/> |
| <arg value="org.apache.derby.iapi.services.cache.SizedCacheable"/> |
| <arg value="java.lang.ref.WeakReference"/> |
| <arg value="java.math.BigDecimal"/> |
| <arg value="java.util.ArrayList"/> |
| <arg value="java.util.GregorianCalendar"/> |
| <arg value="java.util.Vector"/> |
| </java> |
| |
| <javac |
| source="${min.version}" |
| target="${min.version}" |
| nowarn="on" |
| debug="${debug}" debuglevel="${debuglevel}" |
| depend="${depend}" |
| deprecation="${deprecation}" |
| optimize="${optimize}" |
| proceed="${proceed}" |
| verbose="${verbose}" |
| srcdir="${generated.src.engine.dir}" |
| destdir="${out.engine.dir}"> |
| <include name="${derby.dir}/iapi/services/cache/ClassSizeCatalogImpl.java"/> |
| <modulepath> |
| <pathelement location="${out.shared.dir}"/> |
| <pathelement location="${out.engine.dir}"/> |
| <pathelement location="${osgi}"/> |
| </modulepath> |
| </javac> |
| |
| </target> |
| |
| <target name="cscuptodate"> |
| <condition property="csc.uptodate"> |
| <and> |
| <uptodate srcfile="${derby.engine.dir}/iapi/types/DataValueDescriptor.java" |
| targetfile="${out.engine.dir}/org/apache/derby/iapi/types/DataValueDescriptor.class"/> |
| <uptodate srcfile="${derby.engine.dir}/impl/store/raw/data/RecordId.java" |
| targetfile="${out.engine.dir}/org/apache/derby/impl/store/raw/data/RecordId.class"/> |
| <uptodate srcfile="${derby.engine.dir}/iapi/store/raw/ContainerKey.java" |
| targetfile="${out.engine.dir}/org/apache/derby/iapi/store/raw/ContainerKey.class"/> |
| <uptodate srcfile="${derby.engine.dir}/iapi/services/cache/SizedCacheable.java" |
| targetfile="${out.engine.dir}/org/apache/derby/iapi/services/cache/SizedCacheable.class"/> |
| <available file="${generated.src.engine.dir}/${derby.dir}/iapi/services/cache/ClassSizeCatalogImpl.java"/> |
| </and> |
| </condition> |
| </target> |
| |
| <!-- =================================================================== --> |
| <!-- Generate sanity.properties --> |
| <!-- =================================================================== --> |
| |
| <target name="sane" depends="make-generated-dirs"> |
| <propertyfile file="${state.file}" comment="${header}"> |
| <entry key="sanity" value="true" type="string"/> |
| </propertyfile> |
| <delete dir="${sanity.out.dir}"/> |
| </target> |
| <target name="insane" depends="make-generated-dirs"> |
| <propertyfile file="${state.file}" comment="${header}"> |
| <entry key="sanity" value="false" type="string"/> |
| </propertyfile> |
| <delete dir="${sanity.out.dir}"/> |
| </target> |
| |
| |
| <!-- =================================================================== --> |
| <!-- Javadoc targets --> |
| <!-- =================================================================== --> |
| |
| <!-- javadoc specific properties --> |
| |
| <property name="public.api.dir" value="${out.javadoc.dir}/publishedapi"/> |
| <property name="javadoc.temp.dir" value="${out.javadoc.dir}/temp"/> |
| <property name="javadoc.exclusions" value="${javadoc.temp.dir}/javadoc_exclusions"/> |
| <property name="javadoc.inclusions" value="${javadoc.temp.dir}/javadoc_inclusions"/> |
| |
| <!-- Helper target to build the JavaDocs and zip them up. |
| Introduced to achieve a higher degree of platform independence when |
| pulling JavaDocs from continuous integration systems and build systems. |
| --> |
| <target name="javadoc-with-bundle" depends="javadoc"> |
| <property name="javadoc.bundle" value="${out.javadoc.dir}/javadocs.zip"/> |
| <delete file="${javadoc.bundle}" quiet="true"/> |
| <zip destfile="${javadoc.bundle}" |
| basedir="${out.javadoc.dir}"/> |
| </target> |
| |
| <target |
| name="javadoc" |
| depends="init,initjars,publishedapi,derbydocs,toolsdocs,grammardocs,demodocs" |
| description="Build all of the javadoc, including the public api, the production javadoc, and the testing javadoc." |
| /> |
| |
| <target name="publishedapi" depends="initjars"> |
| |
| <delete dir="${public.api.dir}"/> |
| <mkdir dir="${public.api.dir}"/> |
| |
| <antcall target="publishedapi-workhorse"/> |
| |
| </target> |
| |
| <!-- ==================================================================== --> |
| <!-- Download Java SE and J2EE's "package-list"s --> |
| <!-- ==================================================================== --> |
| |
| <target name="packagelist_check"> |
| <condition property="javadoc_local.exists"> |
| <and> |
| <available file="${javasedoc.local}/package-list" property="javasedoc.exists"/> |
| <available file="${j2eedoc.local}/package-list" property="j2eedoc.exists"/> |
| </and> |
| </condition> |
| </target> |
| |
| <target name="install_packagelists" depends="packagelist_check" unless="javadoc_local.exists" description="downloads Java SE and J2EE package lists to local cache"> |
| <mkdir dir="${javasedoc.local}"/> |
| <mkdir dir="${j2eedoc.local}"/> |
| <get src="${javasedoc.url}/package-list" dest="${javasedoc.local}/" verbose="true" ignoreerrors="false"/> |
| <get src="${j2eedoc.url}/package-list" dest="${j2eedoc.local}/" verbose="true" ignoreerrors="false"/> |
| </target> |
| |
| <!-- |
| This target used to be called twice, once to build the JDBC3 public api |
| and then a second time to build the JDBC4 api. Now it is only called once, |
| for the single JDBC4+ api. |
| |
| bootClasspath Sensitive to JDBC level. |
| extraApi Extra files to include in the public api. |
| |
| If behind a firewall, the links to Java SE and J2EE javadocs may |
| fail. You can manually download the package-list files into the |
| folders ./packageListLoc-se-8 and ./packageListLoc-j2ee-7 instead |
| to get a correct build. |
| --> |
| <target name="publishedapi-workhorse" depends="initjars,set-doclint,install_packagelists"> |
| |
| <exec executable="javadoc"> |
| <arg value ="-d"/><arg value="${public.api.dir}"/> |
| <arg value="-Xdoclint:none"/> |
| <arg value="-breakiterator"/> |
| <arg value="-overview"/><arg value="${basedir}/published_api_overview.html"/> |
| <arg value="-windowtitle"/><arg value="Apache Derby ${major}.${minor} API Documentation"/> |
| <arg value="-header"/><arg value="Apache Derby ${major}.${minor}"/> |
| <arg value="-footer"/><arg value="${javadoc.Footer}"/> |
| <arg value="-bottom"/><arg value="Apache Derby ${major}.${minor} API Documentation - <i>Copyright &copy; 2004,${copyright.year} The Apache Software Foundation. All Rights Reserved.</i>"/> |
| <arg value="-doctitle"/><arg value="Apache Derby ${major}.${minor} API Documentation"/> |
| <arg value="-linkoffline"/><arg value="${javasedoc.url}"/><arg value="${javasedoc.local}"/> |
| <arg value="-linkoffline"/><arg value="${j2eedoc.url}"/><arg value="${j2eedoc.local}"/> |
| <arg value="--module-source-path"/><arg value="${javasrc.dir}:${generated.src.dir}"/> |
| <arg value="--module-path"/><arg value="${osgi}:${servlet24}:${junit}:${lucene_core}:${lucene_a_co}:${lucene_qp}:${json_simple}"/> |
| <arg value="--module"/><arg value="${module.name.client},${module.name.runner}"/> |
| <arg value="${derby.shared.src.dir}/org/apache/derby/shared/common/security/SystemPermission.java"/> |
| <arg value="${derby.engine.src.dir}/org/apache/derby/agg/Aggregator.java"/> |
| <arg value="${derby.engine.src.dir}/org/apache/derby/authentication/UserAuthenticator.java"/> |
| <arg value="${derby.engine.src.dir}/org/apache/derby/catalog/SequencePreallocator.java"/> |
| <arg value="${derby.engine.src.dir}/org/apache/derby/mbeans/CacheManagerMBean.java"/> |
| <arg value="${derby.engine.src.dir}/org/apache/derby/mbeans/JDBCMBean.java"/> |
| <arg value="${derby.engine.src.dir}/org/apache/derby/mbeans/Management.java"/> |
| <arg value="${derby.engine.src.dir}/org/apache/derby/mbeans/ManagementMBean.java"/> |
| <arg value="${derby.engine.src.dir}/org/apache/derby/mbeans/VersionMBean.java"/> |
| <arg value="${derby.engine.src.dir}/org/apache/derby/vti/AwareVTI.java"/> |
| <arg value="${derby.engine.src.dir}/org/apache/derby/vti/ForeignTableVTI.java"/> |
| <arg value="${derby.engine.src.dir}/org/apache/derby/vti/ForwardingVTI.java"/> |
| <arg value="${derby.engine.src.dir}/org/apache/derby/vti/RestrictedVTI.java"/> |
| <arg value="${derby.engine.src.dir}/org/apache/derby/vti/Restriction.java"/> |
| <arg value="${derby.engine.src.dir}/org/apache/derby/vti/StringColumnVTI.java"/> |
| <arg value="${derby.engine.src.dir}/org/apache/derby/vti/VTICosting.java"/> |
| <arg value="${derby.engine.src.dir}/org/apache/derby/vti/VTIContext.java"/> |
| <arg value="${derby.engine.src.dir}/org/apache/derby/vti/VTIEnvironment.java"/> |
| <arg value="${derby.engine.src.dir}/org/apache/derby/vti/VTITemplate.java"/> |
| <arg value="${derby.drda.src.dir}/org/apache/derby/drda/NetServlet.java"/> |
| <arg value="${derby.drda.src.dir}/org/apache/derby/drda/NetworkServerControl.java"/> |
| <arg value="${derby.drda.src.dir}/org/apache/derby/mbeans/drda/NetworkServerMBean.java"/> |
| <arg value="${derby.tools.src.dir}/org/apache/derby/jdbc/BasicClientConnectionPoolDataSource40.java"/> |
| <arg value="${derby.tools.src.dir}/org/apache/derby/jdbc/BasicClientDataSource40.java"/> |
| <arg value="${derby.tools.src.dir}/org/apache/derby/jdbc/BasicClientXADataSource40.java"/> |
| <arg value="${derby.tools.src.dir}/org/apache/derby/jdbc/BasicEmbeddedConnectionPoolDataSource40.java"/> |
| <arg value="${derby.tools.src.dir}/org/apache/derby/jdbc/BasicEmbeddedDataSource40.java"/> |
| <arg value="${derby.tools.src.dir}/org/apache/derby/jdbc/BasicEmbeddedXADataSource40.java"/> |
| <arg value="${derby.tools.src.dir}/org/apache/derby/jdbc/ClientConnectionPoolDataSource.java"/> |
| <arg value="${derby.tools.src.dir}/org/apache/derby/jdbc/ClientDataSource.java"/> |
| <arg value="${derby.tools.src.dir}/org/apache/derby/jdbc/ClientDriver.java"/> |
| <arg value="${derby.tools.src.dir}/org/apache/derby/jdbc/ClientXADataSource.java"/> |
| <arg value="${derby.tools.src.dir}/org/apache/derby/jdbc/EmbeddedConnectionPoolDataSource.java"/> |
| <arg value="${derby.tools.src.dir}/org/apache/derby/jdbc/EmbeddedDataSource.java"/> |
| <arg value="${derby.tools.src.dir}/org/apache/derby/jdbc/EmbeddedDriver.java"/> |
| <arg value="${derby.tools.src.dir}/org/apache/derby/jdbc/EmbeddedXADataSource.java"/> |
| <arg value="${derby.tools.src.dir}/org/apache/derby/tools/dblook.java"/> |
| <arg value="${derby.tools.src.dir}/org/apache/derby/tools/ij.java"/> |
| <arg value="${derby.tools.src.dir}/org/apache/derby/tools/sysinfo.java"/> |
| <arg value="${derby.optional.src.dir}/org/apache/derby/optional/api/LuceneIndexDescriptor.java"/> |
| <arg value="${derby.optional.src.dir}/org/apache/derby/optional/api/LuceneUtils.java"/> |
| <arg value="${derby.optional.src.dir}/org/apache/derby/optional/api/SimpleJsonUtils.java"/> |
| <arg value="${derby.optional.src.dir}/org/apache/derby/optional/api/SimpleJsonVTI.java"/> |
| </exec> |
| |
| <!-- Copy the logo needed by the Doctitle attribute above --> |
| <copy file="${javadoctools.dir}/logo/derby_logo64.png" |
| todir="${public.api.dir}/resources"/> |
| |
| <!-- Copy the module diagrams used by the overview --> |
| <antcall target="copyJava9ModuleDiagrams"><param name="svg.dir" value="${public.api.dir}"/></antcall> |
| <antcall target="copyJava11ModuleDiagrams"><param name="svg.dir" value="${public.api.dir}"/></antcall> |
| |
| </target> |
| |
| <!-- Copy module diagrams to the correct place for Java 9 and Java 10 --> |
| <target name="copyJava9ModuleDiagrams" unless="atLeastJava11"> |
| <copy todir="${svg.dir}"> |
| <fileset dir="${javadoctools.dir}/moduleDiagrams"/> |
| </copy> |
| </target> |
| |
| <!-- Copy module diagrams to the correct place for Java 11 --> |
| <target name="copyJava11ModuleDiagrams" if="atLeastJava11"> |
| <copy file="${javadoctools.dir}/moduleDiagrams/client.svg" |
| todir="${svg.dir}/org.apache.derby.client"/> |
| <copy file="${javadoctools.dir}/moduleDiagrams/commons.svg" |
| todir="${svg.dir}/org.apache.derby.commons"/> |
| <copy file="${javadoctools.dir}/moduleDiagrams/engine.svg" |
| todir="${svg.dir}/org.apache.derby.engine"/> |
| <copy file="${javadoctools.dir}/moduleDiagrams/optionaltools.svg" |
| todir="${svg.dir}/org.apache.derby.optionaltools"/> |
| <copy file="${javadoctools.dir}/moduleDiagrams/runner.svg" |
| todir="${svg.dir}/org.apache.derby.runner"/> |
| <copy file="${javadoctools.dir}/moduleDiagrams/server.svg" |
| todir="${svg.dir}/org.apache.derby.server"/> |
| <copy file="${javadoctools.dir}/moduleDiagrams/tools.svg" |
| todir="${svg.dir}/org.apache.derby.tools"/> |
| |
| <available property="test.javadoc.exists" file="${svg.dir}/org.apache.derby.tests"/> |
| <antcall target="copyJava11testModuleDiagram"/> |
| |
| </target> |
| |
| <!-- Copy module diagram for the tests module to the correct place for Java 11 --> |
| <target name="copyJava11testModuleDiagram" if="test.javadoc.exists"> |
| <copy file="${javadoctools.dir}/moduleDiagrams/tests.svg" |
| todir="${svg.dir}/org.apache.derby.tests"/> |
| </target> |
| |
| <target name="derbydocs" depends="initjars,set-doclint"> |
| |
| <delete dir="${out.javadoc.dir}/engine"/> |
| <mkdir dir="${out.javadoc.dir}/engine"/> |
| |
| <exec executable="javadoc"> |
| <arg value ="-d"/><arg value="${out.javadoc.dir}/engine"/> |
| <arg value="-Xdoclint:none"/> |
| <arg value="-private"/> |
| <arg value="-breakiterator"/> |
| <arg value="-overview"/><arg value="${basedir}/published_api_overview.html"/> |
| <arg value="-windowtitle"/><arg value="Apache Derby V${major}.${minor} Internals"/> |
| <arg value="-header"/><arg value="Apache Derby ${major}.${minor}"/> |
| <arg value="-footer"/><arg value="${javadoc.Footer}"/> |
| <arg value="-bottom"/><arg value="Apache Derby V${major}.${minor} Internals - <i>Copyright &copy; 2004,${copyright.year} The Apache Software Foundation. All Rights Reserved.</i>"/> |
| <arg value="-doctitle"/><arg value="Apache Derby V${major}.${minor} Internals"/> |
| <arg value="-tagletpath"/><arg value="${out.build.dir}"/> |
| <arg value="-taglet"/><arg value="org.apache.derbyBuild.javadoc.FormatIdTaglet"/> |
| <arg value="-taglet"/><arg value="org.apache.derbyBuild.javadoc.PurposeTaglet"/> |
| <arg value="-taglet"/><arg value="org.apache.derbyBuild.javadoc.UpgradeTaglet"/> |
| <arg value="-taglet"/><arg value="org.apache.derbyBuild.javadoc.DiskLayoutTaglet"/> |
| <arg value="-taglet"/><arg value="org.apache.derbyBuild.javadoc.EndFormatTaglet"/> |
| <arg value="--module-source-path"/><arg value="${javasrc.dir}:${generated.src.dir}"/> |
| <arg value="--module-path"/><arg value="${osgi}:${servlet24}:${lucene_core}:${lucene_a_co}:${lucene_qp}:${json_simple}:${junit}"/> |
| <arg value="--show-module-contents"/><arg value="all"/> |
| <arg value="--module"/><arg value="${module.name.commons},${module.name.engine},${module.name.client},${module.name.server},${module.name.tools},${module.name.optionaltools},${module.name.runner},${module.name.tests}"/> |
| </exec> |
| |
| <!-- Copy the module diagrams used by the module overviews --> |
| <antcall target="copyJava9ModuleDiagrams"> |
| <param name="svg.dir" value="${out.javadoc.dir}/engine"/> |
| </antcall> |
| <antcall target="copyJava11ModuleDiagrams"> |
| <param name="svg.dir" value="${out.javadoc.dir}/engine"/> |
| </antcall> |
| |
| </target> |
| |
| <target name="toolsdocs"> |
| |
| <delete dir="${out.javadoc.dir}/tools"/> |
| <mkdir dir="${out.javadoc.dir}/tools"/> |
| |
| <antcall target="dojjdocs"> |
| <param name="jjtodoc" value="${derby.tools.dir}/impl/tools/ij/ij.jj"/> |
| <param name="jjdoctarget" value="${out.javadoc.dir}/tools/ij.html"/> |
| </antcall> |
| |
| </target> |
| |
| <target name="demodocs" depends="init,set-doclint"> |
| |
| <delete dir="${out.javadoc.dir}/demo"/> |
| <mkdir dir="${out.javadoc.dir}/demo"/> |
| |
| <javadoc |
| additionalparam="-J-mx500M" |
| packagenames="org.apache.derbyDemo.vtis.*" |
| access="private" |
| breakiterator="yes" |
| useexternalfile="yes" |
| classpath="${out.all.dir};" |
| destdir="${out.javadoc.dir}/demo" |
| windowtitle="Apache Derby Demos" |
| doctitle="Apache Derby Demos" |
| > |
| <fileset dir="${derby.demo.src.dir}/vtis/java"/> |
| <arg value="${xarg.doclint}"/> |
| </javadoc> |
| |
| |
| </target> |
| |
| <target name="grammardocs"> |
| |
| <delete dir="${out.javadoc.dir}/language"/> |
| <mkdir dir="${out.javadoc.dir}/language"/> |
| |
| <antcall target="dojjdocs"> |
| <param name="jjtodoc" value="${derby.engine.dir}/impl/sql/compile/sqlgrammar.jj"/> |
| <param name="jjdoctarget" value="${out.javadoc.dir}/language/sqlgrammar.html"/> |
| </antcall> |
| |
| </target> |
| |
| <target name="dojjdocs"> |
| |
| <java classname="jjdoc" fork="yes"> |
| <classpath path="${javatools.dir}/javacc.jar"/> |
| <arg value="-NOONE_TABLE"/> |
| <arg value="-output_file=${jjdoctarget}"/> |
| <arg value="${jjtodoc}"/> |
| </java> |
| |
| </target> |
| |
| <target name="cleandocs"> |
| |
| <delete dir="${out.javadoc.dir}"/> |
| |
| </target> |
| |
| <!-- Set the doclint variable depending on whether this is Java 8. Use a harmless arg if not on Java 8 --> |
| <target name="set-doclint"> |
| <condition property="xarg.doclint" value="-Xdoclint:none" else="-J-mx500M"> |
| <available classname="java.sql.SQLType"/> |
| </condition> |
| </target> |
| |
| |
| <!-- =================================================================== --> |
| <!-- Eclipse Plugin --> |
| <!-- =================================================================== --> |
| <target name="plugin" depends= "buildjars"> |
| <echo level="info" message="Begining Derby Eclipse plugin build"/> |
| <property name="plugin.tmp.dir" value ="plugintmp"/> |
| <mkdir dir="${derby.jar.dir}/${plugin.tmp.dir}"/> |
| |
| <java classname="org.apache.derbyBuild.eclipse.DerbyEclipsePlugin"> |
| <arg value="${derby.jar.dir}/${plugin.tmp.dir}"/> |
| <classpath> |
| <pathelement path="${out.build.dir}"/> |
| </classpath> |
| </java> |
| |
| <property file="${derby.jar.dir}/${plugin.tmp.dir}/plugintmp.properties"/> |
| <echo level="info" message="Derby Eclipse plugin build: ${plugin.derby.version.build.number}"/> |
| |
| <property name="plugin.dir" value ="plugins"/> |
| <property name="plugin.core.dir" value ="${plugin.derby.core}_${plugin.derby.version}"/> |
| |
| <mkdir dir="${derby.jar.dir}/${plugin.tmp.dir}/${plugin.dir}/${plugin.core.dir}"/> |
| |
| <copy todir="${derby.jar.dir}/${plugin.tmp.dir}/${plugin.dir}/${plugin.core.dir}"> |
| <fileset dir="${derby.jar.dir}" includes="derby*.jar" excludes="derbyTesting.jar,derbyLocale*.jar,derbyrun.jar"/> |
| </copy> |
| <copy todir="${derby.jar.dir}/${plugin.tmp.dir}/${plugin.dir}/${plugin.core.dir}"> |
| <fileset dir="${derby.jar.dir}/${plugin.tmp.dir}" includes="plugin*.xml"/> |
| </copy> |
| |
| <copy todir="${derby.jar.dir}/${plugin.tmp.dir}/${plugin.dir}/${plugin.core.dir}" file="LICENSE"/> |
| <copy todir="${derby.jar.dir}/${plugin.tmp.dir}/${plugin.dir}/${plugin.core.dir}" file="NOTICE"/> |
| |
| <!-- copy the plugin properties for use by the release target --> |
| <copy file="${derby.jar.dir}/${plugin.tmp.dir}/plugintmp.properties" todir="${release.base}"/> |
| |
| <delete file="${derby.jar.dir}/${plugin.tmp.dir}/plugintmp.properties"/> |
| <delete file="${derby.jar.dir}/${plugin.tmp.dir}/plugin.xml"/> |
| |
| <!-- ZIP to create the final Derby plug-in --> |
| |
| <zip zipfile="${derby.jar.dir}/${plugin.derby.core.zipfile}_${plugin.derby.version}.zip" compress="true" basedir="${derby.jar.dir}/${plugin.tmp.dir}"/> |
| <delete dir="${derby.jar.dir}/${plugin.tmp.dir}"/> |
| </target> |
| |
| <!-- =================================================================== --> |
| <!-- Jar targets --> |
| <!-- =================================================================== --> |
| |
| <target name="buildjarsclean" depends="cleanjars,buildjars"/> |
| |
| <target |
| name="buildjars" |
| depends="initjars,derbysharedjar,derbyjar,derbynetjar,derbyclientjar,derbytoolsjar,derbyoptionaltoolsjar,derbyrunjar,derbywar,derbylocalejars,derbytestingjar,jardriftcheck" |
| description="Build all of the Derby jar files." |
| |
| /> |
| |
| <target name="initjars" depends="setsanityname,getsvnversion,setCompilerProperties"> |
| <property name="derby.jar.dir" value="${jarsdist.dir}/${sanity.name}"/> |
| <property name="derby.jar.topdir" value="${jarsdist.dir}"/> |
| <mkdir dir="${derby.jar.dir}"/> |
| <mkdir dir="${derby.jar.dir}/lists"/> |
| |
| <tstamp> |
| <format |
| property="javadoc.ts" |
| pattern="EEE yyyy-MM-dd HH:mm:ssZ" |
| locale="en, us"/> |
| </tstamp> |
| <property |
| name="javadoc.Footer" |
| value="Built on ${javadoc.ts}, from revision ${changenumber}"/> |
| |
| </target> |
| |
| |
| <!-- - - - - - - - - - - - - - - derby.jar target - - - - - - - - - - - --> |
| |
| <target name="derbyjar" depends="initjars"> |
| |
| <echo level="info" message="Beginning derby.jar ${sanity.name} build"/> |
| |
| <!-- purge lists directory to avoid unnecessary content from other jars --> |
| <delete> |
| <fileset dir="${derby.jar.dir}/lists" includes="**/*"/> |
| </delete> |
| |
| <mkdir dir="${derby.jar.dir}/lists/org/apache/derby"/> |
| <java classname="org.apache.derbyBuild.propertyconfig" fork="yes"> |
| <arg value="${out.engine.dir}/org/apache/derby/modules.properties"/> |
| <arg value="derby"/> |
| <arg value="${derby.jar.dir}/lists/org/apache/derby/modules.properties"/> |
| <classpath> |
| <pathelement path="${out.build.dir}"/> |
| </classpath> |
| </java> |
| |
| <!-- This next antcall generates a new properties file for the build. --> |
| <!-- If a changenumber is passed into the build via a property file or --> |
| <!-- on the command line, the build number will be inserted into the --> |
| <!-- build at this point. --> |
| |
| <echo level="info" message=" creating new DBMS.properties file"/> |
| <antcall target="infowriter"> |
| <param name="info.iname" value="Apache Derby Embedded Engine"/> |
| <param name="info.ename" value="Apache Derby"/> |
| <param name="info.buildnumber" value="${changenumber}"/> |
| <param name="info.productfile" value="derby.jar"/> |
| <param name="info.file" value="${out.engine.dir}/org/apache/derby/info/engine/info.properties"/> |
| </antcall> |
| |
| <!-- copy boilerplate common to derby jar files --> |
| <antcall target="meta-inf-common"/> |
| |
| <!-- declare the embedded driver for autoloading by the JDBC 4 DriverManager --> |
| <antcall target="declare-autoloadable-driver"> |
| <param name="driver.name" value="org.apache.derby.iapi.jdbc.AutoloadedDriver"/> |
| </antcall> |
| |
| <antcall target="make-core-derbyjar-manifest"> |
| <param name="manifest.file" value="${derby.jar.dir}/lists/smf.mf"/> |
| </antcall> |
| |
| <!-- add extra osgi bits to manifest --> |
| |
| <manifest file="${derby.jar.dir}/lists/smf.mf" mode="update"> |
| <attribute name="Bundle-Activator" value="org.apache.derby.osgi.EmbeddedActivator"/> |
| <attribute name="Bundle-SymbolicName" value="derby"/> |
| <attribute name="DynamicImport-Package" value="*"/> |
| <attribute name="Export-Package" value="org.apache.derby.authentication,org.apache.derby.database,org.apache.derby.io,org.apache.derby.jdbc,org.apache.derby.vti"/> |
| </manifest> |
| |
| <jar destfile="${derby.jar.dir}/derby.jar" |
| basedir="${out.engine.dir}" |
| excludes="**/D_*,**/*.done,**/*Test.class,**/_Suite.class,**/modules.properties" |
| compress="true" |
| filesonly="true" |
| manifest="${derby.jar.dir}/lists/smf.mf"> |
| <fileset dir="${derby.jar.dir}/lists" |
| includes="META-INF/**, |
| org/apache/derby/modules.properties"/> |
| </jar> |
| |
| </target> |
| |
| <!-- Add localized jars to the classpath --> |
| <target name="make-locale-classpath-manifest"> |
| <manifest file="${manifest.file}" mode="${manifest.mode}"> |
| <attribute name="Class-Path" value="derbyshared.jar derbyLocale_cs.jar derbyLocale_de_DE.jar derbyLocale_es.jar derbyLocale_fr.jar derbyLocale_hu.jar derbyLocale_it.jar derbyLocale_ja_JP.jar derbyLocale_ko_KR.jar derbyLocale_pl.jar derbyLocale_pt_BR.jar derbyLocale_ru.jar derbyLocale_zh_CN.jar derbyLocale_zh_TW.jar"/> |
| </manifest> |
| </target> |
| |
| <target name="make-core-derbyjar-manifest"> |
| |
| <manifest file="${manifest.file}"> |
| <attribute name="Bundle-Vendor" value="Apache Software Foundation"/> |
| <attribute name="Bundle-Name" value="Apache Derby ${major}.${minor}"/> |
| <attribute name="Bundle-Version" value="${major}.${minor}.${maint}.${changenumber}"/> |
| <attribute name="Bundle-ManifestVersion" value="2"/> |
| <attribute name="Sealed" value="true"/> |
| <section name="org/apache/derby/jdbc/"> |
| <attribute name="Sealed" value="false"/> |
| </section> |
| </manifest> |
| |
| <antcall target="make-locale-classpath-manifest"> |
| <param name="manifest.file" value="${manifest.file}"/> |
| <param name="manifest.mode" value="update"/> |
| </antcall> |
| |
| </target> |
| |
| <!-- - - - - - - - - - - - - derbytools.jar target - - - - - - - - - - --> |
| |
| <target name="derbytoolsjar" depends="setsanityname"> |
| |
| <echo level="info" message="Beginning derbytools.jar ${sanity.name} build"/> |
| |
| <!-- purge lists directory to avoid unnecessary content from other jars --> |
| <delete> |
| <fileset dir="${derby.jar.dir}/lists" includes="**/*"/> |
| </delete> |
| |
| <echo level="info" message=" creating new tools info.properties file "/> |
| <antcall target="infowriter"> |
| <param name="info.buildnumber" value="${changenumber}"/> |
| <param name="info.iname" value="Apache Derby Tools"/> |
| <param name="info.ename" value="Apache Derby"/> |
| <param name="info.productfile" value="derbytools.jar"/> |
| <param name="info.file" value="${out.tools.dir}/org/apache/derby/info/tools/info.properties"/> |
| </antcall> |
| |
| <!-- copy boilerplate common to derby jar files --> |
| <antcall target="meta-inf-common"/> |
| <antcall target="make-locale-classpath-manifest"> |
| <param name="manifest.file" value="${derby.jar.dir}/lists/smftools.mf"/> |
| <param name="manifest.mode" value="replace"/> |
| </antcall> |
| |
| <manifest file="${derby.jar.dir}/lists/smftools.mf"> |
| <attribute name="Class-Path" value="derby.jar derbyclient.jar derbynet.jar"/> |
| </manifest> |
| |
| <delete file="${derby.jar.dir}/derbytools.jar"/> |
| <jar destfile="${derby.jar.dir}/derbytools.jar" |
| basedir="${out.tools.dir}" |
| excludes="org/apache/derby/impl/tools/ij/SimpleCharStream.class, |
| org/apache/derby/impl/tools/ij/mt*.class" |
| manifest="${derby.jar.dir}/lists/smftools.mf" |
| compress="true" |
| filesonly="true"> |
| <fileset dir="${derby.tools.src.dir}" |
| includes="org/apache/derby/impl/tools/planexporter/resources/*.xsl"/> |
| <fileset dir="${derby.jar.dir}/lists" |
| includes="META-INF/**"/> |
| </jar> |
| </target> |
| |
| <!-- - - - - - - - - - - - - derbyoptionaltools.jar target - - - - - - - - - - --> |
| |
| <target name="derbyoptionaltoolsjar" depends="setsanityname"> |
| |
| <echo level="info" message="Beginning derbyoptionaltools.jar ${sanity.name} build"/> |
| |
| <!-- purge lists directory to avoid unnecessary content from other jars --> |
| <delete> |
| <fileset dir="${derby.jar.dir}/lists" includes="**/*"/> |
| </delete> |
| |
| <echo level="info" message=" creating new optionaltools info.properties file "/> |
| <antcall target="infowriter"> |
| <param name="info.buildnumber" value="${changenumber}"/> |
| <param name="info.iname" value="Apache Derby Optional Tools"/> |
| <param name="info.ename" value="Apache Derby"/> |
| <param name="info.productfile" value="derbyoptionaltools.jar"/> |
| <param name="info.file" value="${out.optional.dir}/org/apache/derby/optional/info.properties"/> |
| </antcall> |
| |
| <!-- copy boilerplate common to derby jar files --> |
| <antcall target="meta-inf-common"/> |
| <manifest file="${derby.jar.dir}/lists/smfoptionaltools.mf"> |
| <attribute name="Bundle-Vendor" value="Apache Software Foundation"/> |
| <attribute name="Bundle-Name" value="Apache Derby ${major}.${minor}"/> |
| <attribute name="Bundle-Version" value="${major}.${minor}.${maint}.${changenumber}"/> |
| <attribute name="Bundle-ManifestVersion" value="2"/> |
| <attribute name="Sealed" value="true"/> |
| </manifest> |
| |
| <antcall target="make-locale-classpath-manifest"> |
| <param name="manifest.file" value="${derby.jar.dir}/lists/smfoptionaltools.mf"/> |
| <param name="manifest.mode" value="update"/> |
| </antcall> |
| |
| <delete file="${derby.jar.dir}/derbyoptionaltools.jar"/> |
| <jar destfile="${derby.jar.dir}/derbyoptionaltools.jar" |
| basedir="${out.optional.dir}" |
| manifest="${derby.jar.dir}/lists/smfoptionaltools.mf" |
| compress="true" |
| filesonly="true"> |
| <fileset dir="${derby.jar.dir}/lists" |
| includes="META-INF/**"/> |
| </jar> |
| </target> |
| |
| <!-- - - - - - - - - - - - - - derbynet.jar target - - - - - - - - - - - --> |
| |
| <target name="derbynetjar" depends="setsanityname"> |
| |
| <echo level="info" message="Beginning derbynet.jar ${sanity.name} build"/> |
| |
| <!-- purge lists directory to avoid unnecessary content from other jars --> |
| <delete> |
| <fileset dir="${derby.jar.dir}/lists" includes="**/*"/> |
| </delete> |
| |
| <echo level="info" message=" creating new net info.properties file "/> |
| <antcall target="infowriter"> |
| <param name="info.buildnumber" value="${changenumber}"/> |
| <param name="info.iname" value="Apache Derby Network Server"/> |
| <param name="info.ename" value="Apache Derby"/> |
| <param name="info.productfile" value="derbynet.jar"/> |
| <param name="info.file" value="${out.drda.dir}/org/apache/derby/info/net/info.properties"/> |
| </antcall> |
| |
| <!-- copy boilerplate common to derby jar files --> |
| <antcall target="meta-inf-common"/> |
| |
| <manifest file="${derby.jar.dir}/lists/smfnet.mf"> |
| <attribute name="Main-Class" value="org.apache.derby.drda.NetworkServerControl"/> |
| <attribute name="Class-Path" value="derby.jar derbyshared.jar"/> |
| <attribute name="Sealed" value="true"/> |
| </manifest> |
| |
| <delete file="${derby.jar.dir}/derbynet.jar"/> |
| <jar destfile="${derby.jar.dir}/derbynet.jar" |
| basedir="${out.drda.dir}" |
| compress="true" |
| filesonly="true" |
| manifest="${derby.jar.dir}/lists/smfnet.mf"> |
| <fileset dir="${derby.jar.dir}/lists" |
| includes="META-INF/**"/> |
| </jar> |
| |
| </target> |
| |
| <!-- - - - - - - - - - - - - - derbyclient.jar target - - - - - - - - --> |
| |
| <target name="derbyclientjar" depends="setsanityname,initjars"> |
| |
| <echo level="info" message="Beginning derbyclient.jar ${sanity.name} build"/> |
| |
| <!-- purge lists directory to avoid unnecessary content from other jars --> |
| <delete> |
| <fileset dir="${derby.jar.dir}/lists" includes="**/*"/> |
| </delete> |
| |
| <mkdir dir="${out.client.dir}/org/apache/derby/info/"/> |
| <antcall target="infowriter"> |
| <param name="info.buildnumber" value="${changenumber}"/> |
| <param name="info.iname" value="Apache Derby Network Client"/> |
| <param name="info.ename" value="Apache Derby"/> |
| <param name="info.productfile" value="codeline"/> |
| <param name="info.file" value="${out.client.dir}/org/apache/derby/info/client/info.properties"/> |
| </antcall> |
| |
| <!-- copy boilerplate common to derby jar files --> |
| <antcall target="meta-inf-common"/> |
| <antcall target="make-core-derbyjar-manifest"> |
| <param name="manifest.file" value="${derby.jar.dir}/lists/smfclient.mf"/> |
| </antcall> |
| |
| <!-- add extra osgi bits to manifest --> |
| |
| <manifest file="${derby.jar.dir}/lists/smfclient.mf" mode="update"> |
| <attribute name="Bundle-SymbolicName" value="derbyclient"/> |
| <attribute name="DynamicImport-Package" value="*"/> |
| <attribute name="Export-Package" value="org.apache.derby.jdbc"/> |
| </manifest> |
| |
| <!-- declare the client driver for autoloading by the JDBC 4 DriverManager --> |
| <antcall target="declare-autoloadable-driver"> |
| <param name="driver.name" value="org.apache.derby.client.ClientAutoloadedDriver"/> |
| </antcall> |
| |
| <delete file="${derby.jar.dir}/derbyclient.jar"/> |
| |
| <jar destfile="${derby.jar.dir}/derbyclient.jar" |
| basedir="${out.client.dir}" |
| compress="true" |
| filesonly="true" |
| update="true" |
| excludes="org/apache/derby/loc/clientmessages_qq_PP_testOnly.properties, |
| **/*Test.class, |
| **/_Suite.class" |
| manifest="${derby.jar.dir}/lists/smfclient.mf"> |
| <fileset dir="${derby.jar.dir}/lists" |
| includes="META-INF/**"/> |
| </jar> |
| </target> |
| |
| |
| <!-- - - - - - - - - - - - - - derbyshared.jar target - - - - - - - - - - - --> |
| |
| <target name="derbysharedjar" depends="setsanityname"> |
| |
| <echo level="info" message="Beginning derbyshared.jar ${sanity.name} build"/> |
| |
| <!-- purge lists directory to avoid unnecessary content from other jars --> |
| <delete> |
| <fileset dir="${derby.jar.dir}/lists" includes="**/*"/> |
| </delete> |
| |
| <echo level="info" message=" creating new shared.properties file "/> |
| <antcall target="infowriter"> |
| <param name="info.buildnumber" value="${changenumber}"/> |
| <param name="info.iname" value="Apache Derby Shared Utilities"/> |
| <param name="info.ename" value="Apache Derby"/> |
| <param name="info.productfile" value="derbyshared.jar"/> |
| <param name="info.file" value="${out.shared.dir}/org/apache/derby/info/shared/info.properties"/> |
| </antcall> |
| |
| <!-- copy boilerplate common to derby jar files --> |
| <antcall target="meta-inf-common"/> |
| <antcall target="make-locale-classpath-manifest"> |
| <param name="manifest.file" value="${derby.jar.dir}/lists/smfshared.mf"/> |
| <param name="manifest.mode" value="update"/> |
| </antcall> |
| |
| <delete file="${derby.jar.dir}/derbyshared.jar"/> |
| <jar destfile="${derby.jar.dir}/derbyshared.jar" |
| basedir="${out.shared.dir}" |
| compress="true" |
| filesonly="true" |
| manifest="${derby.jar.dir}/lists/smfshared.mf"/> |
| |
| </target> |
| |
| <!-- - - - - - - - - - - - - - derbyrun.jar target - - - - - - - - - --> |
| |
| <target name="derbyrunjar" depends="setsanityname,initjars"> |
| |
| <echo level="info" message="Beginning derbyrun.jar build"/> |
| |
| <!-- purge lists directory to avoid unnecessary content from other jars --> |
| <delete> |
| <fileset dir="${derby.jar.dir}/lists" includes="**/*"/> |
| </delete> |
| |
| <!-- copy boilerplate common to derby jar files --> |
| <antcall target="meta-inf-common"/> |
| |
| <manifest file="${derby.jar.dir}/lists/smfcmd.mf"> |
| <attribute name="Main-Class" value="org.apache.derby.run.run"/> |
| <attribute name="Class-Path" value="derby.jar derbyclient.jar derbytools.jar derbynet.jar derbyoptionaltools.jar derbyshared.jar"/> |
| </manifest> |
| |
| <jar destfile="${derby.jar.dir}/derbyrun.jar" |
| basedir="${out.run.dir}" |
| compress="true" |
| filesonly="true" |
| update="true" |
| manifest="${derby.jar.dir}/lists/smfcmd.mf"> |
| <fileset dir="${derby.jar.dir}/lists" |
| includes="META-INF/LICENSE,META-INF/NOTICE"/> |
| </jar> |
| |
| </target> |
| <!-- - - - - - - - - - - - - - derby.war target - - - - - - - - - - - --> |
| |
| <target name="derbywar" depends="initjars"> |
| |
| <echo level="info" message="Beginning derby.war build"/> |
| <delete file="${derby.jar.dir}/derby.war"/> |
| <zip zipfile="${derby.jar.dir}/derby.war" compress="true" basedir="tools/j2ee/derby"/> |
| </target> |
| |
| <!-- - - - - - - - - - - - - - locale jar targets - - - - - - - - - - - --> |
| |
| <target name="derbylocalejars" depends="initjars"> |
| |
| <!-- purge lists directory to avoid unnecessary content from other jars --> |
| <delete> |
| <fileset dir="${derby.jar.dir}/lists" includes="**/*"/> |
| </delete> |
| |
| <!-- copy boilerplate common to derby jar files --> |
| <antcall target="meta-inf-common"/> |
| |
| <!-- call localejar for each locale --> |
| |
| <antcall target="localejar"> |
| <param name="locale.iname" value="cs"/> |
| <param name="locale.ename" value="Czech/International [cs]"/> |
| </antcall> |
| <antcall target="localejar"> |
| <param name="locale.iname" value="de_DE"/> |
| <param name="locale.ename" value="German/Germany [de_DE]"/> |
| </antcall> |
| <antcall target="localejar"> |
| <param name="locale.iname" value="es"/> |
| <param name="locale.ename" value="Spanish/International [es]"/> |
| </antcall> |
| <antcall target="localejar"> |
| <param name="locale.iname" value="fr"/> |
| <param name="locale.ename" value="French/International [fr]"/> |
| </antcall> |
| <antcall target="localejar"> |
| <param name="locale.iname" value="hu"/> |
| <param name="locale.ename" value="Hungarian/International [hu]"/> |
| </antcall> |
| <antcall target="localejar"> |
| <param name="locale.iname" value="it"/> |
| <param name="locale.ename" value="Italian/International [it]"/> |
| </antcall> |
| <antcall target="localejar"> |
| <param name="locale.iname" value="ja_JP"/> |
| <param name="locale.ename" value="Japanese/Japan [ja_JP]"/> |
| </antcall> |
| <antcall target="localejar"> |
| <param name="locale.iname" value="ko_KR"/> |
| <param name="locale.ename" value="Korean/Korea [ko_KR]"/> |
| </antcall> |
| <antcall target="localejar"> |
| <param name="locale.iname" value="pl"/> |
| <param name="locale.ename" value="Polish/International [pl]"/> |
| </antcall> |
| <antcall target="localejar"> |
| <param name="locale.iname" value="pt_BR"/> |
| <param name="locale.ename" value="Portuguese/Brazil [pt_BR]"/> |
| </antcall> |
| <antcall target="localejar"> |
| <param name="locale.iname" value="ru"/> |
| <param name="locale.ename" value="Russian/International [ru]"/> |
| </antcall> |
| <antcall target="localejar"> |
| <param name="locale.iname" value="zh_CN"/> |
| <param name="locale.ename" value="Simplified_Chinese/PR_China [zh_CN]"/> |
| </antcall> |
| <antcall target="localejar"> |
| <param name="locale.iname" value="zh_TW"/> |
| <param name="locale.ename" value="Chinese/Taiwan_Traditional [zh_TW]"/> |
| </antcall> |
| </target> |
| |
| <target name="localejar"> |
| |
| <echo level="info" message="Building derbyLocale_${locale.iname}.jar"/> |
| |
| <!-- generate new locale property file --> |
| <property name="locale.output.dir" value="${out.dir}/${locale.stub}${locale.iname}/org/apache/derby/info/${locale.stub}${locale.iname}"/> |
| <antcall target="localeinfowriter"> |
| <param name="info.buildnumber" value="${changenumber}"/> |
| <param name="info.iname" value="_${locale.iname}"/> |
| <param name="info.ename" value="${locale.ename}"/> |
| <param name="info.productfile" value="derbyLocale_${locale.iname}.jar"/> |
| <param name="info.file" value="${locale.output.dir}/info.properties"/> |
| </antcall> |
| |
| <jar destfile="${derby.jar.dir}/derbyLocale_${locale.iname}.jar" |
| basedir="${out.dir}/${locale.stub}${locale.iname}" |
| compress="true" |
| filesonly="true" |
| > |
| <fileset dir="${derby.jar.dir}/lists" |
| includes="META-INF/LICENSE,META-INF/NOTICE"/> |
| </jar> |
| </target> |
| |
| <!-- - - - - - - - - - - - derby testing jar target - - - - - - - - - - --> |
| |
| <target name="derbytestingjar" depends="initjars,ckderbytesting" if="derbyTesting.available"> |
| <!-- generate tsting info property file --> |
| <antcall target="tstinginfowriter"> |
| <param name="info.buildnumber" value="${changenumber}"/> |
| <param name="info.iname" value="tsting"/> |
| <param name="info.productfile" value="derbyTesting.jar"/> |
| <param name="info.file" value="${out.testing.dir}/org/apache/derby/info/tsting/info.properties"/> |
| </antcall> |
| |
| <delete file="${derby.jar.dir}/derbyTesting.jar"/> |
| <jar destfile="${derby.jar.dir}/derbyTesting.jar" |
| basedir="${out.testing.dir}" |
| compress="true" |
| filesonly="true"/> |
| |
| </target> |
| |
| <target name="ckderbytesting"> |
| <available file="${out.testing.dir}/org/apache/derbyTesting" |
| property="derbyTesting.available"/> |
| </target> |
| |
| <target name="buildtestinginfo"> |
| <antcall target="tstinginfowriter"> |
| <param name="info.buildnumber" value="1"/> |
| <param name="info.iname" value="tsting"/> |
| <param name="info.productfile" value="derbyTesting.jar"/> |
| <param name="info.file" value="${out.testing.dir}/org/apache/derby/info/tsting/info.properties"/> |
| </antcall> |
| </target> |
| |
| <target name="tstinginfowriter"> |
| <propertyfile file="${info.file}" comment="${copyright.comment}"> |
| <entry key="derby.tsting.version.major" value="${major}"/> |
| <entry key="derby.tsting.version.minor" value="${minor}"/> |
| <entry key="derby.tsting.version.maint" value="${maint}"/> |
| <entry key="derby.tsting.build.number" value="${info.buildnumber}"/> |
| <entry key="derby.tsting.technology.name" value="${info.iname}"/> |
| <entry key="derby.tsting.external.name" value="${info.iname}"/> |
| <entry key="derby.version.beta" value="${beta}"/> |
| <entry key="derby.tsting.vendor" value="${vendor}"/> |
| <entry key="derby.product.file" value="${info.productfile}"/> |
| </propertyfile> |
| </target> |
| |
| <!-- - - - - - - - - - - - jar build helper targets - - - - - - - - - --> |
| |
| <target name="setsanityname" depends="init,setissane,sanitynamesane,sanitynameinsane"/> |
| |
| <target name="sanitynamesane" if="is.sane"> |
| <property name="sanity.name" value="sane"/> |
| </target> |
| |
| <target name="sanitynameinsane" unless="is.sane"> |
| <property name="sanity.name" value="insane"/> |
| </target> |
| |
| |
| <target name="getsvnversion" unless="changenumber"> |
| <exec executable="svnversion" |
| failifexecutionfails="no" |
| output="${out.base}/changenumber.properties"> |
| <arg value="${basedir}"/> |
| <arg value="-n"/> |
| </exec> |
| <loadfile srcFile="${out.base}/changenumber.properties" |
| failonerror="false" |
| property="changenumber"> |
| <filterchain> |
| <striplinebreaks/> |
| </filterchain> |
| </loadfile> |
| <condition property="changenumber" value="???"> |
| <not> |
| <isset property="changenumber"/> |
| </not> |
| </condition> |
| <echo level="info" message="Revision number set to ${changenumber}."/> |
| </target> |
| |
| <target name="cleanjars" depends="setsanityname"> |
| <delete dir="${jarsdist.dir}/${sanity.name}"/> |
| </target> |
| |
| <!-- - - - - - - - - - - - release build helper targets - - - - - - - - - --> |
| |
| <!-- Update both subversion clients for building release distributions --> |
| <target name="updatesvnclients" depends="updatesvncode,updatesvndoc"/> |
| |
| <target name="updatesvncode"> |
| <exec executable="svn"> |
| <arg value="update"/> |
| <arg value="${basedir}"/> |
| </exec> |
| </target> |
| <target name="updatesvndoc"> |
| <exec executable="svn"> |
| <arg value="update"/> |
| <arg value="${docs.root}"/> |
| </exec> |
| </target> |
| |
| <!-- Verify that both the code and docs clients have no in-flight edits --> |
| <target name="checksvnclientsclean" unless="debug.release.build"> |
| |
| <antcall target="checksvnclean"> |
| <param name="client.root" value="${docs.root}"/> |
| </antcall> |
| |
| <antcall target="checksvnclean"> |
| <param name="client.root" value="${basedir}"/> |
| </antcall> |
| |
| </target> |
| |
| <!-- Check that a subversion client has no files checked out --> |
| <target name="checksvnclean"> |
| <exec executable="svn" |
| outputproperty="svnstatusoutput" |
| > |
| <arg value="status"/> |
| <arg value="${client.root}"/> |
| </exec> |
| |
| <fail message="Cannot build a release. The ${client.root} subversion client is not clean: ${svnstatusoutput}"> |
| <condition> |
| <not><equals arg1="${svnstatusoutput}" arg2="" trim="true"/></not> |
| </condition> |
| </fail> |
| </target> |
| |
| <!-- Checkin the generated error documentation to the docs client --> |
| <target name="copyerrordocs"> |
| |
| <!-- Build the SQLState tables --> |
| <antcall target="all"> |
| <param name="sane" value="true"/> |
| <param name="sanity" value="true"/> |
| <param name="sanity.name" value="sane"/> |
| <param name="deprecation" value="off"/> |
| </antcall> |
| |
| <property name="refdir" value="${docs.root}/src/ref"/> |
| |
| <copy file="${sqlstateTables}" todir="${refdir}"/> |
| |
| <antcall target="checkinfile"> |
| <param name="checkinComment" value="Check in SQLState tables as part of building a release."/> |
| <param name="fileName" value="${refdir}/rrefexcept71493.dita"/> |
| </antcall> |
| |
| </target> |
| |
| <!-- Checkin the generated security policy documentation to the docs client --> |
| <target name="copy-security-policy-docs"> |
| |
| <property name="sec.dir" value="${docs.root}/src/security"/> |
| <property name="gen.dita.dir" value="${generated.src.engine.dir}/${derby.dir}/security"/> |
| |
| <copy todir="${sec.dir}"> |
| <fileset dir="${gen.dita.dir}" includes="*.dita"/> |
| </copy> |
| |
| <antcall target="checkinfile"> |
| <param name="checkinComment" value="Check in rsecbasicclient.dita as part of building a release."/> |
| <param name="fileName" value="${sec.dir}/rsecbasicclient.dita"/> |
| </antcall> |
| <antcall target="checkinfile"> |
| <param name="checkinComment" value="Check in rsecbasicengine.dita as part of building a release."/> |
| <param name="fileName" value="${sec.dir}/rsecbasicengine.dita"/> |
| </antcall> |
| <antcall target="checkinfile"> |
| <param name="checkinComment" value="Check in rsecbasicserver.dita as part of building a release."/> |
| <param name="fileName" value="${sec.dir}/rsecbasicserver.dita"/> |
| </antcall> |
| <antcall target="checkinfile"> |
| <param name="checkinComment" value="Check in rsecbasictools.dita as part of building a release."/> |
| <param name="fileName" value="${sec.dir}/rsecbasictools.dita"/> |
| </antcall> |
| <antcall target="checkinfile"> |
| <param name="checkinComment" value="Check in rsecpolicysample.dita as part of building a release."/> |
| <param name="fileName" value="${sec.dir}/rsecpolicysample.dita"/> |
| </antcall> |
| |
| </target> |
| |
| <!-- Build the NOTICE file and check it in --> |
| <target name="buildnotice"> |
| |
| <property file="${properties.dir}/release.properties"/> |
| <property name="noticefile" value="${basedir}/NOTICE"/> |
| |
| <!-- plug in the current copyright year --> |
| <copy overwrite="true" file="${derby.notice.src.dir}/preamble.txt" tofile="${noticefile}"> |
| <filterset> |
| <filter token="COPYRIGHT_YEAR" value="${copyright.year}"/> |
| </filterset> |
| </copy> |
| |
| <antcall target="appendnotice"><param name="sourcefile" value="initialgrant.txt"/></antcall> |
| <antcall target="appendnotice"><param name="sourcefile" value="nisttestgrant.txt"/></antcall> |
| <antcall target="appendnotice"><param name="sourcefile" value="felix.txt"/></antcall> |
| <antcall target="appendnotice"><param name="sourcefile" value="lucene.txt"/></antcall> |
| <antcall target="appendnotice"><param name="sourcefile" value="simpleJson.txt"/></antcall> |
| |
| <antcall target="checkinfile"> |
| <param name="checkinComment" value="Check in NOTICE as part of building a release."/> |
| <param name="fileName" value="${noticefile}"/> |
| </antcall> |
| |
| </target> |
| |
| <!-- |
| Append a file to the notice file |
| |
| Args: |
| noticefile Destination NOTICE file |
| sourcefile Source file to append. |
| --> |
| <target name="appendnotice"> |
| <concat destfile="${noticefile}" append="true"> |
| <filelist files="${derby.notice.src.dir}/separator.txt,${derby.notice.src.dir}/${sourcefile}"/> |
| </concat> |
| </target> |
| |
| <!-- |
| Checkin in-flight edits. Do not checkin files if we are running in debug mode. |
| |
| Args: |
| checkinComment This is the subversion checkin comment. |
| fileName This is the name of the file to checking (could be the root of the client). |
| --> |
| <target name="checkinfile" unless="debug.release.build"> |
| |
| <property name="checkinMessage" value="${release.base}/tmp.checkin.message"/> |
| <property name="fullComment" value="[RELEASE CHECKIN] ${checkinComment}"/> |
| |
| <echo file="${checkinMessage}" message="${fullComment}"/> |
| <echo message="Checking in ${fileName} with this comment: ${fullComment}"/> |
| |
| <exec executable="svn" failonerror="true"> |
| <arg value="commit"/> |
| <arg value="--username"/> |
| <arg value="${svn.username}"/> |
| <arg value="--password"/> |
| <arg value="${svn.password}"/> |
| <arg value="-F"/> |
| <arg value="${checkinMessage}"/> |
| <arg value="${fileName}"/> |
| </exec> |
| |
| <!-- Bring the docs client up to date again --> |
| <antcall target="updatesvndoc"/> |
| |
| </target> |
| |
| <!-- Targets used to specify the correct ant executable --> |
| <target name="ant-exec-windows" unless="isUnix"> |
| <property name="ant.exec" value="ant.bat"/> |
| </target> |
| |
| <target name="ant-exec-unix" unless="isWindows"> |
| <property name="ant.exec" value="ant"/> |
| </target> |
| |
| <!-- Build the user documentation --> |
| <target name="builduserdocs" depends="ant-exec-windows,ant-exec-unix,checkdocsroot"> |
| |
| <property file="${properties.dir}/release.properties"/> |
| <property file="${properties.dir}/defaultcompiler.properties"/> |
| |
| <antcall target="getsvnversion"/> |
| |
| <ant dir="${docs.root}" target="clobber"/> |
| |
| <exec executable="${ant.exec}" dir="${docs.root}"> |
| <env key="ANT_OPTS" value="-Xmx512m"/> |
| <env key="CLASSPATH" path="${docs.root}/lib/fop.jar"/> |
| <arg value="-Drelease.id.short=${eversion}"/> |
| <arg value="-Drelease.id.long=${release.id.long}"/> |
| <arg value="-Dcopyright.year=${copyright.year}"/> |
| <arg value="-Dminimum.jdk=${min.version}"/> |
| <arg value="-Dsubversion.revision=${changenumber}"/> |
| <arg value="all"/> |
| </exec> |
| |
| </target> |
| |
| <!-- - - - - - - - - - - - - - targets for populating META-INF - - - - - - - - - - - --> |
| |
| <!-- copy boilerplate common to derby jar files --> |
| |
| <target name="meta-inf-common"> |
| |
| <mkdir dir="${derby.jar.dir}/lists/META-INF"/> |
| <copy todir="${derby.jar.dir}/lists/META-INF"> |
| <fileset dir="${basedir}" includes="LICENSE*,NOTICE*"/> |
| </copy> |
| |
| </target> |
| |
| <!-- |
| Declare the jdbc driver for autoloading under JDBC 4. |
| |
| Parameters: |
| |
| driver.name Class name of driver to be autoloaded by JDBC 4 DriverManager |
| --> |
| |
| <target name="declare-autoloadable-driver"> |
| |
| <mkdir dir="${derby.jar.dir}/lists/META-INF/services"/> |
| <echo level="info" file="${derby.jar.dir}/lists/META-INF/services/java.sql.Driver">${driver.name} |
| </echo> |
| |
| </target> |
| |
| |
| <!-- =================================================================== --> |
| <!-- IDE build targets used by the projects under tools/ide/ --> |
| <!-- =================================================================== --> |
| |
| <!-- Target used by NetBeans to build all code modules and all jars. --> |
| <target name="nb-buildall" depends="all,buildjarsclean"/> |
| |
| |
| <!-- =================================================================== --> |
| <!-- Nightly build targets --> |
| <!-- =================================================================== --> |
| |
| <target name="buildworld"> |
| |
| <property name="proceed" value="true"/> |
| |
| <!-- Build insane product jars --> |
| <antcall target="clobber"/> |
| <antcall target="insane"/> |
| <antcall target="all"/> |
| <antcall target="buildjars"/> |
| |
| <!-- Build sane product jars --> |
| <antcall target="clobber"/> |
| <antcall target="sane"/> |
| <antcall target="all"/> |
| <antcall target="buildjars"/> |
| |
| <!-- Build everything else --> |
| <antcall target="javadoc"/> |
| |
| </target> |
| |
| <!-- |
| cibuild - target suitable for continuous integration builds. |
| Clobbers/cleans everything it can, then builds the jars |
| and the javadoc. |
| --> |
| <target name="cibuild" |
| depends="clobber,cleanjars,cleandocs,junit-clean,gump_all"/> |
| |
| <target name="gump_all" depends="all,buildjars,javadoc"/> |
| |
| <target name="snapshot" depends="clobber,snapshotError,init,initjars"> |
| <antcall target="insane"/> |
| <antcall target="all"/> |
| <antcall target="buildjars"/> |
| <antcall target="publishedapi"/> |
| |
| <java classname="org.apache.derbyBuild.maintversion2props"> |
| <classpath path="${out.build.dir}"/> |
| <arg value="${out.engine.dir}/org/apache/derby/info/engine/info.properties"/> |
| <arg value="${snapshot.dir}/maintversion.properties"/> |
| </java> |
| <property file="${snapshot.dir}/maintversion.properties"/> |
| <zip destfile="${snapshot.dir}/db-derby-snapshot-${major}.${minor}.${interim}.${point}-${changenumber}.zip"> |
| <zipfileset prefix="db-derby-snapshot-${major}.${minor}.${interim}.${point}-${changenumber}/lib" dir="${jarsdist.dir}/insane" includes="*.jar,*.war"/> |
| <zipfileset prefix="db-derby-snapshot-${major}.${minor}.${interim}.${point}-${changenumber}" dir="${basedir}" includes="bin/**,LICENSE,NOTICE,README,javadoc/publishedapi/**" excludes="bin/templates/**"/> |
| </zip> |
| <tar destfile="${snapshot.dir}/db-derby-snapshot-${major}.${minor}.${interim}.${point}-${changenumber}.tar.gz" |
| compression="gzip"> |
| <tarfileset prefix="db-derby-snapshot-${major}.${minor}.${interim}.${point}-${changenumber}/lib" dir="${jarsdist.dir}/insane" includes="*.jar,*.war"/> |
| <tarfileset prefix="db-derby-snapshot-${major}.${minor}.${interim}.${point}-${changenumber}" dir="${basedir}" includes="bin/**,LICENSE,NOTICE,README,javadoc/publishedapi/**" excludes="bin/templates/**"/> |
| </tar> |
| |
| <!-- debug archives - DERBY-178 --> |
| <zip destfile="${snapshot.dir}/db-derby-snapshot-debug-${major}.${minor}.${interim}.${point}-${changenumber}.zip"> |
| <zipfileset prefix="db-derby-snapshot-debug-${major}.${minor}.${interim}.${point}-${changenumber}/lib" dir="${jarsdist.dir}/sane" includes="*.jar,*.war"/> |
| <zipfileset prefix="db-derby-snapshot-debug-${major}.${minor}.${interim}.${point}-${changenumber}" dir="${basedir}" includes="bin/**,LICENSE,NOTICE,README,javadoc/publishedapi/**" excludes="bin/templates/**"/> |
| </zip> |
| <tar destfile="${snapshot.dir}/db-derby-snapshot-debug-${major}.${minor}.${interim}.${point}-${changenumber}.tar.gz" |
| compression="gzip"> |
| <tarfileset prefix="db-derby-snapshot-debug-${major}.${minor}.${interim}.${point}-${changenumber}/lib" dir="${jarsdist.dir}/sane" includes="*.jar,*.war"/> |
| <tarfileset prefix="db-derby-snapshot-debug-${major}.${minor}.${interim}.${point}-${changenumber}" dir="${basedir}" includes="bin/**,LICENSE,NOTICE,README,javadoc/publishedapi/**" excludes="bin/templates/**"/> |
| </tar> |
| |
| </target> |
| |
| <target name="snapshotError" if="is.sane"> |
| <echo level="error" message="Please run the snapshot using an insane build,"/> |
| <echo level="error" message="but don't forget to generate a sane build into jars/sane also."/> |
| <echo level="error" message="Either run "ant -Dsane=false snapshot", or run"/> |
| <echo level="error" message="the insane target before running the snapshot target."/> |
| <echo level="error" message="For more information, see:"/> |
| <echo level="error" message="http://wiki.apache.org/db-derby/DerbySnapshotOrRelease"/> |
| |
| <echo level="error" message=""/> |
| <fail message="Exiting snapshot build..."/> |
| </target> |
| |
| <!-- =================================================================== --> |
| <!-- Junit utility targets --> |
| <!-- =================================================================== --> |
| |
| <!-- Basic initialization for Junit tests (doesn't configure classpath). --> |
| <target name="junit-init-nocp"> |
| <tstamp prefix="derby.junit"> |
| <format property="standardtime" pattern="yyyy-MM-dd hh:mm aa zzz"/> |
| </tstamp> |
| <property name="derby.junit.jvm" value="${java.home}/bin/java"/> |
| <property name="derby.junit.timestamp" value="${derby.junit.DSTAMP}_${derby.junit.TSTAMP}"/> |
| <mkdir dir="junit_${derby.junit.timestamp}/testout"/> |
| |
| <!-- Set a dummy value for the JaCoCo agent option when running without |
| JaCoCo for code coverage. Required because ant doesn't (yet) handle |
| empty variables passed to jvmarg. See also target jacoco-enable. --> |
| <!-- The purpose of the system property derby.tests.jacoco.agent is to |
| allow the Derby test framework to pass on the correct -javaagent |
| option when spawning VMs. --> |
| <condition property="derby.tests.jacoco.agent" value="-Dderby.dummy.prop=X"> |
| <not> |
| <isset property="derby.tests.jacoco.agent"/> |
| </not> |
| </condition> |
| </target> |
| |
| <target name="junit-init" depends="junit-init-nocp"> |
| <!-- Set up the default classpath to use with JUnit tests. junit tasks |
| should include the following entries in the order specified in |
| their nested classpath structure: |
| <fileset dir="${derby.junit.test.jars}" includes="*.jar"/> |
| <pathelement path="${derby.junit.classpath}"/> |
| |
| The preferences: |
| 1) User-specified derby.junit.classpath |
| 2) Jars (insane preferred over sane) |
| 3) classes-directory |
| |
| Note also that the user's CLASSPATH environment variable is appended |
| to the JUnit classpath, but in most cases Derby classes here will be |
| shadowed by one of the above entries. It is recommended to not have |
| any Derby classes in the CLASSPATH environment variable. |
| --> |
| |
| <!-- See if the jars have been built |
| (skipped if derby.junit.classpath is set) --> |
| <condition property="tmp.jars" value="${jarsdist.dir}/insane"> |
| <and> |
| <available file="${jarsdist.dir}/insane/"/> |
| <not> |
| <isset property="derby.junit.classpath"/> |
| </not> |
| </and> |
| </condition> |
| <condition property="tmp.jars" value="${jarsdist.dir}/sane"> |
| <and> |
| <available file="${jarsdist.dir}/sane/"/> |
| <not> |
| <isset property="derby.junit.classpath"/> |
| </not> |
| </and> |
| </condition> |
| |
| <!-- Use classes-directory if not using jars and not overriden by user --> |
| <condition property="derby.junit.classpath" value="${out.all.dir}"> |
| <not> |
| <or> |
| <isset property="derby.junit.classpath"/> |
| <isset property="tmp.jars"/> |
| </or> |
| </not> |
| </condition> |
| |
| <!-- Property to trigger informational message. --> |
| <condition property="emit.junit.lowmem.jars"> |
| <isset property="tmp.jars"/> |
| </condition> |
| |
| <!-- We have to set this to something, so point it to a src dir that |
| always exists (with no jars). --> |
| <condition property="derby.junit.test.jars" value="${basedir}/java/build"> |
| <not> |
| <isset property="tmp.jars"/> |
| </not> |
| </condition> |
| <condition property="derby.junit.test.jars" value="${tmp.jars}"> |
| <isset property="tmp.jars"/> |
| </condition> |
| |
| <property file="${properties.dir}/extrapath.properties"/> |
| |
| <antcall target="emit-junit-classpath-jars"/> |
| <antcall target="emit-junit-classpath"/> |
| </target> |
| |
| <target name='emit-junit-classpath-jars' if='emit.junit.lowmem.jars'> |
| <echo message="Running with jars: ${derby.junit.test.jars}" level='info'/> |
| <echo message="CLASSPATH (environment variable): ${env.CLASSPATH}" level='info'/> |
| </target> |
| |
| <target name='emit-junit-classpath' unless='emit.junit.lowmem.jars'> |
| <echo message="Running with classes or user specified classpath: ${derby.junit.classpath}" level='info'/> |
| <echo message="CLASSPATH (environment variable): ${env.CLASSPATH}" level='info'/> |
| </target> |
| |
| <target name="junit-sysinfo" depends="junit-init"> |
| <java classname="org.apache.derby.tools.sysinfo" |
| output="junit_${derby.junit.timestamp}/sysinfo.txt"> |
| <classpath path="${out.all.dir}"/> |
| </java> |
| </target> |
| |
| <target |
| name="junit-clean" |
| description="Remove the output produced by the JUnit tests." |
| > |
| <delete includeEmptyDirs="true"> |
| <fileset dir="${basedir}" includes="junit*/**"/> |
| </delete> |
| </target> |
| <!-- |
| Autoloading tests need to be run in a separate JVM thus |
| as a separate test. This target runs the test a number of |
| times, each with a different setting for jdbc.drivers. |
| When run with jar files on java SE 6/JDBC 4 the run without |
| setting jdbc.drivers will test that autoloading from |
| the manifest file works. The settings with jdbc.drivers |
| test the auto-loading in non JDBC 4 environments and |
| that setting jdbc.drivers in JDBC 4 does not cause issues. |
| --> |
| |
| <target name="junit-core" depends="junit-init"> |
| <condition property="derbyTesting.oldReleasePath" value=""> |
| <not> |
| <isset property="derbyTesting.oldReleasePath"/> |
| </not> |
| </condition> |
| <!-- |
| Specifying max heap size (maxmemory) for JVMs spawned by this |
| target, since the default max heap size on most systems is |
| currently too low for some of the test suites. See DERBY-2988. |
| --> |
| <junit printsummary="on" |
| fork="yes" forkmode="perTest" |
| jvm="${derby.junit.jvm}" maxmemory="512m" |
| showoutput="yes" |
| dir="junit_${derby.junit.timestamp}" |
| tempdir="junit_${derby.junit.timestamp}" |
| errorproperty="tests.failed" |
| failureproperty="tests.failed"> |
| <jvmarg value="${derby.tests.jacoco.agent}"/> |
| <sysproperty key="derby.tests.jacoco.agent" value="${derby.tests.jacoco.agent}"/> |
| <sysproperty key="derbyTesting.oldReleasePath" value="${derbyTesting.oldReleasePath}"/> |
| <!-- This property is needed to keep EMMA silent when measuring codecoverage --> |
| <sysproperty key="emma.verbosity.level" value="silent"/> |
| <!-- Pass on properties from the command line to the spawned VM. --> |
| <syspropertyset id="system-properties-passed-on"> |
| <propertyref builtin="commandline"/> |
| </syspropertyset> |
| <!-- Use the system property below to debug lacking java security permissions --> |
| <!-- <sysproperty key="java.security.debug" value="access:failure"/> --> |
| <formatter type="xml"/> |
| <test name="org.apache.derbyTesting.junit.EnvTest" |
| todir="junit_${derby.junit.timestamp}"/> |
| <test name="org.apache.derbyTesting.functionTests.tests.derbynet._Suite" |
| todir="junit_${derby.junit.timestamp}"/> |
| <test name="org.apache.derbyTesting.functionTests.tests.tools._Suite" |
| todir="junit_${derby.junit.timestamp}"/> |
| <test name="org.apache.derbyTesting.functionTests.tests.demo._Suite" |
| todir="junit_${derby.junit.timestamp}"/> |
| <test name="org.apache.derbyTesting.functionTests.tests.lang._Suite" |
| todir="junit_${derby.junit.timestamp}"/> |
| <test name="org.apache.derbyTesting.functionTests.tests.jdbcapi._Suite" |
| todir="junit_${derby.junit.timestamp}"/> |
| <test name="org.apache.derbyTesting.functionTests.tests.store._Suite" |
| todir="junit_${derby.junit.timestamp}"/> |
| <test name="org.apache.derbyTesting.functionTests.tests.engine._Suite" |
| todir="junit_${derby.junit.timestamp}"/> |
| <test name="org.apache.derbyTesting.functionTests.tests.replicationTests.ReplicationSuite" |
| todir="junit_${derby.junit.timestamp}"/> |
| <test name="org.apache.derbyTesting.unitTests.junit._Suite" |
| todir="junit_${derby.junit.timestamp}"/> |
| <test name="org.apache.derbyTesting.functionTests.tests.upgradeTests._Suite" |
| todir="junit_${derby.junit.timestamp}"/> |
| <test name="org.apache.derbyTesting.functionTests.suites.EncryptionSuite" |
| todir="junit_${derby.junit.timestamp}"/> |
| |
| <classpath> |
| <fileset dir="${derby.junit.test.jars}" includes="*.jar"/> |
| <pathelement path="${derby.junit.classpath}"/> |
| <!-- ant 1.7 finds junit.jar if it is on the classpath of the <junit> task --> |
| <pathelement location="${javatools.dir}/junit.jar"/> |
| <pathelement location="${lucene_core}"/> |
| <pathelement location="${lucene_a_co}"/> |
| <pathelement location="${lucene_qp}"/> |
| <pathelement location="${json_simple}"/> |
| </classpath> |
| </junit> |
| </target> |
| |
| <!-- |
| Run the simplest form of any system test. Provides a sanity |
| check that the functionality works. This target is not intended |
| to have long running tests, just enough to ensure the test works |
| and Derby works with the test. |
| --> |
| <target name="junit-system-mini" depends="junit-init"> |
| <!-- |
| Specifying max heap size (maxmemory) for JVMs spawned by this |
| target, since the default max heap size on most systems is |
| currently too low for some of the test suites. See DERBY-2988. |
| --> |
| <junit printsummary="on" |
| fork="yes" forkmode="perTest" |
| jvm="${derby.junit.jvm}" maxmemory="512m" |
| showoutput="yes" |
| dir="junit_${derby.junit.timestamp}" |
| tempdir="junit_${derby.junit.timestamp}" |
| errorproperty="tests.failed" |
| failureproperty="tests.failed"> |
| <jvmarg value="${derby.tests.jacoco.agent}"/> |
| <sysproperty key="derby.tests.jacoco.agent" value="${derby.tests.jacoco.agent}"/> |
| <!-- Pass on properties from the command line to the spawned VM. --> |
| <syspropertyset id="system-properties-passed-on"> |
| <propertyref builtin="commandline"/> |
| </syspropertyset> |
| <formatter type="xml"/> |
| |
| <test name="org.apache.derbyTesting.system.oe.test.OETest" |
| todir="junit_${derby.junit.timestamp}"/> |
| <classpath> |
| <fileset dir="${derby.junit.test.jars}" includes="*.jar"/> |
| <pathelement path="${derby.junit.classpath}"/> |
| <pathelement location="${javatools.dir}/junit.jar"/> |
| </classpath> |
| </junit> |
| </target> |
| |
| <target name="junit-jdbc4" depends="junit-init"> |
| <antcall target="junit-jdbc4-workhorse"/> |
| </target> |
| |
| <!-- |
| This target is called by junit-jdbc after reading the VM level. |
| --> |
| <target name="junit-jdbc4-workhorse" depends="junit-init"> |
| <junit printsummary="on" |
| fork="yes" forkmode="perTest" |
| showoutput="yes" |
| dir="junit_${derby.junit.timestamp}" |
| tempdir="junit_${derby.junit.timestamp}" |
| errorproperty="tests.failed" |
| failureproperty="tests.failed"> |
| <jvmarg value="${derby.tests.jacoco.agent}"/> |
| <sysproperty key="derby.tests.jacoco.agent" value="${derby.tests.jacoco.agent}"/> |
| <!-- Pass on properties from the command line to the spawned VM. --> |
| <syspropertyset id="system-properties-passed-on"> |
| <propertyref builtin="commandline"/> |
| </syspropertyset> |
| <formatter type="xml"/> |
| |
| <test name="org.apache.derbyTesting.functionTests.tests.jdbc4._Suite" |
| todir="junit_${derby.junit.timestamp}"/> |
| <classpath> |
| <fileset dir="${derby.junit.test.jars}" includes="*.jar"/> |
| <pathelement path="${derby.junit.classpath}"/> |
| <pathelement location="${javatools.dir}/junit.jar"/> |
| </classpath> |
| </junit> |
| </target> |
| |
| <!-- low memory suite runs with 16MB heap --> |
| <target name="junit-lowmem" depends="junit-init"> |
| <junit printsummary="on" |
| fork="yes" forkmode="perTest" |
| jvm="${derby.junit.jvm}" maxmemory="16m" |
| showoutput="yes" |
| dir="junit_${derby.junit.timestamp}" |
| tempdir="junit_${derby.junit.timestamp}" |
| errorproperty="tests.failed" |
| failureproperty="tests.failed"> |
| <jvmarg value="${derby.tests.jacoco.agent}"/> |
| <sysproperty key="derby.tests.jacoco.agent" value="${derby.tests.jacoco.agent}"/> |
| <!-- Pass on properties from the command line to the spawned VM. --> |
| <syspropertyset id="system-properties-passed-on"> |
| <propertyref builtin="commandline"/> |
| </syspropertyset> |
| <formatter type="xml"/> |
| |
| <test name="org.apache.derbyTesting.functionTests.tests.memory._Suite" |
| todir="junit_${derby.junit.timestamp}"/> |
| <classpath> |
| <fileset dir="${derby.junit.test.jars}" includes="*.jar"/> |
| <pathelement path="${derby.junit.classpath}"/> |
| <pathelement location="${javatools.dir}/junit.jar"/> |
| </classpath> |
| </junit> |
| </target> |
| |
| <!-- Runs Derby's JMX tests --> |
| <target name="junit-jmx" depends="junit-init"> |
| <junit printsummary="on" |
| fork="yes" forkmode="once" |
| showoutput="yes" |
| dir="junit_${derby.junit.timestamp}" |
| tempdir="junit_${derby.junit.timestamp}" |
| errorproperty="tests.failed" |
| failureproperty="tests.failed"> |
| <jvmarg value="${derby.tests.jacoco.agent}"/> |
| <sysproperty key="derby.tests.jacoco.agent" value="${derby.tests.jacoco.agent}"/> |
| <!-- Pass on properties from the command line to the spawned VM. --> |
| <syspropertyset id="system-properties-passed-on"> |
| <propertyref builtin="commandline"/> |
| </syspropertyset> |
| <formatter type="xml"/> |
| |
| <test name="org.apache.derbyTesting.functionTests.tests.management._Suite" |
| todir="junit_${derby.junit.timestamp}"/> |
| |
| <classpath> |
| <fileset dir="${derby.junit.test.jars}" includes="*.jar"/> |
| <pathelement path="${derby.junit.classpath}"/> |
| <pathelement location="${javatools.dir}/junit.jar"/> |
| </classpath> |
| </junit> |
| </target> |
| |
| <!-- Run the package private tests against the classes directories. --> |
| <target name="junit-pptesting" depends="junit-init-nocp"> |
| <junit printsummary="on" |
| fork="yes" forkmode="once" |
| showoutput="yes" |
| dir="junit_${derby.junit.timestamp}" |
| tempdir="junit_${derby.junit.timestamp}" |
| errorproperty="tests.failed" |
| failureproperty="tests.failed"> |
| <jvmarg value="${derby.tests.jacoco.agent}"/> |
| <sysproperty key="derby.tests.jacoco.agent" value="${derby.tests.jacoco.agent}"/> |
| <!-- Pass on properties from the command line to the spawned VM. --> |
| <syspropertyset id="system-properties-passed-on"> |
| <propertyref builtin="commandline"/> |
| </syspropertyset> |
| <formatter type="xml"/> |
| |
| <test name="org.apache.derby.PackagePrivateTestSuite" |
| todir="junit_${derby.junit.timestamp}"/> |
| |
| <classpath> |
| <pathelement location="${out.pptesting.dir}"/> |
| <pathelement location="${javatools.dir}/junit.jar"/> |
| <pathelement location="${out.build.dir}"/> |
| <pathelement location="${out.client.dir}"/> |
| <pathelement location="${out.drda.dir}"/> |
| <pathelement location="${out.engine.dir}"/> |
| <pathelement location="${out.optional.dir}"/> |
| <pathelement location="${out.run.dir}"/> |
| <pathelement location="${out.shared.dir}"/> |
| <pathelement location="${out.testing.dir}"/> |
| <pathelement location="${out.tools.dir}"/> |
| |
| <pathelement location="${out.dir}/${locale.stub}cs}"/> |
| <pathelement location="${out.dir}/${locale.stub}de_DE}"/> |
| <pathelement location="${out.dir}/${locale.stub}es}"/> |
| <pathelement location="${out.dir}/${locale.stub}fr}"/> |
| <pathelement location="${out.dir}/${locale.stub}hu}"/> |
| <pathelement location="${out.dir}/${locale.stub}it}"/> |
| <pathelement location="${out.dir}/${locale.stub}ja_JP}"/> |
| <pathelement location="${out.dir}/${locale.stub}ko_KR}"/> |
| <pathelement location="${out.dir}/${locale.stub}pl}"/> |
| <pathelement location="${out.dir}/${locale.stub}pt_BR}"/> |
| <pathelement location="${out.dir}/${locale.stub}ru}"/> |
| <pathelement location="${out.dir}/${locale.stub}zh_CN}"/> |
| <pathelement location="${out.dir}/${locale.stub}zh_TW}"/> |
| </classpath> |
| </junit> |
| </target> |
| |
| <!-- Run a single junit test or suite --> |
| <target name="junit-single" depends="junit-init"> |
| <condition property="noTestclassSet" value=""> |
| <not> |
| <isset property="derby.junit.testclass"/> |
| </not> |
| </condition> |
| <fail if="noTestclassSet">No testclass selected! Set property derby.junit.testclass</fail> |
| <junit printsummary="on" |
| fork="yes" forkmode="perTest" |
| jvm="${derby.junit.jvm}" maxmemory="512m" |
| showoutput="yes" |
| dir="junit_${derby.junit.timestamp}" |
| tempdir="junit_${derby.junit.timestamp}" |
| errorproperty="tests.failed" |
| failureproperty="tests.failed"> |
| <jvmarg value="${derby.tests.jacoco.agent}"/> |
| <sysproperty key="derby.tests.jacoco.agent" value="${derby.tests.jacoco.agent}"/> |
| <!-- This property is needed to keep EMMA silent when measuring codecoverage --> |
| <sysproperty key="emma.verbosity.level" value="silent"/> |
| <!-- Pass on properties from the command line to the spawned VM. --> |
| <syspropertyset id="system-properties-passed-on"> |
| <propertyref builtin="commandline"/> |
| </syspropertyset> |
| <formatter type="xml"/> |
| |
| <test name="${derby.junit.testclass}" todir="junit_${derby.junit.timestamp}"/> |
| |
| <classpath> |
| <fileset dir="${derby.junit.test.jars}" includes="*.jar"/> |
| <pathelement path="${derby.junit.classpath}"/> |
| <pathelement location="${javatools.dir}/junit.jar"/> |
| <pathelement location="${lucene_core}"/> |
| <pathelement location="${lucene_a_co}"/> |
| <pathelement location="${lucene_qp}"/> |
| <pathelement location="${json_simple}"/> |
| </classpath> |
| </junit> |
| |
| </target> |
| |
| <target |
| name="junit-all" |
| depends="junit-pptesting,junit-core,junit-jdbc4,junit-jmx,junit-lowmem" |
| description="Run the JUnit tests." |
| /> |
| |
| <target name="junitreport" depends="junit-all,junit-html"/> |
| |
| <!-- Convert the junit xml format to HTML --> |
| <target name="junit-html" depends="junit-sysinfo"> |
| <junitreport todir="junit_${derby.junit.timestamp}"> |
| <fileset dir="junit_${derby.junit.timestamp}"> |
| <include name="TEST-*.xml"/> |
| </fileset> |
| <report format="frames" todir="junit_${derby.junit.timestamp}"/> |
| </junitreport> |
| |
| <replace token="Unit Test Results" |
| value="Apache Derby Test Results - ${derby.junit.standardtime}<br>JVM: ${java.vm.vendor} ${java.vm.version}" |
| file="junit_${derby.junit.timestamp}/overview-summary.html"/> |
| |
| <!-- |
| Insert a link to sysinfo.txt after the first h2 element in |
| overview-frame.html. (We use the replaceregexp task instead of |
| the replace task since we want to replace the first occurrence |
| only. The replace task replaces all occurrences.) |
| --> |
| <replaceregexp |
| match="</h2>" |
| replace="</h2><h2><a href="sysinfo.txt" target="classFrame">sysinfo</a></h2>" |
| file="junit_${derby.junit.timestamp}/overview-frame.html"/> |
| |
| <fail if="tests.failed">Tests Failed!</fail> |
| </target> |
| |
| <target name="l10ncheck"> |
| <ant dir="${derbysrc.dir}/../tools/l10n"/> |
| </target> |
| |
| <!-- Run the junit-all target with the classpath set to include |
| the main derby jar files. Requires that the caller have |
| junit.jar in CLASSPATH due to some bug in ant that is |
| fixed in version 1.7. |
| --> |
| <target name="junit-all-codeline-jars" |
| depends="junit-all-codeline-jars-set-properties,junit-all"> |
| <fail if="tests.failed">Tests Failed!</fail> |
| </target> |
| |
| <!-- Run the junit-system-mini target with the classpath set to include |
| the main derby jar files. Requires that the caller have |
| junit.jar in CLASSPATH due to some bug in ant that is |
| fixed in version 1.7. |
| --> |
| <target name="junit-system-mini-codeline-jars" |
| depends="junit-all-codeline-jars-set-properties,junit-system-mini"> |
| <fail if="tests.failed">Tests Failed!</fail> |
| </target> |
| |
| <!-- Run the junit-single target with the classpath set to include |
| the main derby jar files. Requires that the caller have |
| junit.jar in CLASSPATH due to some bug in ant that is |
| fixed in version 1.7. |
| --> |
| <target name="junit-single-codeline-jars" |
| depends="junit-all-codeline-jars-set-properties,junit-single"> |
| <fail if="tests.failed">Tests Failed!</fail> |
| </target> |
| |
| <target name="junit-all-codeline-jars-set-properties" depends="setsanityname"> |
| <property name="derby.jar.base" value="${jarsdist.dir}/${sanity.name}"/> |
| <property name="derby.junit.classpath" |
| value="${derby.jar.base}/derbyTesting.jar:${derby.jar.base}/derbynet.jar:${derby.jar.base}/derbytools.jar:${derby.jar.base}/derbyclient.jar"/> |
| </target> |
| |
| <!-- =================================================================== --> |
| <!-- Old harness test targets --> |
| <!-- =================================================================== --> |
| <!-- The old harness tests are being phased out, so just borrow some --> |
| <!-- functionality from the JUnit setup. --> |
| |
| <target name="test-derbyall" depends="junit-init"> |
| <path id="derbyall.classpath"> |
| <fileset dir="${derby.junit.test.jars}" includes="*.jar"/> |
| <pathelement path="${derby.junit.classpath}"/> |
| <pathelement location="${javatools.dir}/junit.jar"/> |
| </path> |
| <echo message="Classpath used for derbyall: ${toString:derbyall.classpath}"/> |
| <mkdir dir="junit_${derby.junit.timestamp}/derbyall"/> |
| <java classname="org.apache.derbyTesting.functionTests.harness.RunSuite" |
| fork="yes" dir="junit_${derby.junit.timestamp}/derbyall"> |
| <jvmarg value="${derby.tests.jacoco.agent}"/> |
| <sysproperty key="jvmflags" value="${derby.tests.jacoco.agent}"/> |
| <!-- Note the duplicate specification, don't know why it's needed. --> |
| <sysproperty key="testSpecialProps" value="noSecurityManager=true^noSecurityManager=true"/> |
| <arg value="derbyall"/> |
| <env key="CLASSPATH" value="${toString:derbyall.classpath}"/> |
| </java> |
| </target> |
| |
| <!-- =================================================================== --> |
| <!-- Run tests with a module path --> |
| <!-- =================================================================== --> |
| |
| <target name="test-derbyall-with-modulepath" |
| depends="junit-init" |
| description="Old harness tests with module path" |
| > |
| <path id="derbyall.classpath"> |
| <fileset dir="${derby.junit.test.jars}" includes="*.jar"/> |
| <pathelement path="${derby.junit.classpath}"/> |
| <pathelement location="${javatools.dir}/junit.jar"/> |
| </path> |
| <echo message="Modulepath used for derbyall: ${toString:derbyall.classpath}"/> |
| <mkdir dir="junit_${derby.junit.timestamp}/derbyall"/> |
| <java |
| modulepath="${toString:derbyall.classpath}" |
| module="org.apache.derby.tests" |
| classname="org.apache.derbyTesting.functionTests.harness.RunSuite" |
| fork="yes" |
| dir="junit_${derby.junit.timestamp}/derbyall" |
| > |
| <jvmarg value="--add-modules"/> |
| <jvmarg value="org.apache.derby.tests,junit"/> |
| <arg value="derbyall"/> |
| </java> |
| </target> |
| |
| <target name="test-junit-all-with-modulepath" |
| depends="junit-init" |
| description="JUnit tests with module path" |
| > |
| <path id="junit.all.classpath"> |
| <fileset dir="${derby.junit.test.jars}" includes="*.jar"/> |
| <pathelement location="${javatools.dir}/junit.jar"/> |
| <pathelement location="${lucene_core}"/> |
| <pathelement location="${lucene_a_co}"/> |
| <pathelement location="${lucene_qp}"/> |
| <pathelement location="${json_simple}"/> |
| </path> |
| |
| <echo message="Modulepath used for JUnit tests with modulepath: ${toString:junit.all.classpath}"/> |
| <mkdir dir="junit_${derby.junit.timestamp}/junit-all"/> |
| |
| <java |
| modulepath="${toString:junit.all.classpath}" |
| module="junit" |
| classname="junit.textui.TestRunner" |
| fork="yes" |
| dir="junit_${derby.junit.timestamp}/junit-all" |
| > |
| <sysproperty key="derbyTesting.oldReleasePath" value="${derbyTesting.oldReleasePath}"/> |
| <sysproperty key="derbyTesting.oldVersionsPath" value="${derbyTesting.oldVersionsPath}"/> |
| |
| <jvmarg value="--add-modules"/> |
| <jvmarg value="org.apache.derby.tests"/> |
| |
| <arg value="org.apache.derbyTesting.functionTests.suites.All"/> |
| </java> |
| </target> |
| |
| <!-- Run a single junit test or suite with the modulepath --> |
| <target name="junit-single-with-modulepath" |
| depends="junit-init" |
| description="Run one JUnit test with the module path" |
| > |
| <condition property="noTestclassSet" value=""> |
| <not> |
| <isset property="derby.junit.testclass"/> |
| </not> |
| </condition> |
| <fail if="noTestclassSet">No testclass selected! Set property derby.junit.testclass</fail> |
| <path id="junit.all.classpath"> |
| <fileset dir="${derby.junit.test.jars}" includes="*.jar"/> |
| <pathelement location="${javatools.dir}/junit.jar"/> |
| <pathelement location="${lucene_core}"/> |
| <pathelement location="${lucene_a_co}"/> |
| <pathelement location="${lucene_qp}"/> |
| <pathelement location="${json_simple}"/> |
| </path> |
| |
| <echo message="Modulepath used for JUnit tests with modulepath: ${toString:junit.all.classpath}"/> |
| <mkdir dir="junit_${derby.junit.timestamp}/junit-all"/> |
| |
| <java |
| modulepath="${toString:junit.all.classpath}" |
| module="junit" |
| classname="junit.textui.TestRunner" |
| fork="yes" |
| dir="junit_${derby.junit.timestamp}/junit-all" |
| > |
| <sysproperty key="derbyTesting.oldReleasePath" value="${derbyTesting.oldReleasePath}"/> |
| <sysproperty key="derbyTesting.oldVersionsPath" value="${derbyTesting.oldVersionsPath}"/> |
| |
| <jvmarg value="--add-modules"/> |
| <jvmarg value="org.apache.derby.tests"/> |
| |
| <arg value="${derby.junit.testclass}"/> |
| </java> |
| </target> |
| |
| <!-- =================================================================== --> |
| <!-- EMMA utility targets --> |
| <!-- =================================================================== --> |
| |
| <!-- |
| There are three "top-level" targets that use EMMA: |
| |
| 'emma-clean' will delete any classes and jar files that have been instrumented |
| with EMMA. |
| |
| Before using the 'emma-all' and 'emma-single' targets, you should build jar |
| files using the 'buildjars' target. |
| |
| 'emma-all' will instrument your jar files using EMMA, and run the 'junit-all' |
| target, before producting code coverage reports from the testrun. |
| |
| 'emma-single' will instrument your jar files using EMMA, and run the |
| 'junit-single' target, before producing code coverage reports from the testrun. |
| To select which test or suite to run with the 'emma-single' target you must set |
| the system property derby.junit.testclass to the full classname of the suite or |
| test you want to run. |
| |
| These targets use EMMA code, and depend upon emma.jar and emma_ant.jar being |
| copied to your tools/java/ directory. You can download these from |
| http://emma.sourceforge.net/downloads.html. |
| |
| If you use ant 1.6.5 you will have to add junit to your classpath, with ant 1.7 |
| you should not have to do this. |
| --> |
| |
| <!-- directory that will contain the instrumented jar-files: --> |
| <property name="emmabase" value="${jarsdist.dir}/emma"/> |
| <property name="instrumented.jars" value="${emmabase}/lib"/> |
| <property name="instrumented.classes" value="${emmabase}/classes"/> |
| |
| <target name="emma-clean"> |
| <delete includeEmptyDirs="true"> |
| <fileset dir="${jarsdist.dir}" includes="emma/**"/> |
| </delete> |
| </target> |
| |
| <target name="emma-init" depends="initjars"> |
| <!-- EMMA distribution: --> |
| <path id="emma.lib"> |
| <pathelement location="${emma}"/> |
| <pathelement location="${emma_ant}"/> |
| </path> |
| <taskdef resource="emma_ant.properties" classpathref="emma.lib"/> |
| <mkdir dir="${emmabase}"/> |
| </target> |
| |
| <target name="emma-instrumentation" depends="emma-init,junit-init-nocp"> |
| <!-- Apply emma instrumentation to the classes in instrpath and copy to destdir --> |
| <emma verbosity="verbose"> |
| <instr outfile="junit_${derby.junit.timestamp}/coverage.em" destdir="${emmabase}" merge="true" mode="fullcopy"> |
| <instrpath> |
| <pathelement path="${derby.jar.dir}/derbyrun.jar"/> |
| </instrpath> |
| </instr> |
| </emma> |
| <!-- Change the classpath used for junit tests to use the jars instrumented by EMMA --> |
| <property name="derby.junit.classpath" value="${emma}:${derby.jar.dir}/derbyTesting.jar:${instrumented.jars}/derbyrun.jar"/> |
| </target> |
| |
| <target name="emma-all" depends="emma-instrumentation,junit-all,emma-report"> |
| <fail if="tests.failed">EMMA instrumented tests failed!</fail> |
| <echo level="info" message="Finished measuring code coverage with EMMA."/> |
| </target> |
| |
| <target name="emma-single" depends="emma-instrumentation,junit-single,emma-report"> |
| <fail if="tests.failed">EMMA instrumented test failed!</fail> |
| <echo level="info" message="Finished measuring code coverage with EMMA."/> |
| </target> |
| |
| <target name="emma-report" depends="emma-instrumentation"> |
| <emma> |
| <report verbosity="verbose" depth="method"> |
| <sourcepath> |
| <pathelement path="${derby.client.src.dir}" /> |
| <pathelement path="${derby.drda.src.dir}" /> |
| <pathelement path="${derby.engine.src.dir}" /> |
| <pathelement path="${derby.shared.src.dir}" /> |
| <pathelement path="${derby.storeless.src.dir}" /> |
| <pathelement path="${derby.tools.src.dir}" /> |
| </sourcepath> |
| <infileset dir="junit_${derby.junit.timestamp}" includes="coverage.em,coverage*.ec" /> |
| <!-- Three reports: txt, xml and html --> |
| <txt outfile="junit_${derby.junit.timestamp}/coverage.txt"/> |
| <xml outfile="junit_${derby.junit.timestamp}/coverage.xml"/> |
| <html outfile="junit_${derby.junit.timestamp}/coverage.html"/> |
| </report> |
| </emma> |
| </target> |
| |
| <!-- ==================================================================== --> |
| <!-- JaCoCo code coverage targets --> |
| <!-- ==================================================================== --> |
| |
| <target name="jacoco-complete" |
| depends="clobber,sane,all,buildjars,jacoco-enable,test-derbyall,junit-all,jacoco-report" |
| description="Runs all the Derby tests with JaCoCo to obtain code coverage"> |
| </target> |
| |
| <target name="jacoco-derbyall" |
| depends="jacoco-enable,test-derbyall,jacoco-report" |
| description="Runs the derbyall test with JaCoCo to obtain code coverage"> |
| </target> |
| |
| <target name="jacoco-junit" |
| depends="jacoco-enable,junit-all,jacoco-report" |
| description="Runs all the Derby JUnit tests with JaCoCo to obtain code coverage"> |
| </target> |
| |
| <target name="jacoco-junit-single" |
| depends="jacoco-enable,junit-single,jacoco-report" |
| description="Runs the specified Derby JUnit test with JaCoCo to obtain code coverage"> |
| </target> |
| |
| <!-- The below JaCoCo targets are helper targets and have not been written to |
| be invoked directly. --> |
| |
| <target name="jacoco-report" depends="getsvnversion"> |
| <jacoco:merge destfile="junit_${derby.junit.timestamp}/merged.exec"> |
| <fileset dir="junit_${derby.junit.timestamp}" includes="**/jacoco.exec*"/> |
| </jacoco:merge> |
| |
| <jacoco:report> |
| <executiondata> |
| <file file="junit_${derby.junit.timestamp}/merged.exec"/> |
| </executiondata> |
| |
| <structure name="Apache Derby Code Coverage (revision ${changenumber}, JRE ${java.specification.version})"> |
| <classfiles> |
| <fileset dir="classes"> |
| <include name="org/apache/derby/**/*.class"/> |
| <!-- Ignore testing classes for now. |
| Maybe in a separate report? --> |
| <!-- <include name="org/apache/derbyTesting/**/*.class"/> --> |
| </fileset> |
| </classfiles> |
| <sourcefiles encoding="UTF-8"> |
| <fileset dir="java/${module.name.client}"/> |
| <fileset dir="java/${module.name.server}"/> |
| <fileset dir="java/${module.name.engine}"/> |
| <fileset dir="java/${module.name.commons}"/> |
| <fileset dir="java/${module.name.runner}"/> |
| <fileset dir="java/${module.name.tests}"/> |
| <fileset dir="java/${module.name.tools}"/> |
| <fileset dir="java/${module.name.optionaltools}"/> |
| <fileset dir="generated/java/${module.name.commons}"/> |
| <fileset dir="generated/java/${module.name.engine}"/> |
| <fileset dir="generated/java/${module.name.tests}"/> |
| <fileset dir="generated/java/${module.name.tools}"/> |
| </sourcefiles> |
| </structure> |
| |
| <html destdir="junit_${derby.junit.timestamp}/coverage-report"/> |
| <!-- Alternative report formats that are available. |
| <csv destfile="junit_${derby.junit.timestamp}/coverage-jacoco.csv"/> |
| <html destfile="junit_${derby.junit.timestamp}/coverage-jacoco.html.zip"/> |
| <xml destfile="junit_${derby.junit.timestamp}/coverage-jacoco.xml"/> |
| --> |
| |
| </jacoco:report> |
| </target> |
| |
| <target name="jacoco-enable"> |
| <!-- Make sure we have the required JaCoCo files. --> |
| <fail message="missing jacocoant.jar and/or jacocoagent.jar in tools/java"> |
| <condition> |
| <not> |
| <and> |
| <available file="${basedir}/tools/java/jacocoant.jar"/> |
| <available file="${basedir}/tools/java/jacocoagent.jar"/> |
| </and> |
| </not> |
| </condition> |
| </fail> |
| <!-- Add the JaCoCo targets/tasks. --> |
| <taskdef uri="antlib:org.jacoco.ant" resource="org/jacoco/ant/antlib.xml"> |
| <classpath path="${basedir}/tools/java/jacocoant.jar"/> |
| </taskdef> |
| <!-- Generate the property required to enable JaCoCo. |
| Exclude invalid class file loaded in DatabaseClassLoadingTest. |
| --> |
| <jacoco:agent property="derby.tests.jacoco.agent" |
| sessionid="derby-ant" |
| excludes="*/emc:org/apache/derby/exe/*"/> |
| </target> |
| |
| <!-- ==================================================================== --> |
| <!-- Release Candidates --> |
| <!-- ==================================================================== --> |
| |
| <target |
| name="release" |
| depends="prepareforrelease" |
| description="Build the release distributions." |
| > |
| <ant antfile="${basedir}/tools/release/build.xml" target="release"/> |
| |
| <!-- sign all of the artifacts --> |
| <ant antfile="${basedir}/tools/release/build.xml" target="sign"/> |
| |
| <!-- remove cruft --> |
| <delete dir="${crlf.dir}"/> |
| <delete dir="${lf.dir}"/> |
| <delete file="${release.dir}/maintversion.properties"/> |
| |
| <!-- the release candidate has been built. now we can bump the release id. --> |
| <antcall target="writeAndCheckinReleaseProperties"> |
| <param name="bumpID" value="true"/> |
| </antcall> |
| |
| </target> |
| |
| <!-- do most of the ant calls to prepare a release --> |
| <target name="prepareforrelease" depends="checkdocsroot,checksvnclientsclean,promptforreleaseproperties,checkstateremoved,checksanenotset,cleanalljars,cleandocs,clobber,cleanreleasefiles"> |
| |
| <!-- set the release id --> |
| <antcall target="writeAndCheckinReleaseProperties"> |
| <param name="bumpID" value="false"/> |
| </antcall> |
| |
| <!-- update the NOTICE file with the current copyright year and check NOTICE in --> |
| <antcall target="buildnotice"/> |
| |
| <!-- copy the generated sqlstate tables to the docs client and check it in --> |
| <antcall target="copyerrordocs"/> |
| |
| <!-- copy the generated policy file documentation to the docs client and check it in --> |
| <antcall target="copy-security-policy-docs"/> |
| |
| <!-- sync the clients to guarantee that we are up-to-date --> |
| <antcall target="updatesvnclients"/> |
| |
| <antcall target="clobber"/> |
| <antcall target="all"> |
| <param name="sane" value="true"/> |
| <param name="sanity" value="true"/> |
| <param name="sanity.name" value="sane"/> |
| <param name="deprecation" value="off"/> |
| </antcall> |
| <antcall target="buildjars"> |
| <param name="sane" value="true"/> |
| <param name="sanity" value="true"/> |
| <param name="sanity.name" value="sane"/> |
| </antcall> |
| |
| <antcall target="clobber"/> |
| <antcall target="snapshot"> |
| <param name="sane" value="false"/> |
| <param name="sanity" value="false"/> |
| <param name="sanity.name" value="insane"/> |
| <param name="deprecation" value="off"/> |
| </antcall> |
| |
| <antcall target="publishedapi"> |
| <param name="deprecation" value="off"/> |
| </antcall> |
| |
| <!-- build the docs now that the sqlstate tables are up to date --> |
| <antcall target="builduserdocs"/> |
| |
| <!-- finish by removing the state.properties file, so we can do it again --> |
| <antcall target="cleanstate"/> |
| </target> |
| |
| <!-- |
| Prompt for release-building inputs if they were not specified in properties already |
| |
| This target must be called in a dependency list rather than via antcall. That is |
| because properties set in dependent targets percolate back up to the caller. |
| Properties set in antcalled targets are wiped out when you return to the caller. |
| |
| Sneaky, very, very sneaky. |
| --> |
| <target name="promptforreleaseproperties" depends="promptforsvncredentials,promptforpgpcredentials,promptforreleaseid"/> |
| |
| <!-- Define the task which prompts for missing properties --> |
| <target name="defineprompt" depends="prebuild"> |
| |
| <taskdef |
| name="promptForProperty" |
| classname="org.apache.derbyPreBuild.PropertyPrompt" |
| classpath="${out.build.dir}" |
| /> |
| |
| </target> |
| |
| <!-- Prompt for subversion credentials if they are missing --> |
| <target name="promptforsvncredentials" depends="defineprompt"> |
| |
| <promptForProperty |
| propertyName="svn.username" |
| prompt="Enter your Apache subversion username > " |
| /> |
| |
| <promptForProperty |
| propertyName="svn.password" |
| prompt="Enter your Apache subversion password > " |
| /> |
| |
| </target> |
| |
| <!-- Prompt for key-signing credentials if they are missing --> |
| <target name="promptforpgpcredentials" depends="defineprompt"> |
| |
| <promptForProperty |
| propertyName="pgp.passphrase" |
| prompt="Enter your pgp passphrase > " |
| /> |
| |
| </target> |
| |
| <!-- Prompt for release id if it is missing --> |
| <target name="promptforreleaseid" depends="defineprompt"> |
| |
| <promptForProperty |
| propertyName="derby.release.id" |
| prompt="Enter the id of this release (e.g., 10.7.1.0) > " |
| /> |
| |
| </target> |
| |
| <!-- Prompt for branch id if it is missing --> |
| <target name="promptforbranch" depends="defineprompt"> |
| |
| <promptForProperty |
| propertyName="branch.id" |
| prompt="Enter the name of the branch (e.g., 10.7) > " |
| /> |
| |
| </target> |
| |
| <!-- Prompt for location of binary zip distribution if it is missing --> |
| <target name="promptforbinaryzipdist" depends="defineprompt"> |
| |
| <promptForProperty |
| propertyName="derby.release.binzip" |
| prompt="Enter the location of the binary zip distribution for the release (e.g., /Users/me/release/db-derby-10.7.1.0-bin.zip) > " |
| /> |
| |
| </target> |
| |
| <!-- Prompt for root of documentation client if it is missing --> |
| <target name="promptfordocsroot" depends="defineprompt"> |
| |
| <promptForProperty |
| propertyName="docs.root" |
| prompt="Enter the root of the subversion docs client (e.g., /Users/me/derby/docs/trunk) > " |
| /> |
| |
| </target> |
| |
| <!-- |
| Prompt for whether we should continue. The user is offered a Y/N choice. |
| |
| Args: |
| prompt |
| --> |
| <target name="prompttocontinue" depends="defineprompt"> |
| |
| <fail message="Did not expect that property prompt.to.continue would be set. Make sure that this target is only invoked via antcall and not in a dependency list."> |
| <condition> |
| <isset property="prompt.to.continue"/> |
| </condition> |
| </fail> |
| |
| <promptForProperty |
| propertyName="prompt.to.continue" |
| prompt="${prompt} Continue? (Y/N) > " |
| /> |
| |
| <fail message="Terminating."> |
| <condition> |
| <not> |
| <equals casesensitive="false" arg1="${prompt.to.continue}" arg2="Y"/> |
| </not> |
| </condition> |
| </fail> |
| |
| </target> |
| |
| <target name="checkstateremoved" depends="state.exists"> |
| <fail message="Cannot build a release; please remove java/engine/state.properties by running ant cleanstate (or run ant clobber)"> |
| <condition> |
| <isset property="state.prepare.available"/> |
| </condition> |
| </fail> |
| </target> |
| |
| <target name="state.exists"> |
| <!-- check if state.properties file does *not* exist without generating it --> |
| <!-- if it exists, the sane property is already loaded, messing up the prepare process --> |
| <available file="${derby.engine.src.dir}/state.properties" property="state.prepare.available"/> |
| </target> |
| |
| <target name="checkdocsroot" depends="promptfordocsroot"> |
| <!-- make sure that docs.root points into a docs tree --> |
| <fail message="Cannot build a release; docs.root does not point at your documentation client: ${docs.root}"> |
| <condition> |
| <not><available file="${docs.root}/src/conrefs.dita"/></not> |
| </condition> |
| </fail> |
| |
| <!-- make sure that the doc-building classes are visible to ant --> |
| <fail message="Cannot build a release; fop.jar is not visible in the docs client."> |
| <condition> |
| <not><available file="${docs.root}/lib/fop.jar"/></not> |
| </condition> |
| </fail> |
| </target> |
| |
| <target name="checksanenotset"> |
| <!-- check that sane is *not* set elsewhere, e.g. $HOME/ant.properties --> |
| <echo level="info" message="sane : ${sane}"/> |
| <fail message="Cannot build a release; please do not set sane to either true or false"> |
| <condition> |
| <isset property="sane"/> |
| </condition> |
| </fail> |
| </target> |
| |
| <target name="cleanreleasefiles"> |
| <delete dir="${release.base}"/> |
| </target> |
| |
| <target name="cleanalljars"> |
| <delete dir="${jarsdist.dir}"/> |
| </target> |
| |
| <target |
| name="createBranch" |
| depends="checkdocsroot,checksvnclientsclean,getsvnversion" |
| description="Create a new branch (both docs and code)." |
| > |
| <antcall target="updatesvnclients"/> |
| <antcall target="getsvnversion"/> |
| |
| <property file="${properties.dir}/release.properties"/> |
| |
| <antcall target="prompttocontinue"> |
| <param name="prompt" value="Creating ${eversion} branch starting at revision ${changenumber}."/> |
| </antcall> |
| |
| <antcall target="branchrepository"> |
| <param name="startingRevision" value="${changenumber}"/> |
| <param name="sourceURL" value="https://svn.apache.org/repos/asf/db/derby/code/trunk/"/> |
| <param name="targetURL" value="https://svn.apache.org/repos/asf/db/derby/code/branches/${eversion}/"/> |
| <param name="checkinComment" value="Created the ${eversion} code branch."/> |
| </antcall> |
| |
| <antcall target="branchrepository"> |
| <param name="startingRevision" value="${changenumber}"/> |
| <param name="sourceURL" value="https://svn.apache.org/repos/asf/db/derby/docs/trunk/"/> |
| <param name="targetURL" value="https://svn.apache.org/repos/asf/db/derby/docs/branches/${eversion}/"/> |
| <param name="checkinComment" value="Created the ${eversion} docs branch."/> |
| </antcall> |
| |
| </target> |
| |
| <!-- |
| Branch one of the repositories |
| |
| Args: |
| startingRevision subversion revision number of initial set of files |
| sourceURL points at the source (trunk) repository |
| targetURL location of the new (branch) repository |
| checkinComment one line description of the new branch |
| --> |
| <target name="branchrepository"> |
| |
| <exec executable="svn"> |
| <arg value="copy"/> |
| <arg value="${sourceURL}"/> |
| <arg value="${targetURL}"/> |
| <arg value="-m"/> |
| <arg value="${checkinComment}"/> |
| </exec> |
| |
| </target> |
| |
| <!-- ==================================================================== --> |
| <!-- Release Publication --> |
| <!-- ==================================================================== --> |
| |
| <!-- Repackage the docs for publication on the website --> |
| <target name="repackagedocs" depends="promptforwebsite,promptforbranch,promptforbinaryzipdist"> |
| |
| <fail message="Cannot repackage the docs. Cannot find ${derby.release.binzip}"> |
| <condition> |
| <not> |
| <available file="${derby.release.binzip}"/> |
| </not> |
| </condition> |
| </fail> |
| |
| <basename property="zipstub" file="${derby.release.binzip}" suffix=".zip"/> |
| <echo message="${zipstub}"/> |
| |
| <property name="repackage.dir" value="${release.base}/repackagedocs"/> |
| <property name="unpacked.dir" value="${repackage.dir}/unpacked"/> |
| <property name="pruned.dir" value="${website.root}/build/site/docs/${branch.id}"/> |
| <property name="pruned.docs.dir" value="${pruned.dir}/docs"/> |
| <property name="pruned.publicapi.dir" value="${pruned.dir}/publishedapi"/> |
| |
| <delete dir="${repackage.dir}"/> |
| <mkdir dir="${unpacked.dir}"/> |
| <mkdir dir="${pruned.dir}"/> |
| <mkdir dir="${pruned.docs.dir}"/> |
| <mkdir dir="${pruned.publicapi.dir}"/> |
| |
| <unzip src="${derby.release.binzip}" dest="${unpacked.dir}"/> |
| |
| <move todir="${pruned.docs.dir}"><fileset dir="${unpacked.dir}/${zipstub}/docs"/></move> |
| <move todir="${pruned.publicapi.dir}"><fileset dir="${unpacked.dir}/${zipstub}/javadoc"/></move> |
| <delete dir="${unpacked.dir}"/> |
| |
| <antcall target="movepdf"><param name="userguide" value="adminguide"/></antcall> |
| <antcall target="movepdf"><param name="userguide" value="devguide"/></antcall> |
| <antcall target="movepdf"><param name="userguide" value="getstart"/></antcall> |
| <antcall target="movepdf"><param name="userguide" value="ref"/></antcall> |
| <antcall target="movepdf"><param name="userguide" value="security"/></antcall> |
| <antcall target="movepdf"><param name="userguide" value="tools"/></antcall> |
| <antcall target="movepdf"><param name="userguide" value="tuning"/></antcall> |
| |
| <move todir="${pruned.dir}"><fileset dir="${pruned.docs.dir}/html"/></move> |
| <delete dir="${pruned.docs.dir}"/> |
| |
| <!-- Delete the obsolete Japanese and Brazilian variants --> |
| <delete dir="${pruned.dir}/ja_JP"/> |
| <delete dir="${pruned.dir}/pt_BR"/> |
| |
| </target> |
| |
| <!-- Move the pdf files into the html directory so that everything is in one place --> |
| <target name="movepdf"> |
| <move todir="${pruned.docs.dir}/html/${userguide}"> |
| <fileset dir="${pruned.docs.dir}/pdf/${userguide}"/> |
| </move> |
| <delete dir="${pruned.docs.dir}/pdf/${userguide}"/> |
| </target> |
| |
| <!-- Transform the release notes for publication on the website. This creates the download page for the release --> |
| <target name="transformrelnotes" depends="promptforreleaseid,promptforwebsite"> |
| |
| <property name="relnotes.target.dir" value="${website.root}/src/documentation/content/xdocs/releases" /> |
| |
| <fail message="Cannot transform the release notes. The web site client does not look correct."> |
| <condition> |
| <not> |
| <available file="${relnotes.target.dir}"/> |
| </not> |
| </condition> |
| </fail> |
| |
| <property name="relnotes.src" value="${basedir}/RELEASE-NOTES.html" /> |
| |
| <taskdef |
| name="transformReleaseNotes" |
| classname="org.apache.derbyBuild.ReleaseNotesTransformer" |
| classpath="${out.build.dir}" |
| /> |
| <transformReleaseNotes |
| inputFileName="${relnotes.src}" |
| outputFileName="${relnotes.target.dir}/release-${derby.release.id}.html" |
| cliXconfFileName="${website.root}/src/documentation/conf/cli.xconf" |
| releaseId="${derby.release.id}" |
| /> |
| |
| <!-- Copy the cgi script which enables mirroring for the new release --> |
| <copy |
| file="${relnotes.target.dir}/release-template.cgi" |
| tofile="${relnotes.target.dir}/release-${derby.release.id}.cgi" |
| /> |
| |
| </target> |
| |
| <!-- Prompt for and sanity check the root of your website client --> |
| <target name="promptforwebsite" depends="defineprompt"> |
| |
| <promptForProperty |
| propertyName="website.root" |
| prompt="Enter the root directory of your Derby website client (e.g. /Users/me/derby/site/trunk) > " |
| /> |
| |
| </target> |
| |
| </project> |