Statistics
| Branch: | Tag: | Revision:

root / build.xml @ 1b2719e1

History | View | Annotate | Download (15.8 kB)

1
<?xml version="1.0" encoding="utf-8" ?>
2
<project name="gss" default="deploy" basedir=".">
3
        <description>The GSS project build file</description>
4

    
5
        <property file="build.properties"/>
6

    
7
        <property name="jboss_run_configuration" value="default" />
8
        <property name="root.context" value="gss" />
9
        <property name="gwt.module" value="gr.ebs.gss.GSS" />
10
        <property name="gwt.module.class" value="GSS" />
11

    
12
        <property environment="env" />
13

    
14
        <!-- Application server specific configuration -->
15
        <property name="jboss-spec.dir" value="${basedir}/jboss" />
16
        <property name="jboss-spec.conf.dir" value="${jboss-spec.dir}/conf" />
17
        <property name="jboss-spec.bin.dir" value="${jboss-spec.dir}/bin" />
18
        <property name="jboss-spec.deploy.dir" value="${jboss-spec.dir}/deploy" />
19
        <property name="jboss-spec.lib.dir" value="${jboss-spec.dir}/lib" />
20

    
21
        <!-- Production deployment specific configuration -->
22
        <property name="jboss-spec.prod.dir" value="${basedir}/jboss-production" />
23
        <property name="jboss-spec.prod.conf.dir" value="${jboss-spec.prod.dir}/conf" />
24
        <property name="jboss-spec.prod.bin.dir" value="${jboss-spec.prod.dir}/bin" />
25
        <property name="jboss-spec.prod.deploy.dir" value="${jboss-spec.prod.dir}/deploy" />
26
        <property name="jboss-spec.prod.lib.dir" value="${jboss-spec.prod.dir}/lib" />
27

    
28
        <!-- Jboss dirs -->
29
        <property name="jboss.home" value="${env.JBOSS_HOME}" />
30
        <property name="jboss.prod.home" value="${env.JBOSS_PROD_HOME}" />
31
        <property name="jboss.version" value="${env.JBOSS_VERSION}" />
32
        <property name="gwt.path" value="${env.GWT_PATH}" />
33
        <property name="hornetq.path" value="${env.HORNETQ_PATH}" />
34
        <property name="src.dir" value="${basedir}/src"/>
35

    
36
        <property name="jboss.project" value="${basedir}/jboss-config/${jboss.version}" />
37
        <property name="jboss.bin.dir" value="${jboss.home}/bin" />
38
        <property name="jboss.conf.dir" value="${jboss.home}/server/${jboss_run_configuration}/conf" />
39
        <property name="jboss.deploy.dir" value="${jboss.home}/server/${jboss_run_configuration}/deploy" />
40
        <property name="jboss.run_conf.lib.dir" value="${jboss.home}/server/${jboss_run_configuration}/lib" />
41
        <property name="jboss.lib.dir" value="${jboss.home}/lib" />
42
        <property name="jboss.common.lib.dir" value="${jboss.home}/common/lib" />
43

    
44
        <property name="jboss.prod.bin.dir" value="${jboss.prod.home}/bin" />
45
        <property name="jboss.prod.conf.dir" value="${jboss.prod.home}/server/${jboss_run_configuration}/conf" />
46
        <property name="jboss.prod.deploy.dir" value="${jboss.prod.home}/server/${jboss_run_configuration}/deploy" />
47
        <property name="jboss.prod.run_conf.lib.dir" value="${jboss.prod.home}/server/${jboss_run_configuration}/lib" />
48
        <property name="jboss.prod.lib.dir" value="${jboss.prod.home}/lib" />
49
        <property name="jboss.prod.common.lib.dir" value="${jboss.prod.home}/common/lib" />
50

    
51
        <!-- MBeans -->
52
        <property name="mbeans.dir" value="${basedir}/mbeans"/>
53
        <property name="mbeans.meta-inf.dir" value="${mbeans.dir}/META-INF"/>
54

    
55
        <!-- JUnit dirs -->
56
        <property name="test.dir" value="${basedir}/test" />
57
        <property name="test.src.dir" value="${test.dir}/src"/>
58

    
59
        <!-- Build dirs -->
60
        <property name="build.dir" value="${basedir}/bin" />
61
        <property name="build.classes.dir" value="${build.dir}/classes" />
