+ </echo>
+ </target>
+
+ <target name="-generatejnlpf">
+ <presetdef name="jnlpf">
+ <jnlp codebase="${WebStartLocation}">
+ <information>
+ <title>Jalview</title>
+ <vendor>The Barton Group</vendor>
+ <homepage href="http://www.jalview.org" />
+ <description>Jalview Multiple Alignment Editor</description>
+ <description kind="short">Jalview</description>
+ <icon href="${WebStartImage}" />
+ <offline_allowed />
+ </information>
+ <resources>
+ <j2se version="1.8+" />
+ <jar main="true" href="jalview.jar"/>
+ <fileset dir="${packageDir}">
+ <exclude name="jalview.jar" />
+ <include name="*.jar" />
+ <include name="*_*.jar" />
+ <exclude name="*quaqua*.jar" />
+ </fileset>
+ <property name="jalview.version" value="${JALVIEW_VERSION}" />
+ </resources>
+ <resources os="Mac OS X">
+ <fileset dir="${packageDir}">
+ <include name="quaqua-filechooser-only-8.0.jar"/>
+ <include name="*quaqua64*.jnilib.jar" />
+ </fileset>
+ </resources>
+
+ <application_desc main_class="jalview.bin.Jalview">
+ </application_desc>
+ <security>
+ <all_permissions />
+ </security>
+ </jnlp>
+ </presetdef>
+
+ <jnlpf toFile="${jnlpFile}" />
+ <!-- add the add-modules j2se attribute for java 9 -->
+ <replace file="${jnlpFile}" value="j2se version="1.8+" initial-heap-size="${inih}" max-heap-size="${maxh}" java-vm-args="--add-modules=java.se.ee --illegal-access=warn"">
+ <replacetoken>j2se version="1.8+"</replacetoken>
+ </replace>
+ </target>
+
+ <target name="-dofakejnlpfileassoc" depends="-generatejnlpf" if="nojnlpfileassocs">
+ <echo message="Not adding JNLP File Associations" />
+ </target>
+
+ <target name="-dojnlpfileassoc" depends="-generatejnlpf" unless="nojnlpfileassocs">
+ <replace file="${jnlpFile}">
+ <replacetoken>
+ <![CDATA[</information>]]></replacetoken>
+ <replacevalue>
+ <![CDATA[
+ <association mime-type="application-x/ext-file" extensions="fa" />
+ <association mime-type="application-x/ext-file" extensions="fasta" />
+ <association mime-type="application-x/ext-file" extensions="mfa" />
+ <association mime-type="application-x/ext-file" extensions="fastq" />
+ <association mime-type="application-x/ext-file" extensions="blc" />
+ <association mime-type="application-x/ext-file" extensions="msf" />
+ <association mime-type="application-x/ext-file" extensions="pfam" />
+ <association mime-type="application-x/ext-file" extensions="aln"/>
+ <association mime-type="application-x/ext-file" extensions="pir"/>
+ <association mime-type="application-x/ext-file" extensions="amsa"/>
+ <association mime-type="application-x/ext-file" extensions="stk"/>
+ <association mime-type="application-x/ext-file" extensions="jvp"/>
+ </information>]]></replacevalue>
+ </replace>
+ <echo message="Added file associations to JNLP file" />
+</target>
+<target name="writejnlpf" depends="-dojnlpfileassoc,-dofakejnlpfileassoc">
+</target>
+
+<target name="buildextclients" depends="init">
+ <input message="Building external client source from WSDLs - Do you really want to do this ? (Yy/Nn)" validargs="Y,y,n,N" defaultvalue="N" addproperty="doextbuild.response" />
+ <condition property="dontextbuild">
+ <equals arg1="n" arg2="${doextbuild.response}" />
+ </condition>
+ <condition property="dontextbuild">
+ <equals arg1="N" arg2="${doextbuild.response}" />
+ </condition>
+ <fail if="dontextbuild">
+ Build External Client Code process aborted by user. Jalview source is unchanged.
+ </fail>
+ <!-- Currently, this doesn't happen automatically.
+ 1. Run WSDL2Java as below, which generates an ext.vamsas +
+ vamsas.<datapackages> fileset.
+ 2. refactor ext.vamsas.SpecificserviceWS* to
+ ext.vamsas.ServiceclassWS* that implements the ServiceclassWSI interface.
+ 3. Update the jalview.ws.*WServices classes to reflect the
+ interface type, and all locations of this wsdl type that Jalview
+ might be using.
+
+-->
+ <path id="axisbuild">
+ <path refid="build.classpath" />
+ </path>
+ <taskdef resource="axis-tasks.properties" classpathref="axisbuild" />
+ <move todir="./bak">
+ <fileset dir="${sourceDir}" id="client">
+ <include name="${wsdl.ClientNS}/*.*" />
+ </fileset>
+ </move>
+
+ <axis-wsdl2java output="${sourceDir}" verbose="true" url="${wsdl.MsaWS2}" serverside="false" deployscope="Request" debug="false" helpergen="true" all="true">
+ <mappingSet>
+ <mapping namespace="${wsdl.Namespace}" package="${wsdl.ClientNS}" />
+ <mapping namespace="http://dataTypes.vamsas" package="${wsdl.ClientNS}" />
+ </mappingSet>
+ </axis-wsdl2java>
+</target>
+
+<target name="makedist" depends="build, buildPropertiesFile, linkcheck, buildindices">
+ <fail if="clover.jar">
+ Ignoring request to build jalview distribution with clover-instrumented classes
+ </fail>
+ <!-- make the package jar if not already existing -->
+ <mkdir dir="${packageDir}" />
+ <!-- clean dir if it already existed -->
+ <delete>
+ <fileset dir="${packageDir}">
+ <include name="*.jar" />
+ </fileset>
+ </delete>
+ <jar destfile="${packageDir}/${outputJar}" index="true">
+ <manifest>
+ <attribute name="Main-Class" value="jalview.bin.Jalview" />
+ <attribute name="Permissions" value="all-permissions" />
+ <attribute name="Application-Name" value="Jalview Desktop" />
+ <attribute name="Codebase" value="${application.codebase}" />
+ </manifest>
+ <fileset dir="${outputDir}/">
+ <exclude name="cache*/**" />
+ <exclude name="*.jar" />
+ <exclude name="*.jar.*" />
+ <exclude name="**/*.jar" />
+ <exclude name="**/*.jar.*" />
+ </fileset>
+ </jar>
+
+ <copy toDir="${packageDir}" flatten="true">
+ <fileset dir="${outputDir}">
+ <include name="*.jar" />
+ <include name="**/*.jar" />
+ </fileset>
+ </copy>
+</target>
+
+
+<!-- jalopy code reformatter -->
+<target name="sourcescrub" depends="init,build">
+ <jalopy destdir="jsrc" classpathref="run.classpath" convention="jalview-jalopy.xml">
+ <fileset dir="${sourceDir}">
+ <include name="*.java" />
+ <include name="**/*.java" />
+ <include name="**/**/*.java" />
+ </fileset>
+ </jalopy>
+</target>
+
+
+
+<!-- Compile, package and obfuscate Jalview Applet -->
+<target name="makeApplet" depends="obfuscate" description="assemble the final jalviewLite applet jar with or without obfuscation" />
+
+<target name="compileApplet" depends="init,clean">
+ <mkdir dir="${outputDir}" />
+ <javac source="${javac.source}" target="${javac.target}" srcdir="${sourceDir}" destdir="${outputDir}" debug="${javac.debug}" classpathref="jalviewlite.deps" includes="jalview/appletgui/**" excludes="ext/**,gui/**,jbgui/**,MCview/**,org/**,vamsas/**,jalview/ext/rbvi/**,jalview/ext/paradise/**,jalview/ext/ensembl/**,jalview/ext/so/**" />
+</target>
+
+<target name="packageApplet" depends="compileApplet, buildPropertiesFile">
+ <copy file="${resourceDir}/images/link.gif" toFile="${outputDir}/images/link.gif" />
+ <copy todir="${outputDir}/lang">
+ <fileset dir="${resourceDir}/lang">
+ <include name="**.*" />
+ </fileset>
+ </copy>
+ <jar destfile="in.jar" index="true">
+ <manifest>
+ <attribute name="Main-Class" value="jalview.bin.JalviewLite" />
+ <attribute name="Application-Name" value="JalviewLite" />
+ <attribute name="Codebase" value="${applet.codebase}" />
+ </manifest>
+ <fileset dir="${outputDir}">
+ <include name="com/**" />
+ <include name="MCview/**" />
+ <include name="jalview/**" />
+ <include name=".build_properties" />
+ <include name="images/link.gif" />
+ <include name="lang/**" />
+ </fileset>
+ </jar>
+</target>
+<target name="obfuscate" depends="-obfuscatefake,-obfuscatereally">
+</target>
+<target name="-obfuscatefake" depends="packageApplet" if="donotobfuscate">
+ <copy file="in.jar" tofile="${jalviewLiteJar}" overwrite="true" />
+ <delete file="in.jar" />
+</target>
+<target name="-obfuscatereally" unless="donotobfuscate">
+
+ <path id="obfuscateDeps.path">
+ <pathelement location="${applet.jre.tools}" />
+ <pathelement location="appletlib/${jmolJar}" />
+ <pathelement location="lib/${varnaJar}" />
+ <pathelement location="appletlib/${jsoup}" />
+ <pathelement location="appletlib/${jsonSimple}" />
+ <pathelement location="appletlib/${javaJson}" />
+ <fileset dir="${java.home}/lib">
+ <include name="plugin.jar" />
+ </fileset>
+ </path>
+ <taskdef resource="proguard/ant/task.properties" classpath="utils/proguard_5.3.3.jar" />
+
+ <proguard verbose="true" >
+ <injar file="in.jar" />
+ <outjar file="${jalviewLiteJar}" />
+ <libraryjar refid="obfuscateDeps.path" />
+ <dontwarn />
+ <keep access="public" type="class" name="jalview.bin.JalviewLite">
+ <field access="public" />
+ <method access="public" />
+ <constructor access="public" />
+ </keep>
+ <keep access="public" type="class" name="jalview.appletgui.AlignFrame">
+ <field access="public" />
+ <method access="public" />
+ <constructor access="public" />
+ </keep>
+
+ <keep name="jalview.json.binding**">
+ <constructor/>
+ <method name="*"/>
+ </keep>
+
+ <keep access="public" type="class" name="MCview.PDBfile">
+ <field access="public" />
+ <method access="public" />
+ <constructor access="public" />
+ </keep>
+
+ <keep access="public" type="class" name="jalview.ws.jws1.Annotate3D">
+ <field access="public" />
+ <method access="public" />
+ <constructor access="public" />
+ </keep>
+
+ <keep access="public" type="class" name="jalview.ext.jmol.JmolParser">
+ <field access="public" />
+ <method access="public" />
+ <constructor access="public" />
+ </keep>
+
+
+ <!-- -libraryjars "${obfuscateDeps}"
+ -injars in.jar
+ -outjars jalviewApplet.jar
+ -keep public class jalview.bin.JalviewLite
+ { public * ; } -->
+ </proguard>
+ <delete file="in.jar" />
+</target>
+
+<target name="jaxb-bindings" depends="init" description="Generates JAXB bindings for supported Jalview XML models (needs xjc on the path)">
+ <delete>
+ <fileset dir="${sourceDir}/jalview/xml/binding/jalview">
+ <include name="*.java" />
+ </fileset>
+ </delete>
+ <exec executable="xjc">
+ <arg value="${schemaDir}/jalview.xsd"/>
+ <arg value="-d"/>
+ <arg value="${sourceDir}"/>
+ <arg value="-p"/>
+ <arg value="jalview.xml.binding.jalview"/>
+ </exec>
+ <delete>
+ <fileset dir="${sourceDir}/jalview/xml/binding/embl">
+ <include name="*.java" />
+ </fileset>
+ </delete>
+
+ <exec executable="xjc">
+ <arg value="${schemaDir}/embl.xsd"/>
+ <arg value="-d"/>
+ <arg value="${sourceDir}"/>
+ <arg value="-b"/>
+ <arg value="${schemaDir}/embl_bindings.xml"/>
+ <arg value="-p"/>
+ <arg value="jalview.xml.binding.embl"/>
+ </exec>
+
+ <delete>
+ <fileset dir="${sourceDir}/jalview/xml/binding/uniprot">
+ <include name="*.java" />
+ </fileset>
+ </delete>
+
+ <exec executable="xjc">
+ <arg value="${schemaDir}/uniprot.xsd"/>
+ <arg value="-d"/>
+ <arg value="${sourceDir}"/>
+ <arg value="-p"/>
+ <arg value="jalview.xml.binding.uniprot"/>
+ </exec>
+</target>
+
+<target name="sourcedist" description="create jalview source distribution" depends="init">
+ <delete file="${source.dist.name}" />
+ <!-- temporary copy of source to update timestamps -->
+ <copy todir="_sourcedist">
+ <fileset dir=".">
+ <exclude name=".*" />
+ <exclude name="**/.*" />
+ <exclude name="*.class" />
+ <exclude name="**/*.class" />
+ <include name="LICENSE" />
+ <include name="README" />
+ <include name="build.xml" />
+ <include name="jalview-jalopy.xml" />
+ <include name="JalviewApplet.jpx" />
+ <include name="JalviewX.jpx" />
+ <include name="nbbuild.xml" />
+ <include name="nbproject/genfiles.properties" />
+ <include name="nbproject/project.properties" />
+ <include name="nbproject/project.xml" />
+ <include name="${sourceDir}/*.java" />
+ <include name="${sourceDir}/**/*.java" />
+ <include name="${sourceDir}/**/*.cdr" />
+ <include name="${libDir}/**/*" />
+ <include name="${resourceDir}/**/*" />
+ <include name="${helpDir}/**/*" />
+ <include name="appletlib/${jmolJar}" />
+ <include name="appletlib/${jsonSimple}" />
+ <include name="appletlib/${javaJson}" />
+ <exclude name="**/*locales" />
+ <exclude name="*locales/**" />
+ <exclude name="utils/InstallAnywhere/**Build.iap_xml" />
+ <exclude name="utils/InstallAnywhere/**Build*/**" />
+ <exclude name="utils/InstallAnywhere/**Build*/**" />
+ <exclude name="utils/InstallAnywhere/.build*.*/**" />
+ <exclude name="utils/InstallAnywhere/**locale*" />
+ <exclude name="utils/InstallAnywhere/**locale*/**" />
+ <exclude name="utils/InstallAnywhere/**locale*/**" />
+ <include name="${schemaDir}/**/*" />
+ <include name="utils/**/*" />
+ <include name="${docDir}/**/*" />
+ <include name="examples/**/*" />
+ </fileset>
+ </copy>
+
+ <tstamp prefix="build">
+ <format property="year" pattern="yyyy" />
+ </tstamp>
+ <!-- each replacetoken CDATA body must be on one line -
+ otherwise the pattern doesn't match -->
+ <replace value="${JALVIEW_VERSION}">
+ <replacetoken>
+ <![CDATA[$$Version-Rel$$]]>
+ </replacetoken>
+ <fileset dir="_sourcedist">
+ <include name="**/*" />
+ </fileset>
+ </replace>
+ <replace dir="_sourcedist" value="${build.year}">
+ <replacetoken>
+ <![CDATA[$$Year-Rel$$]]>
+ </replacetoken>
+ <fileset dir="_sourcedist">
+ <include name="**/*" />
+ </fileset>
+ </replace>
+
+ <tar destfile="${source.dist.name}" compression="gzip">
+ <tarfileset dir="_sourcedist/" prefix="jalview" preserveLeadingSlashes="true">
+ </tarfileset>
+ </tar>
+
+ <delete dir="_sourcedist" />