mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
431 lines
18 KiB
XML
Executable File
431 lines
18 KiB
XML
Executable File
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!--
|
|
Licensed to the Apache Software Foundation (ASF) under one or more
|
|
contributor license agreements. See the NOTICE file distributed with
|
|
this work for additional information regarding copyright ownership.
|
|
The ASF licenses this file to You under the Apache License, Version 2.0
|
|
(the "License"); you may not use this file except in compliance with
|
|
the License. You may obtain a copy of the License at
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
See the License for the specific language governing permissions and
|
|
limitations under the License.
|
|
-->
|
|
|
|
|
|
<project name="CloudStack Developer Targets" basedir=".">
|
|
<description>
|
|
This is a developer.xml with tools to start and stop tomcat and
|
|
generally developer targets that has nothing to do with compiling.
|
|
</description>
|
|
|
|
<dirname property="base.dir" file="${ant.file.CloudStack Developer Targets}/.."/>
|
|
<property name="build.dir" location="${base.dir}/build"/>
|
|
|
|
<property name="tomcat.home" location="${env.CATALINA_HOME}"/>
|
|
<property name="assertion" value="-ea"/>
|
|
|
|
<property name="dist.dir" location="${base.dir}/dist"/>
|
|
<property name="deploy.work.dir" location="${dist.dir}"/>
|
|
<property name="server.deploy.to.dir" location="${tomcat.home}"/>
|
|
<property name="unittest.dir" location="${base.dir}/unittest"/>
|
|
<property name="unittest.target.dir" location="${unittest.dir}/classes"/>
|
|
<property name="unittest.jar.dir" location="${unittest.dir}/jar"/>
|
|
<property name="unittest.formatter" value="plain" />
|
|
<property name="ovm.dir" location="${base.dir}/ovm" />
|
|
<property name="usage.dir" location="${base.dir}/usage" />
|
|
|
|
<!-- directories for api doc -->
|
|
<property name="api.docs.dir" location="${dist.dir}/apidocs" />
|
|
|
|
<condition property="jmxport" value="${jmxport.override}" else="45219">
|
|
<isset property="jmxport.override" />
|
|
</condition>
|
|
|
|
<macrodef name="compile-test">
|
|
<attribute name="top.dir" description="Top Directory of the source. We will add src to this to get the source code."/>
|
|
<attribute name="jar.name" description="Name of the jar file"/>
|
|
<attribute name="classpath" description="class path to use"/>
|
|
<element name="include-files" optional="true"/>
|
|
<element name="exclude-files" optional="true"/>
|
|
|
|
<sequential>
|
|
<mkdir dir="${unittest.target.dir}/@{jar.name}"/>
|
|
|
|
<depend srcdir="@{top.dir}/test" destdir="${unittest.target.dir}/@{jar.name}" cache="${dep.cache.dir}" />
|
|
|
|
<echo message="Compiling @{top.dir}/test"/>
|
|
<javac srcdir="@{top.dir}/test" debug="${debug}" debuglevel="${debuglevel}" deprecation="${deprecation}" destdir="${unittest.target.dir}/@{jar.name}" source="${source.compat.version}" target="${target.compat.version}" includeantruntime="false" compiler="javac1.6">
|
|
<compilerarg line="-Xlint:-path"/>
|
|
<classpath refid="@{classpath}" />
|
|
<exclude-files/>
|
|
</javac>
|
|
<jar jarfile="${unittest.jar.dir}/@{jar.name}" basedir="${unittest.target.dir}/@{jar.name}" update="true"/>
|
|
</sequential>
|
|
</macrodef>
|
|
|
|
|
|
<target name="clean-edits" description="Delete all the editor backup files in the source tree.">
|
|
<delete>
|
|
<fileset dir="${base.dir}" includes="**/*~" />
|
|
</delete>
|
|
</target>
|
|
|
|
<target name="run" depends="start-tomcat"/>
|
|
<target name="stop" depends="stop-tomcat"/>
|
|
<target name="debug" depends="debug-tomcat"/>
|
|
|
|
<target name="setup">
|
|
<mkdir dir="${build.dir}/override"/>
|
|
<copy todir="${build.dir}/override">
|
|
<fileset dir="${build.dir}">
|
|
<include name="build-cloud.properties"/>
|
|
<include name="replace.properties"/>
|
|
</fileset>
|
|
</copy>
|
|
<loadproperties srcfile="${build.dir}/override/replace.properties" resource="propertyresource"/>
|
|
<!-- propertyfile file="${build.dir}/override/replace.properties"/ -->
|
|
</target>
|
|
|
|
<target name="debug-suspend">
|
|
<java jar="${tomcat.home}/bin/bootstrap.jar" fork="true">
|
|
<jvmarg value="-Dcatalina.home=${tomcat.home}"/>
|
|
<jvmarg value="-Dcom.sun.management.jmxremote.port=${jmxport}"/>
|
|
<jvmarg value="-Dcom.sun.management.jmxremote.authenticate=false"/>
|
|
<jvmarg value="-Dcom.sun.management.jmxremote.ssl=false"/>
|
|
<jvmarg value="-Xdebug"/>
|
|
<jvmarg value="-Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=y"/>
|
|
<jvmarg value="-ea"/>
|
|
<jvmarg value="-Xms256m"/>
|
|
<jvmarg value="-Xmx384m"/>
|
|
</java>
|
|
</target>
|
|
|
|
<target name="stop-tomcat">
|
|
<java dir="${tomcat.home}/bin/" jar="${tomcat.home}/bin/bootstrap.jar" fork="true">
|
|
<arg value="stop"/>
|
|
</java>
|
|
</target>
|
|
|
|
<target name="start-tomcat" depends="stop-tomcat">
|
|
<echo message="Start Tomcat" />
|
|
<java dir="${tomcat.home}/bin/" jar="${tomcat.home}/bin/bootstrap.jar" fork="true">
|
|
<jvmarg value="${assertion}"/>
|
|
<jvmarg value="-Dcom.sun.management.jmxremote.port=${jmxport}"/>
|
|
<jvmarg value="-Dcom.sun.management.jmxremote.authenticate=false"/>
|
|
<jvmarg value="-Dcom.sun.management.jmxremote.ssl=false"/>
|
|
<jvmarg value="-Xms256m"/>
|
|
<jvmarg value="-Xmx512m"/>
|
|
<jvmarg value="-XX:MaxPermSize=128m"/>
|
|
<jvmarg value="-ea"/>
|
|
<arg value="start"/>
|
|
</java>
|
|
</target>
|
|
|
|
<target name="debug-tomcat">
|
|
<java jar="${tomcat.home}/bin/bootstrap.jar" fork="true">
|
|
<jvmarg value="-Dcatalina.home=${tomcat.home}"/>
|
|
<jvmarg value="-Dcom.sun.management.jmxremote.port=${jmxport}"/>
|
|
<jvmarg value="-Dcom.sun.management.jmxremote.authenticate=false"/>
|
|
<jvmarg value="-Dcom.sun.management.jmxremote.ssl=false"/>
|
|
<jvmarg value="-Xdebug"/>
|
|
<jvmarg value="${debug.jvmarg}"/>
|
|
<jvmarg value="-ea"/>
|
|
<jvmarg value="-Xms256m"/>
|
|
<jvmarg value="-Xmx512m"/>
|
|
<jvmarg value="-XX:MaxPermSize=128m"/>
|
|
</java>
|
|
</target>
|
|
|
|
<target name="clean-tomcat" depends="stop-tomcat,clean-awsapi-tomcat">
|
|
<delete dir="${tomcat.home}/webapps/client"/>
|
|
<delete dir="${tomcat.home}/webapps/awsapi" />
|
|
<delete dir="${tomcat.home}/webapps7080/awsapi" />
|
|
<delete dir="${tomcat.home}/work/Catalina"/>
|
|
<delete dir="${tomcat.home}/temp" />
|
|
<delete dir="${tomcat.home}/logs" />
|
|
<delete quiet="false" >
|
|
<fileset dir="${tomcat.home}/conf" >
|
|
<include name="**/*component*.xml" />
|
|
</fileset>
|
|
</delete>
|
|
</target>
|
|
|
|
<target name="unzip" if="zip.uptodate">
|
|
<unzip src="${deploy.work.dir}/client.zip" dest="${deploy.work.dir}/client"/>
|
|
</target>
|
|
|
|
<target name="unzip-usage" if="usagezip.uptodate">
|
|
<unzip src="${deploy.work.dir}/usage.zip" dest="${deploy.work.dir}/usage"/>
|
|
</target>
|
|
|
|
<target name="deploy-ovm" >
|
|
<ant antfile="${base.dir}/plugins/hypervisors/ovm/build.xml" target="deploy-ovm"/>
|
|
</target>
|
|
|
|
<target name="deploy-server" depends="deploy-common, deploy-ovm, deploy-awsapi" >
|
|
<copy todir="${server.deploy.to.dir}/webapps/client/WEB-INF/lib/vms" file="${dist.dir}/systemvm.iso" />
|
|
</target>
|
|
|
|
<target name="deploy-server-encrypt" depends="deploy-server" >
|
|
<move file="${server.deploy.to.dir}/conf/db-enc.properties" tofile="${server.deploy.to.dir}/conf/db.properties" overwrite="true"/>
|
|
<echo file="/etc/cloud/management/key" append="false">password</echo>
|
|
</target>
|
|
|
|
<target name="deploy-common" >
|
|
<condition property="zip.uptodate">
|
|
<available file="${deploy.work.dir}/client.zip" type="file"/>
|
|
</condition>
|
|
<antcall target="unzip" inheritAll="true"/>
|
|
<unwar overwrite="true" src="${deploy.work.dir}/client/client.war" dest="${server.deploy.to.dir}/webapps/client"/>
|
|
<copy todir="${server.deploy.to.dir}/lib">
|
|
<fileset dir="${deps.dir}/">
|
|
<include name="*.jar"/>
|
|
<exclude name="servlet*.jar"/>
|
|
<exclude name="axis2*.jar"/>
|
|
<exclude name="*slf4j*.jar"/>
|
|
</fileset>
|
|
</copy>
|
|
<touch file="${server.deploy.to.dir}/webapps/client/WEB-INF/lib/scripts/vm/hypervisor/xenserver/version"/>
|
|
<echo file="${server.deploy.to.dir}/webapps/client/WEB-INF/lib/scripts/vm/hypervisor/xenserver/version" append="false" message="${version}.${build.number}"/>
|
|
<copy overwrite="true" todir="${server.deploy.to.dir}/conf">
|
|
<fileset dir="${deploy.work.dir}/client/conf/">
|
|
<include name="**/*"/>
|
|
</fileset>
|
|
</copy>
|
|
<chmod perm="755">
|
|
<fileset dir="${server.deploy.to.dir}/webapps/client/WEB-INF/lib">
|
|
<include name="**/*"/>
|
|
</fileset>
|
|
</chmod>
|
|
|
|
|
|
<!-- <copy overwrite="true" todir="${server.deploy.to.dir}/lib" file="${server.deploy.to.dir}/webapps/client/WEB-INF/lib/cloud-mysql-connector-java-5.1.7-bin.jar" />
|
|
<delete file="${server.deploy.to.dir}/webapps/client/WEB-INF/lib/cloud-mysql-connector-java-5.1.7-bin.jar" />
|
|
-->
|
|
<replace file="${server.deploy.to.dir}/conf/catalina.properties" summary="true">
|
|
<replacetoken><![CDATA[shared.loader=
|
|
]]></replacetoken>
|
|
<replacevalue><![CDATA[shared.loader=${catalina.home},${catalina.home}/conf
|
|
]]></replacevalue> </replace>
|
|
</target>
|
|
|
|
<target name="deploy-usage">
|
|
<condition property="usagezip.uptodate">
|
|
<available file="${deploy.work.dir}/usage.zip" type="file" />
|
|
</condition>
|
|
<antcall target="unzip-usage" inheritAll="true" />
|
|
<copy overwrite="true" todir="${server.deploy.to.dir}/conf">
|
|
<fileset dir="${usage.dir}/conf/">
|
|
<include name="*.in" />
|
|
</fileset>
|
|
<globmapper from="*.in" to="*" />
|
|
</copy>
|
|
<copy overwrite="true" todir="${server.deploy.to.dir}/webapps/client/WEB-INF/lib">
|
|
<fileset dir="${deploy.work.dir}/usage/lib/">
|
|
<include name="**/*.jar"/>
|
|
</fileset>
|
|
</copy>
|
|
</target>
|
|
|
|
<target name="deploy-cloudstack-db">
|
|
<condition property="server-setup.file" value="override/server-setup.xml" else="server-setup.xml">
|
|
<available file="${setup.db.dir}/override/server-setup.xml" />
|
|
</condition>
|
|
|
|
<condition property="templates.file" value="override/templates.sql" else="templates.sql" >
|
|
<available file="${setup.db.dir}/override/templates.sql" />
|
|
</condition>
|
|
|
|
<echo message="${db.scripts.dir}\\deploy-db-dev.sh ${server-setup.file} ${templates.file} ${DBROOTPW}" />
|
|
<exec dir="${db.scripts.dir}" executable="bash" failonerror="true">
|
|
<arg value="deploy-db-dev.sh" />
|
|
<arg value="${server-setup.file}" />
|
|
<arg value="${templates.file}" />
|
|
<arg value="${DBROOTPW}" />
|
|
<env key="CATALINA_HOME" value="${tomcat.home}"/>
|
|
</exec>
|
|
|
|
<chmod perm="666">
|
|
<fileset dir="${db.scripts.dir}">
|
|
<include name="**/*"/>
|
|
</fileset>
|
|
</chmod>
|
|
</target>
|
|
|
|
<target name="deploydb" depends="deploy-cloudstack-db, deploy-awsapi-db">
|
|
</target>
|
|
|
|
<target name="deploydb-simulator">
|
|
<condition property="server-setup.file" value="${setup.db.dir}/override/server-setup.xml" else="server-setup.xml">
|
|
<available file="${setup.db.dir}/override/server-setup.xml" />
|
|
</condition>
|
|
|
|
<condition property="templates.file" value="${setup.db.dir}/override/templates.sql" else="templates.sql" >
|
|
<available file="${setup.db.dir}/override/templates.sql" />
|
|
</condition>
|
|
|
|
<echo message="deploydb ${server-setup.file} ${templates.file} ${DBROOTPW}" />
|
|
<exec dir="${db.scripts.dir}" executable="bash" failonerror="true">
|
|
<arg value="deploy-db-simulator.sh" />
|
|
<arg value="${server-setup.file}" />
|
|
<arg value="${templates.file}" />
|
|
<arg value="${DBROOTPW}" />
|
|
<env key="CATALINA_HOME" value="${tomcat.home}"/>
|
|
</exec>
|
|
|
|
<chmod perm="666">
|
|
<fileset dir="${db.scripts.dir}">
|
|
<include name="**/*"/>
|
|
</fileset>
|
|
</chmod>
|
|
</target>
|
|
|
|
<path id="test.classpath">
|
|
<path refid="deps.classpath" />
|
|
<path refid="dist.classpath"/>
|
|
<!-- external deps, added for jenkins
|
|
depends on mysql-connector-java rpm
|
|
-->
|
|
<fileset dir="/usr/share/java/" erroronmissingdir="true">
|
|
<include name="mysql-connector-java.jar" />
|
|
</fileset>
|
|
<fileset dir="${unittest.jar.dir}">
|
|
<include name="*.jar"/>
|
|
</fileset>
|
|
<fileset dir="${deps.dir}">
|
|
<include name="junit-*.jar"/>
|
|
</fileset>
|
|
<dirset dir="${utils.test.dir}/resources"/>
|
|
<dirset dir="${server.test.dir}/resources"/>
|
|
<dirset dir="${base.dir}/setup/db"/>
|
|
</path>
|
|
|
|
<target name="compile-tests" depends="compile-all">
|
|
<mkdir dir="${unittest.dir}"/>
|
|
<mkdir dir="${unittest.target.dir}"/>
|
|
<mkdir dir="${unittest.jar.dir}"/>
|
|
|
|
<compile-test jar.name="utils-test.jar" top.dir="${utils.dir}" classpath="test.classpath"/>
|
|
<compile-test jar.name="server-test.jar" top.dir="${server.dir}" classpath="test.classpath"/>
|
|
</target>
|
|
|
|
<target name="unittest" description="Execute unit tests" depends="compile-tests">
|
|
<junit fork="true" printsummary="true" showoutput="true" failureproperty="junit.failure">
|
|
<!-- N.b. use failureproperty instead of haltonfailure, because if we use
|
|
the former, we will get no detailed report about the failure.
|
|
If the test fails, the fail element below will still assure that
|
|
the Ant run will exit with error status.
|
|
-->
|
|
<!--bootclasspath refid="test.classpath"/-->
|
|
<classpath refid="test.classpath"/>
|
|
<jvmarg value="${debug.jvmarg}"/>
|
|
<batchtest todir="${unittest.dir}">
|
|
<formatter type="${unittest.formatter}"/>
|
|
<fileset dir="${utils.test.dir}">
|
|
<include name="**/*Test.java"/>
|
|
</fileset>
|
|
<fileset dir="${server.test.dir}">
|
|
<include name="**/*Test.java"/>
|
|
<exclude name="**/upgrade/*.java"/>
|
|
</fileset>
|
|
</batchtest>
|
|
</junit>
|
|
<junitreport todir="${unittest.dir}">
|
|
<fileset dir="${unittest.dir}"/>
|
|
<report todir="${unittest.dir}/test-reports"/>
|
|
</junitreport>
|
|
<fail if="junit.failure" message="Unit test(s) failed. See reports!"/>
|
|
</target>
|
|
|
|
<target name="test" description="Execute one unit test" depends="compile-tests">
|
|
<junit fork="true" printsummary="true" showoutput="true" failureproperty="junit.failure">
|
|
<!-- N.b. use failureproperty instead of haltonfailure, because if we use
|
|
the former, we will get no detailed report about the failure.
|
|
If the test fails, the fail element below will still assure that
|
|
the Ant run will exit with error status.
|
|
-->
|
|
<classpath refid="test.classpath"/>
|
|
<jvmarg value="${debug.jvmarg}"/>
|
|
<jvmarg value="-ea"/>
|
|
<jvmarg value="-Xms1024m"/>
|
|
<jvmarg value="-Xmx1024m"/>
|
|
<batchtest todir="${unittest.dir}">
|
|
<formatter type="${unittest.formatter}"/>
|
|
<fileset dir="${utils.test.dir}">
|
|
<include name="**/${test}.java"/>
|
|
</fileset>
|
|
<fileset dir="${server.test.dir}">
|
|
<include name="**/${test}.java"/>
|
|
<exclude name="**/upgrade/*.java"/>
|
|
</fileset>
|
|
</batchtest>
|
|
</junit>
|
|
<junitreport todir="${unittest.dir}">
|
|
<fileset dir="${unittest.dir}"/>
|
|
<report todir="${unittest.dir}/test-reports"/>
|
|
</junitreport>
|
|
<fail if="junit.failure" message="Unit test(s) failed. See reports!"/>
|
|
</target>
|
|
|
|
<target name="test-suspend" description="Execute one unit test" depends="compile-tests">
|
|
<junit fork="true" printsummary="true" showoutput="true" failureproperty="junit.failure">
|
|
<!-- N.b. use failureproperty instead of haltonfailure, because if we use
|
|
the former, we will get no detailed report about the failure.
|
|
If the test fails, the fail element below will still assure that
|
|
the Ant run will exit with error status.
|
|
-->
|
|
<classpath refid="test.classpath"/>
|
|
<jvmarg value="-Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=y"/>
|
|
<jvmarg value="${assertion}"/>
|
|
<batchtest todir="${unittest.dir}">
|
|
<formatter type="${unittest.formatter}"/>
|
|
<fileset dir="${utils.test.dir}">
|
|
<include name="**/${test}.java"/>
|
|
</fileset>
|
|
<fileset dir="${server.test.dir}">
|
|
<include name="**/${test}.java"/>
|
|
</fileset>
|
|
</batchtest>
|
|
</junit>
|
|
<junitreport todir="${unittest.dir}">
|
|
<fileset dir="${unittest.dir}"/>
|
|
<report todir="${unittest.dir}/test-reports"/>
|
|
</junitreport>
|
|
<fail if="junit.failure" message="Unit test(s) failed. See reports!"/>
|
|
</target>
|
|
|
|
|
|
<target name="build-apidocs" description="Generate api documentation" depends="build-all">
|
|
<property name="commands.file" location="${dist.dir}/client/conf/commands.properties" />
|
|
<property name="commands.ext.file" location="${dist.dir}/client/conf/commands-ext.properties" />
|
|
<property name="commands.vr.file" location="${dist.dir}/client/conf/virtualrouter_commands.properties" />
|
|
|
|
<echo message="build-apidocs" />
|
|
<exec dir="${apidoc.scripts.dir}" executable="bash" failonerror="true">
|
|
<arg value="build-apidoc.sh" />
|
|
<arg value="${target.dir}/jar" />
|
|
<arg value="${deps.dir}" />
|
|
<arg value="${dist.dir}" />
|
|
<arg value="-f ${commands.file},${commands.ext.file},${commands.vr.file}" />
|
|
</exec>
|
|
<echo message="Result locates at ${dist.dir}/commands.xml" />
|
|
|
|
<chmod perm="666">
|
|
<fileset dir="${apidoc.scripts.dir}">
|
|
<include name="**/*"/>
|
|
</fileset>
|
|
</chmod>
|
|
</target>
|
|
|
|
<target name="build-apidocs-zip" depends="build-apidocs">
|
|
<delete file="${dist.dir}/apidocs-${version}.zip" />
|
|
<zip destfile="${dist.dir}/apidocs-${version}.zip" basedir="${dist.dir}/xmldoc/html" />
|
|
</target>
|
|
|
|
</project>
|