62
        <property name="test.build.dir" value="${build.dir}" />
63
        <property name="test.build.classes.dir" value="${test.build.dir}/" />
64
        <property name="gwt.www.dir" value="${basedir}/www" />
65
        <property name="dist.war" value="${ant.project.name}.war"/>
66
        <property name="webdav.war" value="webdav.war"/>
67
        <property name="dist.ear" value="${ant.project.name}.ear"/>
68

    
69
        <property name="war.dir" value="${basedir}/war" />
70
        <property name="war.web-inf.dir" value="${war.dir}/WEB-INF"/>
71
        <property name="war.lib.dir" value="${war.web-inf.dir}/lib"/>
72
        <property name="webdav.war.dir" value="${basedir}/webdav" />
73
        <property name="webdav.war.web-inf.dir" value="${webdav.war.dir}/WEB-INF"/>
74
        <property name="webdav.war.lib.dir" value="${webdav.war.web-inf.dir}/lib"/>
75
        <property name="ear.dir" value="${basedir}/ear" />
76
        <property name="ear.lib.dir" value="${ear.dir}/lib" />
77
        
78
        <property name="mbeans.dist.file" value="${ant.project.name}-mbeans.sar"/>
79

    
80
        <!-- set classpath -->
81
        <path id="project.class.path">
82
                <pathelement path="${java.class.path}/" />
83
                <pathelement path="${gwt.path}/gwt-user.jar" />
84
                <pathelement location="${jboss.common.lib.dir}/commons-logging.jar"/>
85
                <pathelement location="${jboss.common.lib.dir}/ejb3-persistence.jar"/>
86
                <pathelement location="${jboss.common.lib.dir}/jboss-ejb3-ext-api.jar"/>
87
                <pathelement location="${jboss.common.lib.dir}/jboss-javaee.jar"/>
88
                <pathelement location="${jboss.common.lib.dir}/jbosssx.jar"/>
89
                <pathelement location="${jboss.common.lib.dir}/hibernate-core.jar"/>
90
        <pathelement location="${jboss.common.lib.dir}/hibernate-annotations.jar"/>
91
                <pathelement location="${jboss.lib.dir}/jboss-j2se.jar"/>
92
                <pathelement location="${jboss.lib.dir}/jboss-kernel.jar"/>
93
                <pathelement location="${jboss.lib.dir}/jboss-system-jmx.jar"/>
94
                <pathelement location="${jboss.lib.dir}/jboss-system.jar"/>
95
                <pathelement location="${jboss.lib.dir}/jbosssx.jar"/>
96
                <pathelement location="${ear.lib.dir}/commons-codec-1.3.jar"/>
97
                <pathelement location="${ear.lib.dir}/commons-configuration-1.6.jar"/>
98
                <pathelement location="${war.lib.dir}/commons-fileupload-1.2.jar"/>
99
        <pathelement location="${ear.lib.dir}/commons-httpclient-3.1.jar"/>
100
                <pathelement location="${ear.lib.dir}/commons-lang.jar"/>
101
                <pathelement location="${junit.path}/junit.jar"/>
102
                <pathelement location="${basedir}/lib/gwt-dnd-3.0.1.jar"/>
103
                <pathelement location="${basedir}/lib/gwt-gears.jar"/>
104
                
105
        </path>
106

    
107
        <target name="install" description="Installs the configuration files of the application server">
108
                <!-- Install HornetQ configuration -->
109
                <copy todir="${jboss.run_conf.lib.dir}">
110
                        <fileset dir="${hornetq.path}/lib">
111
                                <include name="hornetq-*.jar"/>
112
                                <include name="netty*.jar"/>
113
                        </fileset>
114
                </copy>
115
                <property name="hornetq.sar.dir" value="${jboss.deploy.dir}/hornetq.sar"/>
116
                <mkdir dir="${hornetq.sar.dir}"/>
117
                <copy todir="${hornetq.sar.dir}">
118
                        <fileset dir="${hornetq.path}/config/jboss-as/non-clustered" includes="*" excludes="**/jboss-as-4/**"/>
119
                </copy>
120
                <unzip src="${hornetq.path}/lib/hornetq-ra.rar" dest="${jboss.deploy.dir}/hornetq-ra.rar"/>
121
                <delete dir="${jboss.deploy.dir}/messaging" failonerror="false"/>
122
                <mkdir dir="${jboss.bin.dir}/META-INF/lib/linux2/x86"/>
