You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
SIPRP/trunk/PlanosActuacao/ant/common/evo-app-deploy-common.xml

900 lines
32 KiB

<project name="evo-app-deploy-common" basedir="../../" >
<!--xmlns:ac="antlib:net.sf.antcontrib"-->
<import file="evo-app-load-properties.xml" />
<!-- PROPERTIES -->
<property name="properties.key.name" value="name" />
<property name="properties.key.major" value="major" />
<property name="properties.key.minor" value="minor" />
<property name="properties.key.build" value="build" />
<path id="lib.dir-jars">
<fileset dir="lib" >
<include name="*.jar"/>
</fileset>
</path>
<!-- SETUP -->
<target name="prepare-deploy-location">
</target>
<target name="run-jnlp-task" >
<typedef classpathref="lib.classpath" resource="net/jtools/classloadertask/antlib.xml">
<classpath>
<path refid="lib.classpath"/>
</classpath>
</typedef>
<classloader loader="project">
<classpath>
<fileset dir="${app.lib.dir}" includes="*.jar"/>
</classpath>
</classloader>
<taskdef name="generate-jnlp" classpathref="lib.classpath" classname="com.evolute.ant.JNLPGeneratorTask" onerror="ignore"/>
<if>
<isset property="TESTDEPLOY"/>
<then>
<generate-jnlp propertiesDir="${properties.dir}" basedir="${app.dir}" production="false"/>
</then>
<else>
<generate-jnlp propertiesDir="${properties.dir}" basedir="${app.dir}" production="true"/>
</else>
</if>
<antcall target="send-jnlp"/>
</target>
<!-- DEPLOY -->
<target name="load-properties" />
<target name="pre-deploy" />
<target name="ask-deploy.version" unless="deploy.version">
<input defaultvalue="" addproperty="deploy.version">
<handler classpathref="lib.tools.classpath" classname="com.evolute.ant.VersionInputHandler" />
</input>
</target>
<taskdef resource="net/sf/antcontrib/antcontrib.properties">
<classpath>
<pathelement location="${basedir}/lib.tools/ant-contrib-1.0b3.jar"/>
</classpath>
</taskdef>
<target name="ask-deploy.jars" unless="deploy.jars">
<property name="deploy.jars" refid="lib.dir-jars"/>
<var name="deploy.jars" value="${basedir}/${app.appName}.jar:${deploy.jars} "/>
</target>
<target name="ask-deploy.user" unless="deploy.user">
<input message="" addproperty="deploy.user">
<handler classpathref="lib.tools.classpath" classname="com.evolute.ant.UserInputHandler" />
</input>
</target>
<target name="ask-deploy.password" unless="deploy.password">
<input message="password:>" addproperty="deploy.password">
<handler classpathref="lib.tools.classpath" classname="com.evolute.ant.PasswordInputHandler" />
</input>
</target>
<target name="app-deploy-version" if="deploy.version" depends="ask-deploy.jars,ask-deploy.user,ask-deploy.password" >
<antcall target="app-deploy-create-jar"/>
<antcall target="pre-deploy" />
<antcall target="run-jnlp-task" />
<antcall target="update-jar-jnlp"/>
<condition property="do.abort">
<equals arg1="${deploy.jars}" arg2="null"/>
</condition>
<fail if="do.abort">Deploy cancelled</fail>
<antcall target="app-deploy-version-jars"/>
</target>
<!--<scriptdef language="javascript" name="upper">
<attribute name="string" />
<attribute name="to" />
project.setProperty( attributes.get( "to" ),
attributes.get( "string" ).toUpperCase() );
</scriptdef>-->
<target name="update-jar-jnlp">
<mkdir dir="${app.build.dir}/JNLP-INF"/>
<!--<upper string="${app.name}" to="app.name.upper"/>-->
<!--<echo message="olha auqui o nome em maiusculas ${app.name.upper}"></echo>-->
<if>
<isset property="TESTDEPLOY"/>
<then>
<copy file="${basedir}/jnlp/test/${app.name}.jnlp" tofile="${app.build.dir}/JNLP-INF/APPLICATION.JNLP"/>
</then>
<else>
<copy file="${basedir}/jnlp/production/${app.name}.jnlp" tofile="${app.build.dir}/JNLP-INF/APPLICATION.JNLP"/>
</else>
</if>
<jar destfile="${app.deploy.dist.dir}/${app.jar.name}" update="true" >
<fileset dir="${app.build.dir}">
<include name="**/*" />
</fileset>
</jar>
<copy todir="${app.deploy.dist.lib.dir}">
<fileset dir="${app.lib.dir}">
<include name="**/*" />
</fileset>
</copy>
</target>
<target name="app-version-increase-test">
<property name="TESTDEPLOY" value="yes"/>
<antcall target="app-version-increase-build"/>
</target>
<target name="app-version-increase-major">
<propertyfile file="${app.version.file}" comment="${app.version.comment}" >
<entry key="${properties.key.name}" value="${app.name}"/>
<entry key="${properties.key.major}" type="int" operation="+" value="1" pattern="0" />
<entry key="${properties.key.minor}" type="int" operation="=" value="0" pattern="0" />
<entry key="${properties.key.build}" type="int" operation="=" value="0" pattern="0" />
</propertyfile>
<antcall target="app-deploy-version"/>
</target>
<target name="app-version-increase-minor">
<propertyfile file="${app.version.file}" comment="${app.version.comment}" >
<entry key="${properties.key.name}" value="${app.name}"/>
<entry key="${properties.key.major}" type="int" operation="+" value="0" pattern="0" />
<entry key="${properties.key.minor}" type="int" operation="+" value="1" pattern="0" />
<entry key="${properties.key.build}" type="int" operation="=" value="0" pattern="0" />
</propertyfile>
<antcall target="app-deploy-version"/>
</target>
<target name="app-version-increase-build">
<exec executable="hostname" outputproperty="computer.hostname"/>
<propertyfile file="${app.version.file}" comment="${app.version.comment}" >
<entry key="${properties.key.name}" value="${app.name}"/>
<entry key="${properties.key.major}" type="int" operation="+" value="0" pattern="0" />
<entry key="${properties.key.minor}" type="int" operation="+" value="0" pattern="0" />
<entry key="${properties.key.build}" type="int" operation="+" value="1" pattern="0" />
<entry key="timestamp" type="date" value="now"/>
<entry key="user" value="${user.name}"/>
<entry key="computer" value="${computer.hostname}"/>
</propertyfile>
<antcall target="app-deploy-version"/>
</target>
<target name="deploy-test" if="TESTDEPLOY">
</target>
<!-- NEW -->
<path id="lib.classpath">
<fileset dir="${app.lib.dir}">
<include name="*.jar"/>
</fileset>
</path>
<target name="send-jnlp">
<if>
<isset property="TESTDEPLOY"/>
<then>
<sshexec trust="yes" host="${app.deploy.docs.server}" username="${deploy.user}" command="mkdir -p /home/software/public_html/versoes_teste/${app.appName}/lib" password="${deploy.password}" />
<sshexec trust="yes" host="${app.deploy.docs.server}" username="${deploy.user}" command="chmod -R -f g+w /home/software/public_html/versoes_teste/${app.appName}; true" password="${deploy.password}" />
<sshexec trust="yes" host="${app.deploy.docs.server}" username="${deploy.user}" command="chown -R -f :software /home/software/public_html/versoes_teste/${app.appName}; true" password="${deploy.password}" />
</then>
<else>
<sshexec trust="yes" host="${app.deploy.docs.server}" username="${deploy.user}" command="mkdir -p /home/software/public_html/${app.appName}/lib" password="${deploy.password}" />
<sshexec trust="yes" host="${app.deploy.docs.server}" username="${deploy.user}" command="chmod -R -f g+w /home/software/public_html/${app.appName}; true" password="${deploy.password}" />
<sshexec trust="yes" host="${app.deploy.docs.server}" username="${deploy.user}" command="chown -R -f :software /home/software/public_html/${app.appName}; true" password="${deploy.password}" />
</else>
</if>
<if>
<isset property="TESTDEPLOY"/>
<then>
<if>
<available file="${basedir}/jnlp/test" type="dir"/>
<then>
<scp todir="${deploy.user}@${app.deploy.server}:/home/software/public_html/versoes_teste/${app.appName}" password="${deploy.password}" sftp="true" trust="true" >
<fileset dir="${basedir}/jnlp/test" includes="*.jnlp"/>
</scp>
</then>
</if>
<if>
<available file="${basedir}/jnlp/extensions/test" type="dir"/>
<then>
<scp todir="${deploy.user}@${app.deploy.server}:/home/software/public_html/versoes_teste/${app.appName}" password="${deploy.password}" sftp="true" trust="true" >
<fileset dir="${basedir}/jnlp/extensions/test" includes="*.jnlp"/>
</scp>
</then>
</if>
</then>
<else>
<scp todir="${deploy.user}@${app.deploy.server}:/home/software/public_html/${app.appName}" password="${deploy.password}" sftp="true" trust="true" >
<fileset dir="${basedir}/jnlp/production" includes="*.jnlp"/>
</scp>
<if>
<available file="${basedir}/jnlp/extensions/production" type="dir"/>
<then>
<scp todir="${deploy.user}@${app.deploy.server}:/home/software/public_html/${app.appName}" password="${deploy.password}" sftp="true" trust="true" >
<fileset dir="${basedir}/jnlp/extensions/production" includes="*.jnlp"/>
</scp>
</then>
</if>
</else>
</if>
</target>
<!-- CORRER INICIALMENTE -->
<path id="pack.dir-jars">
<fileset dir="signed/packed" >
<include name="lib/*.jar*"/>
<include name="${app.jar.name}*"/>
</fileset>
</path>
<target name="inicial">
<echo message="Jars: ${deploy.jars}"/>
<delete dir="signed"/>
<mkdir dir="signed/lib"/>
<mkdir dir="signed/packed/lib"/>
<property name="unsigned.jars" value=""/>
<property name="signed.jars" value=""/>
<for list="${deploy.jars}" param="jar" delimiter=":">
<sequential>
<exec dir="deploy/lib" command="jarsigner" outputproperty="@{jar}.verify">
<arg line="-verify"/>
<arg line="@{jar}"/>
</exec>
<if>
<contains string="${@{jar}.verify}" substring="jar is unsigned"/>
<then>
<var name="unsigned.jars" value="${unsigned.jars} @{jar}"/>
</then>
<else>
<if>
<contains string="${@{jar}.verify}" substring="jar verified"/>
<then>
<var name="signed.jars" value="${signed.jars} @{jar}"/>
</then>
</if>
</else>
</if>
</sequential>
</for>
<echo message="unsigned: ${unsigned.jars}"/>
<echo message="Signed jars = ${signed.jars}"/>
<echo message="Repacking..."/>
<for list="${unsigned.jars}" param="jar" delimiter=" ">
<sequential>
<apply executable="pack200" parallel="false" failonerror="false">
<arg value="--repack"/>
<arg value="--segment-limit=-1"/>
<fileset file="@{jar}" />
</apply>
</sequential>
</for>
<echo message=" home = ${user.home}"/>
<echo message="Signing..."/>
<for list="${unsigned.jars}" param="jar" delimiter=" ">
<sequential>
<signjar destDir="signed" alias="id evolute, consultoria informática do comodo ca limited" storetype="pkcs12" keystore="ant/evolute.keystore" storepass="Typein" >
<path>
<fileset file="@{jar}" />
</path>
</signjar>
</sequential>
</for>
<signjar destDir="signed" alias="id evolute, consultoria informática do comodo ca limited" storetype="pkcs12" keystore="ant/evolute.keystore" storepass="Typein" >
<path>
<fileset dir="deploy" includes="${app.name}.jar" />
</path>
</signjar>
<property name="deploy.jars.copy" value=""/>
<for list="${deploy.jars}" param="jar" delimiter=":">
<sequential>
<var name="deploy.jars.copy" value="${deploy.jars.copy} @{jar}"/>
</sequential>
</for>
<for list="${deploy.jars.copy}" param="jar" delimiter=" ">
<sequential>
<delete file="@{jar}.pack.gz"/>
</sequential>
</for>
<if>
<equals arg1="${jnlp.resources.property.jnlp.packEnabled}" arg2="true"/>
<then>
<echo message="Packing..."/>
<for list="${unsigned.jars}" param="jar" delimiter=" ">
<sequential>
<apply executable="pack200" parallel="false" dest="signed/packed/lib" failonerror="false">
<arg value="--segment-limit=-1"/>
<targetfile/>
<srcfile/>
<fileset file="@{jar}" />
<mapper type="glob" from="*" to="*.pack.gz" />
</apply>
</sequential>
</for>
</then>
</if>
<for list="${signed.jars}" param="jar" delimiter=" ">
<sequential>
<echo message="@{jar}"/>
<copy failonerror="false" verbose="true" overwrite="true" toDir="signed/lib" >
<fileset file="@{jar}"/>
</copy>
</sequential>
</for>
<property name="pack.jars" refid="pack.dir-jars"/>
<echo message="Pack jars = ${pack.jars}"/>
<property name="pack.jars.copy" value=""/>
<for list="${pack.jars}" param="jar" delimiter=":">
<sequential>
<var name="pack.jars.copy" value="${pack.jars.copy} @{jar}"/>
</sequential>
</for>
<echo message="Pack jars = ${pack.jars.copy}"/>
<java fork="true" failonerror="yes" classname="com.evolute.xml.BuildXML" classpathref="lib.tools.classpath">
<arg line="${basedir} ${deploy.jars.copy} ${pack.jars.copy} inicial"/>
</java>
<if>
<isset property="TESTDEPLOY"/>
<then>
<echo message="isto é um teste"/>
<echo message="other jars = ${other.jars}"/>
<scp todir="${deploy.user}@${app.deploy.server}:/home/software/public_html/versoes_teste/${app.appName}" password="${deploy.password}" sftp="true" trust="true" >
<fileset dir="${basedir}/signed" includes="${deploy.jars}"/>
</scp>
</then>
<else>
<echo message="other jars = ${other.jars}"/>
<scp todir="${deploy.user}@${app.deploy.server}:/home/software/public_html/${app.appName}" password="${deploy.password}" sftp="true" trust="true" >
<fileset dir="${basedir}/signed" includes="**/*.jar"/>
</scp>
</else>
</if>
<scp todir="${deploy.user}@${app.deploy.server}:/home/software/public_html/${app.appName}" password="${deploy.password}" sftp="true" trust="true" >
<fileset dir="${basedir}/signed/packed" includes="**/*.pack.gz"/>
</scp>
<if>
<isset property="TESTDEPLOY"/>
<then>
<sshexec trust="yes" host="${app.deploy.docs.server}" username="${deploy.user}" command="chmod -R -f g+w /home/software/public_html/versoes_teste/${app.appName}; true" password="${deploy.password}" />
<sshexec trust="yes" host="${app.deploy.docs.server}" username="${deploy.user}" command="chown -R -f :software /home/software/public_html/versoes_teste/${app.appName}; true" password="${deploy.password}" />
</then>
<else>
<sshexec trust="yes" host="${app.deploy.docs.server}" username="${deploy.user}" command="chmod -R -f g+w /home/software/public_html/${app.appName}; true" password="${deploy.password}" />
<sshexec trust="yes" host="${app.deploy.docs.server}" username="${deploy.user}" command="chown -R -f :software /home/software/public_html/${app.appName}; true" password="${deploy.password}" />
</else>
</if>
<delete file="signed/${app.appName}.jar"/>
<delete file="signed/packed/${app.appName}.jar.pack.gz"/>
</target>
<!-- FIM CORRER INICIALMENTE -->
<target name="deploy-production">
<echo message="Deploying to ${deploy.user}@${app.deploy.server}"/>
<if>
<available file="${basedir}/clientJars.xml" type="file"/>
<then>
<xmlproperty file="clientJars.xml"/>
<if>
<not>
<isset property="project.signed-jar-files.name"/>
</not>
<then>
<antcall target="inicial"/>
</then>
<else>
<antcall target="create-new-xml-client-jar"/>
<antcall target="delete-principal-jar"/>
</else>
</if>
</then>
<else>
<antcall target="inicial"/>
</else>
</if>
</target>
<target name="create-new-xml-client-jar">
<property name="deploy.jars.copy" value=""/>
<for list="${deploy.jars}" param="jar" delimiter=":">
<sequential>
<var name="deploy.jars.copy" value="${deploy.jars.copy} @{jar}"/>
</sequential>
</for>
<java fork="true" failonerror="yes" classname="com.evolute.xml.BuildXML" classpathref="lib.tools.classpath">
<arg line="${basedir} ${deploy.jars.copy} novo"/>
</java>
</target>
<target name="recognize-xml-2">
<xmlproperty file="clientJars.xml"/>
<xmlproperty file="newClientJars.xml"/>
</target>
<target name="compare-old-and-current-2" depends="recognize-xml-2">
<property name="different.jars" value=" "/>
<property name="toDeploy.packed" value=" "/>
<echo message="project.jar-files = ${project.jar-files.name}"/>
<echo message="project.new-jar-files = ${project.new-jar-files.name}"/>
<for list="${project.new-jar-files.name}" param="jar">
<sequential>
<if>
<and>
<equals arg1="${jnlp.resources.property.jnlp.packEnabled}" arg2="true"/>
<not>
<available file="${basedir}/signed/packed/${project.new-jar-files.name(@{jar}-path)}@{jar}.pack.gz" type="file"/>
</not>
<not>
<contains string="${signed.jars}" substring="@{jar}"/>
</not>
</and>
<then>
<var name="toDeploy.packed" value="${toDeploy.packed} ${project.new-jar-files.name(@{jar}-path)}@{jar}"/>
</then>
</if>
<if>
<not>
<available file="${basedir}/signed/${project.new-jar-files.name(@{jar}-path)}@{jar}" type="file"/>
</not>
<then>
<var name="different.jars" value="${different.jars} ${project.new-jar-files.name(@{jar}-path)}@{jar}"/>
</then>
<else>
<for list="${project.jar-files.name}" param="oldJar">
<sequential>
<if>
<equals arg1="@{jar}" arg2="@{oldJar}"/>
<then>
<property name="@{jar}-name-exists" value=""/>
<if>
<not>
<equals arg1="${project.jar-files.name(@{jar}-md5)}" arg2="${project.new-jar-files.name(@{oldJar}-md5)}"/>
</not>
<then>
<var name="different.jars" value="${different.jars} ${project.new-jar-files.name(@{jar}-path)}@{jar}"/>
</then>
</if>
</then>
</if>
</sequential>
</for>
<if>
<not>
<isset property="@{jar}-name-exists"/>
</not>
<then>
<var name="different.jars" value="${different.jars} ${project.new-jar-files.name(@{jar}-path)}@{jar}"/>
</then>
</if>
</else>
</if>
</sequential>
</for>
<echo message="different jars = ${different.jars}"/>
</target>
<target name="check-if-is-signed" depends="compare-old-and-current-2">
<property name="unsigned.jars" value=""/>
<property name="signed.jars" value=""/>
<for list="${different.jars}" param="jar" delimiter=" ">
<sequential>
<exec dir="deploy" command="jarsigner" outputproperty="@{jar}.verify">
<arg line="-verify"/>
<arg line="@{jar}"/>
</exec>
<if>
<contains string="${@{jar}.verify}" substring="jar is unsigned"/>
<then>
<var name="unsigned.jars" value="${unsigned.jars} @{jar}"/>
</then>
<else>
<if>
<contains string="${@{jar}.verify}" substring="jar verified"/>
<then>
<var name="signed.jars" value="${signed.jars} @{jar}"/>
</then>
</if>
</else>
</if>
</sequential>
</for>
<echo message="unsigned: ${unsigned.jars}"/>
<echo message="Signed jars = ${signed.jars}"/>
</target>
<target name="repack-jars" depends="check-if-is-signed">
<apply executable="pack200" parallel="false" failonerror="false">
<arg value="--repack"/>
<arg value="--segment-limit=-1"/>
<fileset dir="deploy" includes="${unsigned.jars}" />
</apply>
</target>
<target name="sign-jars-2" depends="repack-jars">
<echo message="Signing jars..."/>
<mkdir dir="signed/lib"/>
<mkdir dir="signed/packed/lib"/>
<signjar destDir="signed" alias="id evolute, consultoria informática do comodo ca limited" storetype="pkcs12" keystore="ant/evolute.keystore" storepass="Typein" >
<path>
<fileset dir="deploy" includes="${unsigned.jars}" />
</path>
</signjar>
<for list="${unsigned.jars}" param="jar" delimiter=" ">
<sequential>
<delete file="${basedir}/signed/packed/@{jar}.pack.gz"/>
</sequential>
</for>
</target>
<target name="copy-signed" depends="sign-jars-2">
<if>
<contains string="${signed.jars}" substring=" "/>
<then>
<copy failonerror="false" verbose="true" overwrite="true" toDir="signed" >
<fileset dir="deploy" includes="${signed.jars}"/>
</copy>
</then>
</if>
</target>
<target name="pack-jars-2" depends="copy-signed">
<echo message="Unsigned: ${unsigned.jars} "/>
<for list="${unsigned.jars}" param="jar" delimiter=" ">
<sequential>
<if>
<not>
<contains string="${toDeploy.packed}" substring="@{jar}"/>
</not>
<then>
<var name="toDeploy.packed" value="${toDeploy.packed} @{jar}"/>
</then>
</if>
</sequential>
</for>
<property name="toDeploy.packed.copy" value=""/>
<property name="deploy.signed" value=""/>
<if>
<equals arg1="${jnlp.resources.property.jnlp.packEnabled}" arg2="true"/>
<then>
<for list="${deploy.jars}" param="jar" delimiter=":">
<sequential>
<exec dir="deploy/lib" command="jarsigner" outputproperty="@{jar}.verify">
<arg line="-verify"/>
<arg line="@{jar}"/>
</exec>
<if>
<contains string="${@{jar}.verify}" substring="jar verified"/>
<then>
<var name="deploy.signed" value="${deploy.signed} @{jar}"/>
</then>
</if>
</sequential>
</for>
</then>
</if>
<for list="${toDeploy.packed}" param="jar" delimiter=" ">
<sequential>
<if>
<not>
<contains string="${deploy.signed}" substring="@{jar}"/>
</not>
<then>
<var name="toDeploy.packed.copy" value="${toDeploy.packed.copy} @{jar}"/>
</then>
</if>
</sequential>
</for>
<if>
<equals arg1="${jnlp.resources.property.jnlp.packEnabled}" arg2="true"/>
<then>
<echo message="Packing jars..."/>
<echo message="toDeploy.packed.copy = ${toDeploy.packed.copy}"/>
<apply executable="pack200" parallel="false" dest="signed/packed" failonerror="false">
<arg value="--modification-time=latest"/>
<arg value="--deflate-hint=true"/>
<arg value="--segment-limit=-1"/>
<targetfile/>
<srcfile/>
<fileset dir="signed" includes="${toDeploy.packed.copy}" />
<mapper type="glob" from="*" to="*.pack.gz" />
</apply>
</then>
</if>
</target>
<target name="alter-client-jar-xml" depends="pack-jars-2">
<property name="deploy.jars.copy" value=""/>
<for list="${deploy.jars}" param="jar" delimiter=":">
<sequential>
<var name="deploy.jars.copy" value="${deploy.jars.copy} @{jar}"/>
</sequential>
</for>
<property name="pack.jars" refid="pack.dir-jars"/>
<echo message="Pack jars = ${pack.jars}"/>
<property name="pack.jars.copy" value=""/>
<for list="${pack.jars}" param="jar" delimiter=":">
<sequential>
<var name="pack.jars.copy" value="${pack.jars.copy} @{jar}"/>
</sequential>
</for>
<echo message="Deploy jars = ${deploy.jars.copy}"/>
<echo message="Pack jars = ${pack.jars.copy}"/>
<java fork="true" failonerror="yes" classname="com.evolute.xml.BuildXML" classpathref="lib.tools.classpath">
<arg line="${basedir} ${deploy.jars.copy} ${pack.jars.copy} inicial"/>
</java>
</target>
<target name="verify-jars-at-server-2" depends="alter-client-jar-xml">
<echo message="nome da aplicacao = ${app.name}"/>
<if>
<isset property="TESTDEPLOY"/>
<then>
<sshexec verbose="false" failonerror="true" trust="yes" host="${app.deploy.server}" username="${deploy.user}" command='find /home/software/public_html/versoes_teste/${app.name} -name "*.jar*" -exec md5sum {} +' password="${deploy.password}" output="jarsAtServer.txt" outputproperty="trash" />
<java fork="true" failonerror="yes" classname="com.evolute.xml.ServerJarsXml" classpathref="lib.tools.classpath">
<arg line="versoes_teste/${app.appName}"/>
</java>
</then>
<else>
<sshexec verbose="false" failonerror="true" trust="yes" host="${app.deploy.server}" username="${deploy.user}" command='find /home/software/public_html/${app.name} -name "*.jar*" -exec md5sum {} +' password="${deploy.password}" output="jarsAtServer.txt" outputproperty="trash" />
<java fork="true" failonerror="yes" classname="com.evolute.xml.ServerJarsXml" classpathref="lib.tools.classpath">
<arg line="${app.appName}"/>
</java>
</else>
</if>
<xmlproperty file="currentServerJars.xml"/>
</target>
<target name="compare-client-and-server-jars" depends="verify-jars-at-server-2">
<xmlproperty file="clientJars.xml" prefix="new"/>
<xmlproperty file="currentServerJars.xml"/>
<property name="toDeploy.jars" value=""/>
<for list="${new.project.signed-jar-files.name}" param="jar">
<sequential>
<for list="${current-server-jar-files.name}" param="currJar">
<sequential>
<if>
<and>
<equals arg1="@{jar}" arg2="@{currJar}"/>
<equals arg1="${new.project.signed-jar-files.name(@{jar}-md5)}" arg2="${current-server-jar-files.name(@{currJar}-md5)}"/>
</and>
<then>
<property name="@{jar}-exists-on-server" value=""/>
</then>
</if>
</sequential>
</for>
<if>
<not>
<isset property="@{jar}-exists-on-server"/>
</not>
<then>
<var name="toDeploy.jars" value="${toDeploy.jars} ${new.project.signed-jar-files.name(@{jar}-path)}@{jar}"/>
</then>
</if>
</sequential>
</for>
<echo message="toDeploy.jars = ${toDeploy.jars}"/>
</target>
<target name="send-jars-to-server-2" depends="compare-client-and-server-jars">
<echo message="Jars to deploy: ${toDeploy.jars}"/>
<for list="${toDeploy.jars}" param="jar" delimiter=" ">
<sequential>
<if>
<and>
<contains string="@{jar}" substring=".pack.gz"/>
<equals arg1="${jnlp.resources.property.jnlp.packEnabled}" arg2="true"/>
</and>
<then>
<if>
<isset property="TESTDEPLOY"/>
<then>
<echo message="scp @{jar} ${deploy.user}@${app.deploy.server}:/home/software/public_html/versoes_teste/${app.appName}"/>
<scp todir="${deploy.user}@${app.deploy.server}:/home/software/public_html/versoes_teste/${app.appName}" password="${deploy.password}" sftp="true" trust="true" >
<fileset dir="${basedir}/signed/packed" includes="@{jar}"/>
</scp>
</then>
<else>
<echo message="scp @{jar} ${deploy.user}@${app.deploy.server}:/home/software/public_html/${app.appName}"/>
<scp todir="${deploy.user}@${app.deploy.server}:/home/software/public_html/${app.appName}" password="${deploy.password}" sftp="true" trust="true" >
<fileset dir="${basedir}/signed/packed" includes="@{jar}"/>
</scp>
</else>
</if>
</then>
<else>
<if>
<and>
<not>
<contains string="@{jar}" substring=".pack.gz"/>
</not>
<not>
<equals arg1="${jnlp.resources.property.jnlp.packEnabled}" arg2="true"/>
</not>
</and>
<then>
<if>
<isset property="TESTDEPLOY"/>
<then>
<echo message="scp @{jar} ${deploy.user}@${app.deploy.server}:/home/software/public_html/versoes_teste/${app.appName}"/>
<scp todir="${deploy.user}@${app.deploy.server}:/home/software/public_html/versoes_teste/${app.appName}" password="${deploy.password}" sftp="true" trust="true" >
<fileset dir="${basedir}/signed" includes="@{jar}"/>
</scp>
</then>
<else>
<echo message="scp @{jar} ${deploy.user}@${app.deploy.server}:/home/software/public_html/${app.appName}"/>
<scp todir="${deploy.user}@${app.deploy.server}:/home/software/public_html/${app.appName}" password="${deploy.password}" sftp="true" trust="true" >
<fileset dir="${basedir}/signed" includes="@{jar}"/>
</scp>
</else>
</if>
</then>
</if>
</else>
</if>
</sequential>
</for>
<if>
<isset property="TESTDEPLOY"/>
<then>
<sshexec trust="yes" host="${app.deploy.docs.server}" username="${deploy.user}" command="chmod -R -f g+w /home/software/public_html/versoes_teste/${app.appName}; true" password="${deploy.password}" />
<sshexec trust="yes" host="${app.deploy.docs.server}" username="${deploy.user}" command="chown -R -f :software /home/software/public_html/versoes_teste/${app.appName}; true" password="${deploy.password}" />
</then>
<else>
<sshexec trust="yes" host="${app.deploy.docs.server}" username="${deploy.user}" command="chmod -R -f g+w /home/software/public_html/${app.appName}; true" password="${deploy.password}" />
<sshexec trust="yes" host="${app.deploy.docs.server}" username="${deploy.user}" command="chown -R -f :software /home/software/public_html/${app.appName}; true" password="${deploy.password}" />
</else>
</if>
</target>
<target name="delete-principal-jar" depends="send-jars-to-server-2">
<delete file="signed/${app.appName}.jar"/>
<delete file="signed/packed/${app.appName}.jar.pack.gz"/>
<delete file="currentServerJars.xml"/>
<delete file="jarsAtServer.txt"/>
<delete file="newClientJars.xml"/>
</target>
<!-- END NEW -->
<!-- TEST PROJECT -->
<target name="test-project">
<property file="script.properties"/>
<echo message="${svn_repo} ${user} ${pass} ${target} ${build}"/>
<antcall target="app-create-jar"/>
</target>
<target name="deploy-project-script">
<property file="script.properties"/>
<antcall target="app-deploy"/>
</target>
<!-- END TEST PROJECT -->
<target name="app-deploy-version-jars-user-pass" if="deploy.password">
<antcall target="prepare-deploy-location" />
<echo message="Uploading files: ${deploy.jars}"/>
<scp todir="${deploy.user}@${app.deploy.server}:${app.deploy.path}" password="${deploy.password}" sftp="true" trust="true" >
<fileset dir="${app.deploy.dist.dir}" includes="${deploy.jars}"/>
</scp>
<echo message="Uploading jnlps"/>
<antcall target="deploy-test"/>
<antcall target="deploy-production"/>
</target>
<target name="app-deploy-version-jars-user" if="deploy.user">
<antcall target="app-deploy-version-jars-user-pass"/>
</target>
<target name="app-deploy-version-jars" if="deploy.jars" >
<antcall target="app-deploy-version-jars-user" />
</target>
<target name="app-deploy-choose-version" if="deploy.version" >
<antcall target="app-version-increase-${deploy.version}" />
</target>
<target name="app-deploy" description="Deploys application" depends="load-properties,ask-deploy.version">
<antcall target="app-deploy-choose-version"/>
<antcall target="app-create-software-evo-licensor"/>
</target>
<target name="app-create-software-evo-licensor" depends="load-properties">
<property file="${app.version.file}" prefix="version" />
<typedef classpathref="lib.tools.classpath" resource="net/jtools/classloadertask/antlib.xml">
<classpath>
<path refid="lib.tools.classpath"/>
</classpath>
</typedef>
<classloader loader="project">
<classpath>
<fileset dir="${lib.tools.dir}" includes="*.jar"/>
<fileset dir="${app.lib.dir}" includes="*.jar"/>
</classpath>
</classloader>
<taskdef name="createTask" classpathref="lib.tools.classpath" classname="com.evolute.ant.CreateSoftwareAntTask" onerror="ignore"/>
<createTask projectVersion="${version.major}.${version.minor}.${version.build}" projectName="${app.name}" />
</target>
<!-- DOCUMENTATION -->
<target name="docs-generate-upload" description="Generates and uploads the project documentation" depends="load-properties,docs-generate,docs-upload"/>
<target name="docs-generate">
<mkdir dir="${docs.api.dir}"/>
<javadoc verbose="true" classpath="lib.docs.classpath" destdir="${docs.api.dir}" docencoding="UTF-8" doctitle="${app.name}" sourcepath="${app.src.dir}" />
</target>
<target name="docs-upload">
<input message="" addproperty="deploy.user">
<handler classpathref="lib.tools.classpath" classname="com.evolute.ant.UserInputHandler" />
</input>
<input message="password:>" addproperty="deploy.password">
<handler classpathref="lib.tools.classpath" classname="com.evolute.ant.PasswordInputHandler" />
</input>
<typedef classpathref="lib.tools.classpath" resource="net/jtools/classloadertask/antlib.xml">
<classpath>
<path refid="lib.tools.classpath"/>
</classpath>
</typedef>
<classloader loader="project">
<classpath>
<fileset dir="${lib.tools.dir}" includes="*.jar"/>
</classpath>
</classloader>
<sshexec trust="yes" host="${app.deploy.docs.server}" username="${deploy.user}" command="sh ${app.docs.prepare.script} ${app.name}" password="${deploy.password}" />
<scp todir="${deploy.user}@${app.deploy.docs.server}:${app.deploy.docs.path}" password="${deploy.password}" sftp="true" trust="true" >
<fileset dir="${docs.dir}"/>
</scp>
</target>
</project>