cloudstack/build/package.xml
2012-09-07 05:12:38 -07:00

325 lines
13 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="Cloud Stack Package" basedir=".">
<description>
This is a package.xml with tools to package the cloud stack distribution
</description>
<dirname property="base.dir" file="${ant.file.Cloud Stack Package}/.." />
<property name="build.dir" location="${base.dir}/build" />
<import file="${build.dir}/build-cloud.xml" optional="false"/>
<property name="target.dir" location="${base.dir}/target"/>
<property name="scripts.target.dir" location="${target.dir}/scripts"/>
<property name="dist.dir" location="${base.dir}/dist" />
<property name="publish.dir" location="${dist.dir}" />
<property name="client.dist.dir" location="${dist.dir}/client" />
<property name="server.dist.dir" location="${dist.dir}/client" />
<property name="agent.dist.dir" location="${dist.dir}/agent" />
<property name="docs.dist.dir" location="${dist.dir}/docs" />
<property name="db.dist.dir" location="${dist.dir}/db" />
<property name="usage.dist.dir" location="${dist.dir}/usage" />
<condition property="mkisofs" value="${mkisofs.override}" else="mkisofs">
<isset property="mkisofs.override" />
</condition>
<target name="-init-package">
<mkdir dir="${dist.dir}" />
<mkdir dir="${publish.dir}" />
</target>
<target name="package-server" depends="-init-package">
<delete file="${dist.dir}/client.zip" />
<zip destfile="${dist.dir}/client.zip" basedir="${server.dist.dir}" />
</target>
<target name="package-client" depends="-init-package">
<zip destfile="${dist.dir}/client.zip" basedir="${client.dist.dir}">
<zipfileset dir="${client.dist.dir}">
<exclude name="**/*.sh" />
</zipfileset>
<zipfileset dir="${client.dist.dir}" filemode="555">
<include name="**/*.sh" />
</zipfileset>
</zip>
</target>
<target name="package-usage" depends="-init-package">
<zip destfile="${dist.dir}/usage.zip" basedir="${usage.dist.dir}" />
</target>
<target name="package-agent-common" depends="-init-package">
<zip destfile="${dist.dir}/agent.zip" duplicate="preserve">
<zipfileset dir="${deps.dir}">
<include name="cloud-xmlrpc-client-3.1.3.jar" />
<include name="cloud-xmlrpc-common-3.1.3.jar" />
<include name="cloud-ws-commons-util-1.0.2.jar" />
<include name="cloud-log4j.jar" />
<include name="cloud-apache-log4j-extras-1.0.jar" />
<include name="cloud-gson.jar" />
<include name="cloud-commons-httpclient-3.1.jar" />
<include name="cloud-commons-logging-1.1.1.jar" />
<include name="cloud-commons-collections-3.2.1.jar" />
<include name="cloud-commons-codec-1.4.jar" />
<include name="cloud-commons-pool-1.4.jar" />
<include name="cloud-jna.jar" />
<include name="cloud-cglib.jar" />
<include name="jetty-6.1.26.jar" />
<include name="jetty-util-6.1.26.jar"/>
</zipfileset>
<zipfileset dir="${jar.dir}">
<include name="${agent.jar}" />
<include name="${utils.jar}" />
<include name="${core.jar}" />
<include name="${api.jar}" />
<include name="${kvm.jar}" />
</zipfileset>
<zipfileset dir="${agent.dist.dir}" filemode="770">
<include name="run.sh" />
<include name="agent.sh" />
</zipfileset>
<zipfileset dir="${agent.dist.dir}">
<exclude name="run.sh/" />
<exclude name="agent.sh" />
<include name="**/*" />
</zipfileset>
<zipfileset dir="${scripts.dir}" prefix="scripts" filemode="555">
<exclude name="**/.project" />
<exclude name="**/.classpath" />
</zipfileset>
</zip>
</target>
<target name="package-agent" depends="-init-package, package-oss-systemvm, build-systemvm-patch, package-agent-common, build-kvm">
<zip destfile="${dist.dir}/agent.zip" duplicate="preserve" update="true">
<zipfileset dir="${dist.dir}" prefix="vms">
<include name="patch.tgz" />
</zipfileset>
<zipfileset dir="${dist.dir}" prefix="vms" filemode="555">
<include name="systemvm.zip" />
</zipfileset>
</zip>
</target>
<target name="package-oss-systemvm-iso" depends="-init-package, package-oss-systemvm, update-oss-systemvm-with-vmware, build-systemvm-patch">
<exec executable="${mkisofs}" dir="${dist.dir}">
<arg value="-quiet"/>
<arg value="-r"/>
<arg value="-o"/>
<arg value="systemvm.iso"/>
<arg value="systemvm.zip"/>
<arg value="cloud-scripts.tgz"/>
<arg value="authorized_keys"/>
</exec>
</target>
<target name="package-agent-simulator" depends="-init-package">
<delete file="${dist.dir}/agent-simulator.zip" />
<zip destfile="${dist.dir}/agent-simulator.zip" duplicate="preserve">
<zipfileset dir="${agent-simulator.dist.dir}">
<exclude name="**/*.sh" />
<exclude name="**/vnetd" />
<exclude name="**/send_arp" />
<exclude name="**/vn" />
<exclude name="**/*.exp" />
</zipfileset>
<zipfileset dir="${agent-simulator.dist.dir}" filemode="555">
<include name="**/*.sh" />
<include name="**/vnetd" />
<include name="**/send_arp" />
<include name="**/vn" />
<include name="**/*.exp" />
</zipfileset>
</zip>
</target>
<!-- <target name="build-all" depends="build-opensource, build-plugins, build-ui, build-war-oss, compile-testclient, compile-usage, build-awsapi"> -->
<target name="build-all" depends="build-opensource, build-plugins, build-ui, build-war-oss, compile-usage, build-awsapi">
</target>
<target name="build-all-with-simulator" depends="build-all, compile-agent-simulator">
<war destfile="${client.dist.dir}/client.war" webxml="${client.dir}/WEB-INF/web.xml" update="true">
<lib dir="${jar.dir}">
<include name="cloud-*.jar" />
<include name="vmware-*.jar" />
<exclude name="cloud-servlet-api.jar"/>
</lib>
</war>
</target>
<target name="build-war-oss" depends="-init-package" description="Compile the GWT client UI and builds WAR file.">
<mkdir dir="${client.dist.dir}" />
<war destfile="${client.dist.dir}/client.war" webxml="${client.dir}/WEB-INF/web.xml" update="true">
<fileset dir="${client.target.dir}">
<include name="**/*" />
<exclude name="**/*.properties" />
</fileset>
<classes dir="${client.target.dir}">
<include name="**/resources/*.properties" />
</classes>
<lib dir="${jar.dir}">
<include name="cloud-*.jar" />
<include name="vmware-*.jar" />
<exclude name="cloud-servlet-api.jar"/>
</lib>
<zipfileset dir="${scripts.target.dir}" prefix="WEB-INF/lib/scripts" filemode="555">
<include name="**/*" />
</zipfileset>
<zipfileset dir="${db.scripts.dir}" prefix="WEB-INF/lib/db" filemode="555">
<include name="**/*"/>
</zipfileset>
</war>
</target>
<target name="package-oss-systemvm" depends="-init-package">
<zip destfile="${dist.dir}/systemvm.zip" duplicate="preserve" update="true">
<!-- Console proxy now includes an agent shell, therefore we need to package agent related distribution -->
<zipfileset dir="${deps.dir}">
<include name="xmlrpc-client-3.1.3.jar" />
<include name="xmlrpc-common-3.1.3.jar" />
<include name="ws-commons-util-1.0.2.jar" />
<include name="log4j*.jar" />
<include name="asm-3.1.jar" />
<include name="apache-log4j-extras-1.1.jar" />
<include name="gson-1.7.1.jar" />
<include name="commons-httpclient-3.1.jar" />
<include name="commons-logging-1.1.1.jar" />
<include name="commons-collections-3.1.jar" />
<include name="commons-codec-1.6.jar" />
<include name="commons-pool-1.6.jar" />
<include name="cglib-*.jar" />
<include name="axis-*.jar" />
<include name="discovery-*.jar" />
<include name="wsdl4j-*.jar" />
<include name="ejb-api-3.0.jar" />
</zipfileset>
<zipfileset dir="${jar.dir}">
<include name="${agent.jar}" />
<include name="${utils.jar}" />
<include name="${core.jar}" />
<include name="${api.jar}" />
</zipfileset>
<zipfileset dir="${console-proxy.dist.dir}" filemode="555"/>
<zipfileset dir="${scripts.dir}/storage/secondary" prefix="scripts/storage/secondary" filemode="555">
<exclude name="**/.project" />
<exclude name="**/.classpath" />
</zipfileset>
</zip>
</target>
<target name="update-oss-systemvm-with-vmware" depends="-init-package" if="ssvm.include.vmware.jar">
<zip destfile="${dist.dir}/systemvm.zip" duplicate="preserve" update="true">
<zipfileset dir="${jar.dir}" >
<include name="${vmware.jar}" />
<include name="${vmware-base.jar}" />
</zipfileset>
</zip>
</target>
<target name="package-docs" depends="-init-package">
<delete file="${dist.dir}/docs.zip" />
<zip destfile="${dist.dir}/docs.zip" compress="false">
<fileset dir="${docs.dist.dir}" />
</zip>
</target>
<target name="package-test" depends="-init-package">
<delete file="${publish.dir}/test.zip" />
<zip destfile="${publish.dir}/test.zip" compress="false">
<zipfileset dir="${testclient.dist.dir}" filemode="555" />
</zip>
</target>
<target name="package-tools" depends="-init-package">
<delete file="${publish.dir}/cloudapitools.zip" />
<zip destfile="${publish.dir}/cloudapitools.zip" compress="false">
<zipfileset dir="${tools.dist.dir}" filemode="555" />
</zip>
</target>
<target name="clean-packages">
<delete>
<fileset dir="${dist.dir}" includes="*.zip" />
</delete>
</target>
<target name="package-all" depends="package-client, package-agent, package-agent-simulator, package-usage, package-docs">
<tstamp>
<format property="package.date" pattern="yyyy-MM-dd" />
</tstamp>
<zip destfile="${publish.dir}/cloud-${company.major.version}.${company.minor.version}.${company.patch.version}.${build.number}-${package.date}.zip" duplicate="preserve">
<zipfileset dir="${dist.dir}" prefix="cloud-${company.major.version}.${company.minor.version}.${company.patch.version}.${build.number}-${package.date}" filemode="777">
<include name="deploy-agent.sh" />
<include name="deploy-server.sh" />
</zipfileset>
<zipfileset dir="${db.dist.dir}" prefix="cloud-${company.major.version}.${company.minor.version}.${company.patch.version}.${build.number}-${package.date}/db" filemode="777">
<include name="deploy-db.sh" />
</zipfileset>
<zipfileset dir="${db.dist.dir}" prefix="cloud-${company.major.version}.${company.minor.version}.${company.patch.version}.${build.number}-${package.date}/db">
<include name="log4j.properties" />
<include name="create-schema.sql" />
<include name="init-data.sql" />
<include name="create-index-fk.sql" />
<include name="server-setup.xml" />
<include name="create-database.sql" />
<include name="templates.sql" />
</zipfileset>
<zipfileset dir="${dist.dir}" prefix="cloud-${company.major.version}.${company.minor.version}.${company.patch.version}.${build.number}-${package.date}">
<include name="agent.zip" />
<include name="client.zip" />
<include name="docs.zip" />
</zipfileset>
</zip>
</target>
<target name="package-kvm" depends="package-agent">
<zip destfile="${dist.dir}/agent.zip" update="true">
<zipfileset dir="${jar.dir}">
<include name="cloud-plugin-hypervisor-kvm.jar"/>
</zipfileset>
<zipfileset dir="${deps.dir}">
<include name="libvirt-0.4.8.jar"/>
</zipfileset>
</zip>
</target>
<target name="clean-zip">
<delete dir="${dist.dir}">
<include name="*.zip" />
</delete>
</target>
<!-- The following target is OBSOLETE. If you need to add a jar file / target, go to the function def runant(target): in wscrpit_build, and list the jar file and the target in the appropriate places -->
<target name="sendjarfiles" depends="compile-utils, compile-core, compile-server, compile-agent">
<copy todir="${waf.artifacts}">
<fileset dir="${target.dir}/jar"/>
</copy>
</target>
</project>