123
                <mkdir dir="${jboss.bin.dir}/META-INF/lib/linux2/x64"/>
124
                <copy todir="${jboss.bin.dir}/META-INF/lib/linux2/x86" file="${hornetq.path}/bin/libHornetQAIO32.so"/>
125
                <copy todir="${jboss.bin.dir}/META-INF/lib/linux2/x64" file="${hornetq.path}/bin/libHornetQAIO64.so"/>
126
                <!-- Install gss configuration -->
127
                <copy todir="${jboss.bin.dir}" overwrite="true" failonerror="false">
128
                        <fileset dir="${jboss.project}/bin"/>
129
                </copy>
130
                <copy todir="${jboss.bin.dir}" overwrite="true" failonerror="false">
131
                        <fileset dir="${jboss-spec.bin.dir}" />
132
                </copy>
133
                <copy todir="${jboss.conf.dir}" overwrite="true" failonerror="false">
134
                        <fileset dir="${jboss.project}/conf"/>
135
                </copy>
136
                <copy todir="${jboss.conf.dir}" overwrite="true" failonerror="false">
137
                        <fileset dir="${jboss-spec.conf.dir}"/>
138
                </copy>
139
                <copy todir="${jboss.run_conf.lib.dir}" overwrite="true" failonerror="false">
140
                        <fileset dir="${jboss.project}/lib"/>
141
                </copy>
142
                <copy todir="${jboss.run_conf.lib.dir}" overwrite="true" failonerror="false">
143
                        <fileset dir="${jboss-spec.lib.dir}" />
144
                </copy>
145
                <copy todir="${jboss.deploy.dir}" overwrite="true" failonerror="false">
146
                        <fileset dir="${jboss.project}/deploy"/>
147
                </copy>
148
                <copy todir="${jboss.deploy.dir}" overwrite="true" failonerror="false">
149
                        <fileset dir="${jboss-spec.deploy.dir}" />
150
                </copy>
151
        </target>
152

    
153
        <target name="install-production" description="Installs the configuration files for the production deployment of the application server">
154
                <!-- Install HornetQ configuration -->
155
                <copy todir="${jboss.prod.run_conf.lib.dir}">
156
                        <fileset dir="${hornetq.path}/lib">
157
                                <include name="hornetq-*.jar"/>
158
                                <include name="netty*.jar"/>
159
                        </fileset>
160
                </copy>
161
                <property name="hornetq.prod.sar.dir" value="${jboss.prod.deploy.dir}/hornetq.sar"/>
162
                <mkdir dir="${hornetq.prod.sar.dir}"/>
163
                <copy todir="${hornetq.prod.sar.dir}">
164
                        <fileset dir="${hornetq.path}/config/jboss-as/non-clustered" includes="*" excludes="**/jboss-as-4/**"/>
165
                </copy>
166
                <unzip src="${hornetq.path}/lib/hornetq-ra.rar" dest="${jboss.prod.deploy.dir}/hornetq-ra.rar"/>
167
                <delete dir="${jboss.prod.deploy.dir}/messaging" failonerror="false"/>
168
                <mkdir dir="${jboss.prod.bin.dir}/META-INF/lib/linux2/x86"/>
169
                <mkdir dir="${jboss.prod.bin.dir}/META-INF/lib/linux2/x64"/>
170
                <copy todir="${jboss.prod.bin.dir}/META-INF/lib/linux2/x86" file="${hornetq.path}/bin/libHornetQAIO32.so"/>
171
                <copy todir="${jboss.prod.bin.dir}/META-INF/lib/linux2/x64" file="${hornetq.path}/bin/libHornetQAIO64.so"/>
172
                <!-- Install gss configuration -->
173
                <copy todir="${jboss.prod.bin.dir}" overwrite="true" failonerror="false">
174
                        <fileset dir="${jboss.project}/bin"/>
175
                </copy>
176
                <copy todir="${jboss.prod.bin.dir}" overwrite="true" failonerror="false">
177
                        <fileset dir="${jboss-spec.prod.bin.dir}" />
178
                </copy>
179
                <copy todir="${jboss.prod.conf.dir}" overwrite="true" failonerror="false">
180
                        <fileset dir="${jboss.project}/conf"/>
181
                </copy>
182
                <copy todir="${jboss.prod.conf.dir}" overwrite="true" failonerror="false">
