summaryrefslogtreecommitdiff
path: root/net-p2p/freenet/files
diff options
context:
space:
mode:
Diffstat (limited to 'net-p2p/freenet/files')
-rw-r--r--net-p2p/freenet/files/0.7.5_p1483-ext.patch22
-rw-r--r--net-p2p/freenet/files/build-clean.xml421
-rw-r--r--net-p2p/freenet/files/build.properties95
3 files changed, 538 insertions, 0 deletions
diff --git a/net-p2p/freenet/files/0.7.5_p1483-ext.patch b/net-p2p/freenet/files/0.7.5_p1483-ext.patch
new file mode 100644
index 000000000000..5b778dd619f4
--- /dev/null
+++ b/net-p2p/freenet/files/0.7.5_p1483-ext.patch
@@ -0,0 +1,22 @@
+--- src/freenet/node/NodeStarter.java 2019-03-17 12:44:12.000000000 +0100
++++ src/freenet/node/NodeStarter.java.new 2019-03-17 12:58:51.000000000 +0100
+@@ -51,8 +51,8 @@
+ public static final String extRevisionNumber;
+
+ static {
+- extBuildNumber = ExtVersion.extBuildNumber();
+- extRevisionNumber = ExtVersion.extRevisionNumber();
++ extBuildNumber = 29;
++ extRevisionNumber = "";
+ }
+
+ private FreenetFilePersistentConfig cfg;
+@@ -109,7 +109,7 @@
+ System.out.println("Usage: $ java freenet.node.Node <configFile>");
+ return Integer.valueOf(-1);
+ }
+- String builtWithMessage = "freenet.jar built with freenet-ext.jar Build #" + ExtVersion.buildNumber + " r" + ExtVersion.cvsRevision+" running with ext build "+extBuildNumber+" r" + extRevisionNumber;
++ String builtWithMessage = "freenet.jar built with freenet-ext.jar Build #" + extBuildNumber +" running with ext build "+extBuildNumber;
+ Logger.normal(this, builtWithMessage);
+ System.out.println(builtWithMessage);
+
diff --git a/net-p2p/freenet/files/build-clean.xml b/net-p2p/freenet/files/build-clean.xml
new file mode 100644
index 000000000000..89698df2675f
--- /dev/null
+++ b/net-p2p/freenet/files/build-clean.xml
@@ -0,0 +1,421 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="freenet" default="package" basedir=".">
+ <description>
+Freenet is free software that lets you publish and retrieve information without
+fear of censorship. To achieve this, the network is entirely decentralized, and
+all actions are anonymous. Without anonymity, there can never be true freedom
+of speech, and without decentralization the network would be vulnerable to attack.
+
+This file is to build Freenet entirely from source. The builder is responsible
+for satisfying all library dependencies, e.g. via override.properties. Package
+maintainers may prefer to use this instead of build.xml.
+ </description>
+
+ <!-- =================================================================== -->
+ <!-- Global properties -->
+ <!-- =================================================================== -->
+
+ <!-- user overrides (properties are immutable, so set overrides first) -->
+ <property file="override.properties"/>
+ <property file="build.properties"/>
+ <property file="dependencies.properties"/>
+
+ <property name="version.src" value="freenet/node/Version.java" />
+ <property name="version.make" value="freenet/node/Version.class" />
+
+ <path id="lib.path">
+ <fileset dir="${lib.contrib.dir}" includes="${lib.contrib.jars}"/>
+ <fileset dir="${lib.dir}" includes="${lib.jars}"/>
+ <fileset dir="/usr/share/java" includes="${lib.jars}" erroronmissingdir="false"/>
+ </path>
+ <path id="libtest.path">
+ <path refid="lib.path"/>
+ <fileset dir="${lib.dir}" includes="${libtest.jars}"/>
+ <fileset dir="/usr/share/java" includes="${libtest.jars}" erroronmissingdir="false"/>
+ <pathelement path="${main.make}"/>
+ <pathelement path="${test.make}"/>
+ </path>
+
+ <property name="gjs.dst" value="${main.src}/freenet/clients/http/staticfiles/freenetjs"/>
+ <property name="gjs.dir" value="generator/js"/>
+ <path id="gjs.lib.path">
+ <fileset dir="${gjs.dir}" includes="lib/*.jar"/>
+ <pathelement location="${gjs.dir}/war/WEB-INF/classes"/>
+ <fileset dir="${lib.dir}" includes="${gjs.lib.jars}"/>
+ </path>
+
+ <path id="pmd.classpath">
+ <fileset dir="${pmd.dir}" erroronmissingdir="false" includes="lib/*.jar"/>
+ </path>
+
+ <property environment="env"/>
+ <property name="keystore" value="${env.jarsignerStoreLocation}"/>
+ <property name="keystore_alias" value="${env.jarsignerAlias}"/>
+ <property name="keystore_pass" value="${env.jarsignerStorePassword}"/>
+ <property name="key_pass" value="${env.jarsignerCodeSigningKeyPassword}"/>
+
+ <property name="jar.dst" value="${main.dst}/freenet.jar"/>
+
+ <assertions><enable/></assertions>
+
+ <!-- set version string based on git-describe -->
+ <exec executable="git" failifexecutionfails="false"
+ errorProperty="git.errror" outputproperty="git.describe" resultproperty="git.result">
+ <arg value="describe" />
+ <arg value="--always" />
+ <arg value="--abbrev=4" />
+ <arg value="--dirty" />
+ </exec>
+ <condition property="git.revision" value="${git.describe}" else="@unknown@">
+ <and>
+ <equals arg1="${git.result}" arg2="0" />
+ <isset property="git.describe" />
+ </and>
+ </condition>
+
+ <!-- =================================================================== -->
+ <!-- Miscellaneous -->
+ <!-- =================================================================== -->
+
+ <target name="dist" depends="clean-all, all" description="clean-build everything"/>
+
+ <target name="sign" description="Sign the distribution" depends="package">
+ <echo message="Signing the distribution"/>
+ <signjar jar="${jar.dst}" strict="false" tsaurl="http://timestamp.comodoca.com/rfc3161" alias="${keystore_alias}" keystore="${keystore}" storepass="${keystore_pass}" keypass="${key_pass}" sigalg="SHA256withRSA" digestalg="SHA-256"/>
+ <!-- TODO: Should have strict="true", but it was introduced in Java 7, which we cannot yet require. -->
+ <verifyjar jar="${jar.dst}" alias="${keystore_alias}" keystore="${keystore}" storepass="${keystore_pass}" keypass="${key_pass}"/>
+ </target>
+
+ <target name="all" depends="package, doc, findbugs, pmd, cpd" description="build everything, incl. docs, GWT js"/>
+
+ <target name="clean-all" depends="clean, clean-doc, clean-gjs" description="clean all build products, incl. docs, GWT js"/>
+
+ <target name="help" description="display help on parameters">
+ <echo message="For main build targets, see `ant -p`"/>
+ <echo message=""/>
+ <echo message="Test parameters (-Dtest.PARAM=true)"/>
+ <echo message=" skip Skip all tests"/>
+ <echo message=" verbose Report additional information"/>
+ <echo message=" benchmark Run benchmark tests"/>
+ <echo message=" extensive Run extensive tests"/>
+ <echo message=""/>
+ <echo message="Misc parameters (-DPARAM=VALUE)"/>
+ <echo message=" javac.args Command line arguments to pass to javac"/>
+ <echo message=""/>
+ </target>
+
+ <target name="findbugs" depends="package" unless="${findbugs.skip}">
+ <antcall target="libdep-findbugs"/>
+ <echo message="Running Findbugs"/>
+ <taskdef name="findbugs" classname="edu.umd.cs.findbugs.anttask.FindBugsTask" classpath="${findbugs.path}"/>
+
+ <findbugs home="${findbugs.dir}"
+ output="xml"
+ outputFile="${test.dst}/findbugs.xml"
+ warningsProperty="findbugs.module.warnings"
+ failOnError="true"
+ jvmargs="-Xmx1536m -XX:MaxPermSize=384m -XX:ReservedCodeCacheSize=128m" >
+ <auxClasspath refid="lib.path" />
+ <sourcePath path="${main.src}" />
+ <class location="${jar.dst}" />
+ </findbugs>
+ </target>
+
+ <target name="pmd" depends="package" unless="${pmd.skip}">
+ <antcall target="libdep-pmd"/>
+ <echo message="Running PMD"/>
+ <taskdef name="pmd" classname="net.sourceforge.pmd.ant.PMDTask" classpathref="pmd.classpath"/>
+ <pmd rulesetfiles="rulesets/java/design.xml" encoding="utf-8">
+ <formatter type="xml" toFile="${test.dst}/pmd.xml"/>
+ <fileset dir="${main.src}">
+ <include name="**/*.java"/>
+ </fileset>
+ </pmd>
+ </target>
+
+ <target name="cpd" depends="package" unless="${cpd.skip}">
+ <antcall target="libdep-cpd"/>
+ <echo message="Running CPD"/>
+ <taskdef name="cpd" classname="net.sourceforge.pmd.cpd.CPDTask" classpathref="pmd.classpath"/>
+ <cpd minimumTokenCount="100" format="xml" outputFile="${test.dst}/cpd.xml">
+ <fileset dir="${main.src}">
+ <include name="**/*.java"/>
+ </fileset>
+ </cpd>
+ </target>
+
+ <target name="debug">
+ <echoproperties/>
+ </target>
+
+ <!-- =================================================================== -->
+ <!-- Library dependencies -->
+ <!-- =================================================================== -->
+
+ <!--
+ currently we only check for the most common cases of missing libraries.
+ this does result in less clear error messages for more obscure setups, e.g.
+ if you have debian's gwt-dev.jar but not commons-collections3.jar. however,
+ to cover all scenarios would be a pain.
+ -->
+
+ <target name="env">
+ <available property="lib.contrib.present" classname="freenet.node.ExtVersion" classpathref="lib.path"/>
+ <available property="lib.bouncycastle.present" classname="org.bouncycastle.crypto.signers.HMacDSAKCalculator" classpathref="lib.path"/>
+ <available property="lib.junit.present" classname="org.junit.runners.JUnit4" classpathref="libtest.path"/>
+ <available property="lib.hamcrest.present" classname="org.hamcrest.SelfDescribing" classpathref="libtest.path"/>
+ <available property="lib.findbugs.present" classname="edu.umd.cs.findbugs.anttask.FindBugsTask" classpath="${findbugs.path}"/>
+ <available property="lib.pmd.present" classname="net.sourceforge.pmd.ant.PMDTask" classpathref="pmd.classpath"/>
+ <available property="lib.cpd.present" classname="net.sourceforge.pmd.cpd.CPDTask" classpathref="pmd.classpath"/>
+ <available property="gjs.lib.gwt-user.present" classname="com.google.gwt.user.client.Window" classpathref="gjs.lib.path"/>
+ <available property="gjs.lib.gwt-dev.present" classname="com.google.gwt.dev.About" classpathref="gjs.lib.path"/>
+ <condition property="gjs.lib.gwt.present">
+ <and>
+ <isset property="gjs.lib.gwt-user.present"/>
+ <isset property="gjs.lib.gwt-dev.present"/>
+ </and>
+ </condition>
+ </target>
+
+ <target name="libdep-ext" depends="env" unless="lib.contrib.present">
+ <fail message="freenet-ext not available"/>
+ </target>
+
+ <target name="libdep-bc" depends="env" unless="lib.bouncycastle.present">
+ <fail message="Bouncycastle not available (or not recent enough); try https://www.bouncycastle.org/download/${bc.jar}"/>
+ </target>
+
+ <target name="libdep-junit" depends="env" unless="lib.junit.present">
+ <fail message="JUnit4 not available"/>
+ </target>
+
+ <target name="libdep-hamcrest" depends="env" unless="lib.hamcrest.present">
+ <fail message="Hamcrest-core not available"/>
+ </target>
+
+ <target name="libdep-findbugs" depends="env" unless="lib.findbugs.present">
+ <fail message="findbugs not available"/>
+ </target>
+
+ <target name="libdep-pmd" depends="env" unless="lib.pmd.present">
+ <fail message="PMD not available"/>
+ </target>
+
+ <target name="libdep-cpd" depends="env" unless="lib.cpd.present">
+ <fail message="CPD not available"/>
+ </target>
+
+ <target name="libdep-gwt-user" depends="env" unless="gjs.lib.gwt-user.present">
+ <fail message="GWT-user not present"/>
+ </target>
+
+ <target name="libdep-gwt-dev" depends="env" unless="gjs.lib.gwt-dev.present">
+ <fail message="GWT-dev not present"/>
+ </target>
+
+ <!-- =================================================================== -->
+ <!-- Standard build -->
+ <!-- =================================================================== -->
+
+ <target name="init">
+ <mkdir dir="${main.make}"/>
+ <mkdir dir="${main.dst}"/>
+ <mkdir dir="${test.make}"/>
+ <mkdir dir="${test.dst}"/>
+ </target>
+
+ <target name="dep" depends="ensure-ext, ensure-bc, ensure-gjs"/>
+
+ <target name="check-version-file">
+ <uptodate property="version.uptodate"
+ targetfile="${main.make}/${version.src}"
+ srcfile="${main.src}/${version.src}"/>
+ </target>
+
+ <target name="build-version-file" depends="check-version-file" unless="version.uptodate">
+ <!-- Create the Version file with patched revision number in ${main.make} -->
+ <copy file="${main.src}/${version.src}" tofile="${main.make}/${version.src}" overwrite="true" />
+ <delete file="${main.make}/${version.make}" quiet="true" />
+ <replace file="${main.make}/${version.src}">
+ <replacefilter token="@custom@" value="${git.revision}"/>
+ </replace>
+ <echo message="Updated build version to ${git.revision} in ${main.make}/${version.src}"/>
+ </target>
+
+ <target name="build" depends="init, dep, build-version-file">
+ <!-- Create the time stamp -->
+ <tstamp/>
+ <!-- Create the build directory structure used by compile -->
+ <javac srcdir="${main.src}" destdir="${main.make}" debug="on" source="1.7" target="1.7" includeAntRuntime="false" encoding="UTF-8">
+ <compilerarg line="${javac.args}"/>
+ <classpath refid="lib.path"/>
+ <!-- tell javac to find Version.java in ${main.make}, not ${main.src} -->
+ <sourcepath><pathelement path="${main.make}"/></sourcepath>
+ <!-- following a very temporary list of files to be build -->
+ <include name="**/*.java"/>
+ <exclude name="**/package-info.java"/>
+ <exclude name="${version.src}"/>
+ </javac>
+
+ <!-- Force compile of Version.java in case compile of ${main.src} didn't trigger it -->
+ <javac srcdir="${main.make}" destdir="${main.make}" debug="on" source="1.7" target="1.7" includeAntRuntime="false" encoding="UTF-8">
+ <compilerarg line="${javac.args}"/>
+ <classpath refid="lib.path"/>
+ <include name="${version.src}"/>
+ </javac>
+
+ <!-- Copy web interface static files to the build dir -->
+ <copy todir="${main.make}/freenet/clients/http/staticfiles">
+ <fileset dir="${main.src}/freenet/clients/http/staticfiles"/>
+ </copy>
+ <!-- Copy translation files to the build dir -->
+ <copy todir="${main.make}/freenet/l10n">
+ <fileset dir="${main.src}/freenet/l10n">
+ <include name="freenet.l10n.*.properties"/>
+ <include name="iso-*.tab"/>
+ </fileset>
+ </copy>
+ <!-- Copy the dependencies.properties file -->
+ <copy todir="${main.make}" file="dependencies.properties"/>
+ </target>
+
+ <target name="package-only" depends="build">
+ <property name="lib.contrib.loc" location="${lib.contrib.dir}" />
+ <property name="lib.loc" location="${lib.dir}" />
+ <pathconvert property="lib.jars.package" refid="lib.path" pathsep=" ">
+ <map from="${lib.contrib.loc}/" to=""/>
+ <map from="${lib.loc}/" to=""/>
+ </pathconvert>
+ <jar jarfile="${jar.dst}" basedir="${main.make}">
+ <manifest>
+ <attribute name="Permissions" value="all-permissions"/>
+ <attribute name="Application-Name" value="Freenet REference Daemon"/>
+
+ <attribute name="Required-Ext-Version" value="29"/>
+ <attribute name="Recommended-Ext-Version" value="29"/>
+ <section name="common">
+ <attribute name="Specification-Title" value="Freenet"/>
+ <attribute name="Specification-Version" value="0.7.5"/>
+ <attribute name="Specification-Vendor" value="freenetproject.org"/>
+ <attribute name="Implementation-Title" value="Freenet"/>
+ <attribute name="Implementation-Version" value="0.7.5 ${git.revision}"/>
+ <attribute name="Implementation-Vendor" value="freenetproject.org"/>
+ </section>
+ </manifest>
+ <exclude name="${version.src}"/>
+ </jar>
+ </target>
+
+ <target name="package" depends="unit, package-only" description="build standard binary packages (Freenet daemon)"/>
+
+ <target name="unit-build" depends="build" unless="${test.skip}">
+ <antcall target="libdep-junit"/>
+ <antcall target="libdep-hamcrest"/>
+ <javac srcdir="${test.src}" destdir="${test.make}" debug="on" source="1.7" target="1.7" includeAntRuntime="false" encoding="UTF-8">
+ <compilerarg line="${javac.args}"/>
+ <classpath refid="libtest.path"/>
+ <include name="**/*.java"/>
+ <exclude name="*.java"/>
+ </javac>
+ <copy todir="${test.make}/freenet/client/filter/png" overwrite="true">
+ <fileset dir="${test.src}/freenet/client/filter/png"/>
+ </copy>
+ <copy todir="${test.make}/freenet/client/filter/bmp" overwrite="true">
+ <fileset dir="${test.src}/freenet/client/filter/bmp"/>
+ </copy>
+ <copy todir="${test.make}/freenet/client/filter/mp3" overwrite="true">
+ <fileset dir="${test.src}/freenet/client/filter/mp3"/>
+ </copy>
+ <copy todir="${test.make}/freenet/client/filter/gif" overwrite="true">
+ <fileset dir="${test.src}/freenet/client/filter/gif"/>
+ </copy>
+ <copy todir="${test.make}/freenet/crypt/ciphers/rijndael-gladman-test-data" overwrite="true">
+ <fileset dir="${test.src}/freenet/crypt/ciphers/rijndael-gladman-test-data"/>
+ </copy>
+ <copy todir="${test.make}/freenet/l10n" overwrite="true">
+ <fileset dir="${test.src}/freenet/l10n" includes="*.properties"/>
+ </copy>
+ </target>
+
+ <target name="unit" depends="unit-build" unless="${test.skip}">
+ <junit printsummary="yes" haltonfailure="${test.haltonfailure}" logfailedtests="yes" showoutput="yes" filtertrace="no" fork="on" forkmode="perTest" maxmemory="256m" dir="${test.dst}">
+ <classpath refid="libtest.path"/>
+ <formatter type="plain" usefile="false"/>
+ <formatter type="xml" if="${test.xml_output}"/>
+ <formatter classname="org.apache.tools.ant.taskdefs.optional.junit.TearDownOnVmCrash" usefile="false"/>
+ <test if="test.class" name="${test.class}" todir="${test.dst}"/>
+ <batchtest unless="test.class" fork="yes" todir="${test.dst}">
+ <fileset dir="${test.make}" includes="**/*Test.class"/>
+ </batchtest>
+ <sysproperty key="test.verbose" value="${test.verbose}"/>
+ <sysproperty key="test.benchmark" value="${test.benchmark}"/>
+ <sysproperty key="test.extensive" value="${test.extensive}"/>
+ <!-- TODO source needs to be edited too; the old variables were "benchmark" and "extensiveTesting" -->
+ <assertions><enable/></assertions>
+ </junit>
+ </target>
+
+ <target name="clean" description="clean standard build products">
+ <delete dir="${main.make}"/>
+ <delete dir="${main.dst}"/>
+ <delete dir="${test.make}"/>
+ <delete dir="${test.dst}"/>
+ </target>
+
+ <!-- =================================================================== -->
+ <!-- Dependencies (contrib, ie. freenet-ext.jar) -->
+ <!-- =================================================================== -->
+
+ <target name="ensure-ext" depends="libdep-ext">
+ <!-- clean build does nothing, since this is external library. -->
+ </target>
+
+ <target name="ensure-bc" depends="libdep-bc">
+ <!-- clean build does nothing, since this is external library. -->
+ </target>
+
+ <!-- =================================================================== -->
+ <!-- Generate GWT code -->
+ <!-- =================================================================== -->
+
+ <target name="env-gjs">
+ <available property="gjs.present" file="${gjs.dst}" type="dir"/>
+ </target>
+
+ <target name="ensure-gjs" depends="env-gjs" unless="gjs.present">
+ <antcall target="build-gjs"/>
+ </target>
+
+ <target name="build-gjs" depends="libdep-gwt-user, libdep-gwt-dev">
+ <ant antfile="build.xml" dir="${gjs.dir}">
+ <reference refid="gjs.lib.path" torefid="project.class.path"/>
+ </ant>
+ </target>
+
+ <target name="clean-gjs">
+ <ant antfile="build.xml" dir="${gjs.dir}" target="deleteGenerated"/>
+ </target>
+
+ <!-- =================================================================== -->
+ <!-- Documentation -->
+ <!-- =================================================================== -->
+
+ <target name="init-doc" unless="${doc.skip}">
+ <mkdir dir="${doc.api}"/>
+ </target>
+
+ <target name="javadoc" depends="init-doc, dep" unless="${doc.skip}">
+ <javadoc classpathref="lib.path" sourcepath="${main.src}" destdir="${doc.api}" use="true">
+ <link href="http://docs.oracle.com/javase/6/docs/api/"/>
+ </javadoc>
+ </target>
+
+ <target name="doc" depends="javadoc" description="build documentation">
+ <!-- currently freenet has no other documentation apart from javadocs -->
+ </target>
+
+ <target name="clean-doc" unless="${doc.skip}">
+ <delete dir="${doc.api}"/>
+ </target>
+
+</project>
diff --git a/net-p2p/freenet/files/build.properties b/net-p2p/freenet/files/build.properties
new file mode 100644
index 000000000000..21fecf30c803
--- /dev/null
+++ b/net-p2p/freenet/files/build.properties
@@ -0,0 +1,95 @@
+##
+# Properties you can set to affect the build process.
+#
+# This file contains default values that are checked-in to version control.
+#
+# End users should not edit this file to set machine-specific properties;
+# instead, create a new file called override.properties and set them there.
+#
+
+################################################################################
+## build files/directories
+
+main.src=src
+main.make=build/main
+main.dst=dist
+
+test.src=test
+test.make=build/test
+test.dst=run
+
+doc.src=doc
+doc.dst=javadoc
+doc.api=javadoc
+
+################################################################################
+## external dependencies
+
+# dir for common library jars
+lib.dir = lib
+
+# dir for freenet library jars (aka freenet-ext or "contrib" jars)
+lib.contrib.dir = lib/freenet
+## if you use the git submodule in ./contrib (legacy-27 branch)
+## by running `git submodule init && git submodule update`
+## contrib.ant is needed for the old legacy layout
+#lib.contrib.dir = contrib/freenet_ext
+#contrib.ant = ${lib.contrib.dir}/build.xml
+## if you clone the contrib package separately (master branch)
+#lib.contrib.dir = ../contrib/freenet-ext/dist
+
+# dir that freenet library jars will be installed to, relative to freenet.jar
+lib.contrib.dir.rel = freenet
+
+# jars from ${lib.dir} to use
+bc.jar = bcprov-jdk15on-154.jar
+lib.jars = ${bc.jar}
+#lib.jars = wrapper.jar db-je.jar bdb-je.jar commons-compress.jar
+
+# jars from ${lib.dir} to use, for tests
+libtest.jars = junit4.jar hamcrest-core.jar
+
+# jars from ${lib.contrib.dir} to use
+lib.contrib.jars = freenet-ext.jar bitcollider-core.jar db4o.jar lzmajio.jar mantissa.jar \
+ wrapper.jar db-je.jar bdb-je.jar commons-compress.jar
+
+# jars from ${lib.dir} to use, for compiling GWT javascript
+gjs.lib.jars = null
+#gjs.lib.jars = gwt-dev-linux.jar gwt-dev-windows.jar gwt-dev.jar gwt-user.jar \
+# commons-collections3.jar ant.jar eclipse-ecj.jar
+
+findbugs.dir = findbugs
+findbugs.path = ${findbugs.dir}/lib/findbugs-ant.jar
+
+pmd.dir =
+################################################################################
+## build tool options
+
+# Javac
+javac.args=-Xlint -Xlint:-deprecation
+
+# Test properties
+test.skip=false
+test.verbose=false
+test.benchmark=false
+test.extensive=false
+test.xml_output=true
+test.haltonfailure=yes
+
+# select a single test to run
+#test.class=
+
+# Build javadoc
+doc.skip=false
+
+# Run findbugs
+findbugs.skip=false
+pmd.skip=false
+cpd.skip=false
+
+################################################################################
+## misc options
+
+# Hack around property expansion not featured in ant <= 1.7.1
+# see http://ant.apache.org/manual/properties.html#if+unless
+true=true