summaryrefslogtreecommitdiff
path: root/java/build.xml
blob: 7142f7f308da6131e0343f10ccbe9dd75d266950 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
<!--
 -
 - Copyright (c) 2006 The Apache Software Foundation
 -
 - Licensed 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="AMQ Java" default="build">

  <import file="common.xml"/>

  <property file="build.properties"/>
  <property name="modules.extra" value=""/>
  <property name="modules.client" value="common,client"/>
  <property name="modules"
            value="${modules.client},broker,broker/test,client/test,management/core,management/cli,cluster,${modules.extra}"/>

  <macrodef name="iterate">
    <attribute name="target"/>
    <attribute name="modules" default="${modules}"/>
    <element name="elements" implicit="true" optional="true"/>
    <sequential>
      <subant target="@{target}" antfile="build-module.xml">
        <filelist dir="." files="@{modules}"/>
        <elements/>
      </subant>
    </sequential>
  </macrodef>

  <target name="build" description="compile java source code for each module">
    <iterate target="build"/>
  </target>

  <target name="test" description="execute unit tests">
    <iterate target="test"/>
  </target>

  <target name="xmltest" description="execute unit tests and produce xml reports">
    <iterate target="xmltest"/>
  </target>    

  <target name="doc" description="produce javadoc for each module">
    <iterate target="doc"/>
  </target>

  <target name="jar"
          description="create java class file archives for each module">
    <iterate target="jar"/>
  </target>

  <target name="dist"
          description="copy each module's files into a single distribution tree">
    <iterate target="dist"/>
    <iterate target="dist-lib" modules="${modules.client}">
      <property name="dist.dir" value="${dist.client.dir}"/>
    </iterate>
  </target>

  <target name="clean" description="remove all build artifacts">
    <iterate target="clean"/>
    <delete dir="${build.dir}"/>
  </target>

  <property name="client.includes" value="*/client/**"/>

  <target name="zip" depends="dist"
          description="produce a zip archive of the distribution tree">
    <zip basedir="${dist.root}" destfile="${build.zip}"/>
    <zip basedir="${dist.root}" destfile="${client.zip}"
         includes="${client.includes}"/>
  </target>

  <target name="tar" depends="dist"
          description="produce a tar archive of the distribution tree">
    <tar basedir="${dist.root}" destfile="${build.tar}"/>
    <tar basedir="${dist.root}" destfile="${client.tar}"
         includes="${client.includes}"/>
  </target>

  <target name="gzip" depends="tar"
          description="produce a gzipped tarball of the distribution tree">
    <gzip src="${build.tar}" destfile="${build.tgz}"/>
    <gzip src="${client.tar}" destfile="${client.tgz}"/>
  </target>

  <target name="bzip2" depends="tar"
          description="produze a bzipped tarball of the distribution tree">
    <bzip2 src="${build.tar}" destfile="${build.bz2}"/>
    <bzip2 src="${client.tar}" destfile="${client.bz2}"/>
  </target>

  <target name="archive" depends="zip,gzip,bzip2"
          description="produce all archive formats of the distribution tree"/>

</project>