183
                        <fileset dir="${jboss-spec.prod.conf.dir}"/>
184
                </copy>
185
                <copy todir="${jboss.prod.run_conf.lib.dir}" overwrite="true" failonerror="false">
186
                        <fileset dir="${jboss.project}/lib"/>
187
                </copy>
188
                <copy todir="${jboss.prod.run_conf.lib.dir}" overwrite="true" failonerror="false">
189
                        <fileset dir="${jboss-spec.prod.lib.dir}" />
190
                </copy>
191
                <copy todir="${jboss.prod.deploy.dir}" overwrite="true" failonerror="false">
192
                        <fileset dir="${jboss.project}/deploy"/>
193
                </copy>
194
                <copy todir="${jboss.prod.deploy.dir}" overwrite="true" failonerror="false">
195
                        <fileset dir="${jboss-spec.prod.deploy.dir}" />
196
                </copy>
197
        </target>
198

    
199
        <target name="compile" description="Compile src to bin">
200
                <mkdir dir="bin" />
201
                <javac srcdir="src:test" destdir="bin" debug="on" debuglevel="lines,vars,source" source="1.6">
202
                        <classpath refid="project.class.path" />
203
                </javac>
204
        </target>
205

    
206
        <target name="package-code" depends="compile" description="Package up the project code as a jar">
207
                <jar destfile="${build.dir}/${ant.project.name}.jar">
208
                        <fileset dir="bin">
209
                                <include name="org/json/**" />
210
                                <include name="**/server/**" />
211
                                <exclude name="**/domain/**"/>
212
                                <exclude name="**/ejb/**"/>
213
                                <exclude name="**/soap/**"/>
214
                        </fileset>
215
                </jar>
216
        </target>
217

    
218
        <target name="package-webdav" depends="compile" description="Package up the webdav code as a jar">
219
                <jar destfile="${build.dir}/webdav.jar">
220
                        <fileset dir="bin">
221
                                <include name="**/webdav/**" />
222
                        </fileset>
223
                </jar>
224
        </target>
225

    
226
        <target name="package-ejb" depends="compile" description="Package up the EJB classes">
227
                <jar destfile="${build.dir}/ejbs.jar">
228
                        <zipfileset dir="${basedir}/persistence" />
229
                        <zipfileset dir="${build.dir}">
230
                                <include name="**/configuration/**" />
231
                                <include name="**/exceptions/**" />
232
                                <include name="**/domain/**" />
233
                                <include name="**/ejb/**" />
234
                                <include name="**/soap/**" />
235
                                <exclude name="**/*Test.class"/>
236
                        </zipfileset>
237
                </jar>
238
        </target>
239

    
240
        <target name="check-gwt-compile" depends="compile">
241
                <uptodate property="compilation-not-needed">
242
                        <srcfiles dir="${src.dir}" excludes="**/server/**"/>
243
                        <mergemapper to="${build.dir}/www/gr.ebs.gss.GSS.nocache.js"/>
244
                </uptodate>
245
        </target>
246
        
247
        <target name="gwt-compile" depends="check-gwt-compile" unless="compilation-not-needed" description="Compile client code to JavaScript">
248
                    <condition property="gwt-dev-lib" value="${gwt.path}/gwt-dev.jar">
249
                            <available file="${gwt.path}/gwt-dev.jar" />
250
                    </condition>
251
                        
252
                        <java classname="com.google.gwt.dev.Compiler" failonerror="true" fork="true">
253
                                <!--arg value="-style"/>
254
                                 <arg value="DETAILED"/-->
255
                                <arg value="-localWorkers" />
256
                                <arg value="2" />
257
                                <arg value="-war"/>
258
                                <arg value="${gwt.www.dir}"/>
259
                                <arg value="${gwt.module}"/>
260
                                
261
                            <classpath>
262
                                    <pathelement location="dist/test.jar"/>
263
                                <pathelement path="${gwt-dev-lib}"/>
264
                                        <path refid="project.class.path" />
265
                                        <pathelement path="${src.dir}" />
266
                            </classpath>
267
                        </java>
268
                        <mkdir dir="${build.dir}/www"/>
269
                        <copy todir="${build.dir}/www">
270
                                <fileset dir="${gwt.www.dir}/${gwt.module}" excludes="**/${gwt.module.class}.html">
271
                                </fileset>
272
                        </copy>
273
                        <copy file="${gwt.www.dir}/${gwt.module}/${gwt.module.class}.html" tofile="${build.dir}/www/index.html" />
274
                </target>
275
        
276
        <target name="package-war" depends="gwt-compile, package-code" description="Package up the web part as a war">
277
                <jar destfile="${build.dir}/${dist.war}">
278
                        <zipfileset dir="${war.dir}" >
279
                                                        <exclude name="**/classes/**"/>
280
                                                        </zipfileset>
281

    
282
                        <zipfileset dir="${build.dir}/www" />
283
                        <zipfileset dir="${build.dir}" prefix="WEB-INF/lib">
284
                                <include name="${ant.project.name}.jar" />
285
                        </zipfileset>
286
                        <zipfileset dir="${gwt.path}" prefix="WEB-INF/lib">
287
                                <include name="gwt-servlet.jar" />
288
                        </zipfileset>
289
                </jar>
290
        </target>
291

    
292
        <target name="package-webdav-war" depends="package-webdav" description="Package up the WebDAV part as a war">
293
                <jar destfile="${build.dir}/${webdav.war}">
294
                        <zipfileset dir="${webdav.war.dir}" />
295
                        <zipfileset dir="${build.dir}" prefix="WEB-INF/lib">
296
                                <include name="webdav.jar" />
297
                        </zipfileset>
298
                </jar>
299
        </target>
300

    
301
        <target name="package-mbeans" depends="compile">
302
                <jar jarfile="${build.dir}/${mbeans.dist.file}" basedir="${build.dir}">
303
                        <include name="**/mbeans/**"/>
304
                        <metainf dir="${mbeans.meta-inf.dir}"/>
305
                </jar>
306
        </target>
307
        
308
        <target name="package-ear" depends="package-war, package-webdav-war, package-ejb, package-mbeans" description="Package up the project as an ear">
309
                <jar destfile="${build.dir}/${dist.ear}">
310
                        <zipfileset dir="${ear.dir}" />
311
                        <zipfileset dir="${build.dir}">
312
                                <include name="ejbs.jar" />
313
                                <include name="${dist.war}" />
314
                                <include name="${webdav.war}" />
315
                                <include name="${mbeans.dist.file}"/>
316
                        </zipfileset>
317
                </jar>
318
        </target>
319

    
320
        <target name="deploy" depends="package-ear" description="Deploy the project to the server">
321
                <copy todir="${jboss.deploy.dir}" file="${build.dir}/${dist.ear}"/>
322
        </target>
323

    
324
        <target name="deploy-production" depends="package-ear" description="Deploy the project to the production server">
325
                <copy todir="${jboss.prod.deploy.dir}" file="${build.dir}/${dist.ear}"/>
326
        </target>
327

    
328
        <target name="redeploy" depends="package-ear" description="Redeploy the project to the server">
329
                <copy todir="${jboss.deploy.dir}" file="${build.dir}/${dist.ear}" overwrite="yes"/>
330
        </target>
331

    
332
        <target name="undeploy" description="Undeploy the project from the server">
333
                <delete file="${jboss.deploy.dir}/${dist.ear}"/>
334
        </target>
335

    
336
        <target name="clean" description="Delete the contents of the bin and www directories">
337
                <delete dir="${build.dir}" />
338
                <delete dir="${gwt.www.dir}" />
339
        </target>
340

    
341
        <target name="test" description="Performs unit tests on the project" depends="compile">
342
                <available
343
                      property="junit.present"
344
                      classname="org.apache.tools.ant.taskdefs.optional.junit.JUnitTask"
345
                      classpathref="project.class.path"/>
346
            <fail unless="junit.present">
347
              ##################################################################
348
              JUnit not found.
349
              Please make sure junit.jar is in ANT_HOME/lib, or made available
350
              to Ant using other mechanisms like -lib or CLASSPATH.
351
              ##################################################################
352
                </fail>
353

    
354
                <junit printsummary="withOutAndErr" fork="yes" haltonfailure="yes">
355
                        <classpath refid="project.class.path"/>
356
                        <formatter type="plain"/>
357
                        <batchtest todir="${test.build.dir}">
358
                                <fileset dir="${test.build.classes.dir}">
359
                                        <include name="**/*Test.class"/>
360
                                </fileset>          
361
                        </batchtest>
362

    
363
                </junit>
364
        </target>
365
        
366
</project>