Statistics
| Branch: | Tag: | Revision:

root / build.xml @ 623:66f69a7348ed

History | View | Annotate | Download (18.5 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
        <property name="gwt.admin.module" value="gr.ebs.gss.admin.TwoAdmin" />
12
        <property name="gwt.admin.module.class" value="TwoAdmin" />
13
        <property name="gwt.workers" value="1" />
14

    
15
        <property environment="env" />
16

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

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

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

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

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

    
54
        <!-- MBeans -->
55
        <property name="mbeans.dir" value="${basedir}/mbeans"/>
56
        <property name="mbeans.meta-inf.dir" value="${mbeans.dir}/META-INF"/>
57

    
58
        <!-- JUnit dirs -->
59
        <property name="test.dir" value="${basedir}/test" />
60
        <property name="test.src.dir" value="${test.dir}/src"/>
61

    
62
        <!-- Build dirs -->
63
        <property name="build.dir" value="${basedir}/bin" />
64
        <property name="build.classes.dir" value="${build.dir}/classes" />
65
        <property name="test.build.dir" value="${build.dir}" />
66
        <property name="test.build.classes.dir" value="${test.build.dir}/" />
67
        <property name="gwt.www.dir" value="${basedir}/www" />
68
        <property name="gwt.www.admin.dir" value="${basedir}/wwwadmin" />
69
        <property name="dist.war" value="${ant.project.name}.war"/>
70
        <property name="dist.admin.war" value="${ant.project.name}-admin.war"/>
71
        <property name="webdav.war" value="webdav.war"/>
72
        <property name="dist.ear" value="${ant.project.name}.ear"/>
73

    
74
        <property name="war.dir" value="${basedir}/war" />
75
        <property name="war.web-inf.dir" value="${war.dir}/WEB-INF"/>
76
        <property name="war.lib.dir" value="${war.web-inf.dir}/lib"/>
77
        <property name="war.admin.dir" value="${basedir}/waradmin" />
78
        <property name="war.admin.web-inf.dir" value="${war.dir}/WEB-INF"/>
79
        <property name="war.admin.lib.dir" value="${war.web-inf.dir}/lib"/>
80
        <property name="webdav.war.dir" value="${basedir}/webdav" />
81
        <property name="webdav.war.web-inf.dir" value="${webdav.war.dir}/WEB-INF"/>
82
        <property name="webdav.war.lib.dir" value="${webdav.war.web-inf.dir}/lib"/>
83
        <property name="ear.dir" value="${basedir}/ear" />
84
        <property name="ear.lib.dir" value="${ear.dir}/lib" />
85
        
86
        <property name="mbeans.dist.file" value="${ant.project.name}-mbeans.sar"/>
87

    
88
        <!-- set classpath -->
89
        <path id="project.class.path">
90
                <pathelement path="${java.class.path}/" />
91
                <pathelement path="${gwt.path}/gwt-user.jar" />
92
                <pathelement location="${jboss.common.lib.dir}/commons-logging.jar"/>
93
                <pathelement location="${jboss.common.lib.dir}/ejb3-persistence.jar"/>
94
                <pathelement location="${jboss.common.lib.dir}/jboss-ejb3-ext-api.jar"/>
95
                <pathelement location="${jboss.common.lib.dir}/jboss-javaee.jar"/>
96
                <pathelement location="${jboss.common.lib.dir}/jbosssx.jar"/>
97
                <pathelement location="${jboss.common.lib.dir}/hibernate-core.jar"/>
98
        <pathelement location="${jboss.common.lib.dir}/hibernate-annotations.jar"/>
99
                <pathelement location="${jboss.lib.dir}/jboss-j2se.jar"/>
100
                <pathelement location="${jboss.lib.dir}/jboss-kernel.jar"/>
101
                <pathelement location="${jboss.lib.dir}/jboss-system-jmx.jar"/>
102
                <pathelement location="${jboss.lib.dir}/jboss-system.jar"/>
103
                <pathelement location="${jboss.lib.dir}/jbosssx.jar"/>
104
                <pathelement location="${ear.lib.dir}/commons-codec-1.4.jar"/>
105
                <pathelement location="${ear.lib.dir}/commons-configuration-1.6.jar"/>
106
                <pathelement location="${war.lib.dir}/commons-fileupload-1.2.jar"/>
107
        <pathelement location="${ear.lib.dir}/commons-httpclient-3.1.jar"/>
108
                <pathelement location="${ear.lib.dir}/commons-lang.jar"/>
109
                <pathelement location="${ear.lib.dir}/ldap.jar"/>
110
                <pathelement location="${junit.path}/junit.jar"/>
111
                <pathelement location="${basedir}/lib/gwt-dnd-3.0.1.jar"/>
112
                <pathelement location="${basedir}/lib/gwt-gears.jar"/>
113
                <pathelement location="${basedir}/lib/gwt-incubator-20100204-r1747.jar"/>
114
                <pathelement location="${basedir}/lib/gwt-visualization.jar"/>
115
        </path>
116

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

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

    
209
        <target name="compile" description="Compile src to bin">
210
                <mkdir dir="bin" />
211
                <javac srcdir="src:test" destdir="bin" debug="on" debuglevel="lines,vars,source" source="1.6">
212
                        <classpath refid="project.class.path" />
213
                </javac>
214
        </target>
215

    
216
        <target name="package-code" depends="compile" description="Package up the project code as a jar">
217
                <jar destfile="${build.dir}/${ant.project.name}.jar">
218
                        <fileset dir="bin">
219
                                <include name="org/json/**" />
220
                                <include name="**/client/AdminService.class" />
221
                                <include name="**/server/**" />
222
                                <exclude name="**/domain/**"/>
223
                                <exclude name="**/ejb/**"/>
224
                        </fileset>
225
                        <fileset dir="src">
226
                                <include name="**/*.xml" />
227
                                <include name="**/client/exceptions/**" />
228
                                </fileset>
229
                </jar>
230
        </target>
231

    
232
        <target name="package-webdav" depends="compile" description="Package up the webdav code as a jar">
233
                <jar destfile="${build.dir}/webdav.jar">
234
                        <fileset dir="bin">
235
                                <include name="**/webdav/**" />
236
                        </fileset>
237
                </jar>
238
        </target>
239

    
240
        <target name="package-ejb" depends="compile" description="Package up the EJB classes">
241
                <jar destfile="${build.dir}/ejbs.jar">
242
                        <zipfileset dir="${basedir}/persistence" />
243
                        <zipfileset dir="${build.dir}">
244
                                <include name="**/configuration/**" />
245
                                <include name="**/exceptions/**" />
246
                                <include name="**/domain/**" />
247
                                <include name="**/ejb/**" />
248
                                <exclude name="**/*Test.class"/>
249
                        </zipfileset>
250
                </jar>
251
        </target>
252

    
253
        <target name="check-gwt-compile" depends="compile">
254
                <uptodate property="compilation-not-needed">
255
                        <srcfiles dir="${src.dir}" excludes="**/server/**"/>
256
                        <mergemapper to="${build.dir}/www/gr.ebs.gss.GSS.nocache.js"/>
257
                </uptodate>
258
        </target>
259

    
260
        <target name="gwt-compile" depends="check-gwt-compile" unless="compilation-not-needed" description="Compile client code to JavaScript">
261
            <condition property="gwt-dev-lib" value="${gwt.path}/gwt-dev.jar">
262
                    <available file="${gwt.path}/gwt-dev.jar" />
263
            </condition>
264
                
265
                <java classname="com.google.gwt.dev.Compiler" failonerror="true" fork="true">
266
                        <!--arg value="-style"/>
267
                        <arg value="DETAILED"/-->
268
                        <arg value="-localWorkers" />
269
                        <arg value="${gwt.workers}" />
270
                        <arg value="-war"/>
271
                        <arg value="${gwt.www.dir}"/>
272
                        <arg value="${gwt.module}"/>
273
                        
274
                    <classpath>
275
                        <pathelement path="${gwt-dev-lib}"/>
276
                                <path refid="project.class.path" />
277
                                <pathelement path="${src.dir}" />
278
                    </classpath>
279
                </java>
280
                <mkdir dir="${build.dir}/www"/>
281
                <copy todir="${build.dir}/www">
282
                        <fileset dir="${gwt.www.dir}/${gwt.module}" excludes="**/${gwt.module.class}.html">
283
                        </fileset>
284
                </copy>
285
                <copy file="${gwt.www.dir}/${gwt.module}/${gwt.module.class}.html" tofile="${build.dir}/www/index.html" />
286
        </target>
287
        
288
        <target name="package-war" depends="gwt-compile, package-code" description="Package up the web part as a war">
289
                <jar destfile="${build.dir}/${dist.war}">
290
                        <zipfileset dir="${war.dir}" >
291
                            <exclude name="**/classes/**"/>
292
                        </zipfileset>
293
                        <zipfileset dir="${build.dir}/www" />
294
                        <zipfileset dir="${build.dir}" prefix="WEB-INF/lib">
295
                                <include name="${ant.project.name}.jar" />
296
                        </zipfileset>
297
                </jar>
298
        </target>
299
        
300
        <target name="check-gwt-admin-compile" depends="compile">
301
                <uptodate property="compilation-not-needed">
302
                        <srcfiles dir="${src.dir}" excludes="**/server/**"/>
303
                        <mergemapper to="${build.dir}/wwwadmin/gr.ebs.gss.admin.TwoAdmin.nocache.js"/>
304
                </uptodate>
305
        </target>
306

    
307
        <target name="gwt-admin-compile" depends="check-gwt-admin-compile" unless="compilation-not-needed" description="Compile client code to JavaScript">
308
            <condition property="gwt-dev-lib" value="${gwt.path}/gwt-dev.jar">
309
                    <available file="${gwt.path}/gwt-dev.jar" />
310
            </condition>
311
                
312
                <java classname="com.google.gwt.dev.Compiler" failonerror="true" fork="true">
313
                        <!--arg value="-style"/>
314
                        <arg value="DETAILED"/-->
315
                        <arg value="-localWorkers" />
316
                        <arg value="${gwt.workers}" />
317
                        <arg value="-war"/>
318
                        <arg value="${gwt.www.admin.dir}"/>
319
                        <arg value="${gwt.admin.module}"/>
320
            <jvmarg value="-Xmx128m"/>                                                
321
                    <classpath>
322
                        <pathelement path="${gwt-dev-lib}"/>
323
                                <path refid="project.class.path" />
324
                                <pathelement path="${src.dir}" />
325
                    </classpath>
326
                </java>
327
                <mkdir dir="${build.dir}/wwwadmin"/>
328
                <copy todir="${build.dir}/wwwadmin">
329
                        <fileset dir="${gwt.www.admin.dir}/${gwt.admin.module}" excludes="**/${gwt.admin.module.class}.html">
330
                        </fileset>
331
                </copy>
332
                <copy file="${gwt.www.admin.dir}/${gwt.admin.module}/${gwt.admin.module.class}.html" tofile="${build.dir}/wwwadmin/index.html" />
333
        </target>
334
                
335
        <target name="package-admin-war" depends="gwt-admin-compile, package-code" description="Package up the web part as a war">
336
                <jar destfile="${build.dir}/${dist.admin.war}">
337
                        <zipfileset dir="${war.admin.dir}" >
338
                                  <exclude name="**/classes/**"/>
339
            </zipfileset>
340
                        <zipfileset dir="${build.dir}/wwwadmin" />
341
                        <zipfileset dir="${build.dir}" prefix="WEB-INF/lib">
342
                                <include name="${ant.project.name}.jar" />
343
                        </zipfileset>
344
                        <zipfileset dir="${gwt.path}" prefix="WEB-INF/lib">
345
                                <include name="gwt-servlet.jar" />
346
                        </zipfileset>
347
                </jar>
348
        </target>
349

    
350
        <target name="package-webdav-war" depends="package-webdav" description="Package up the WebDAV part as a war">
351
                <jar destfile="${build.dir}/${webdav.war}">
352
                        <zipfileset dir="${webdav.war.dir}" />
353
                        <zipfileset dir="${build.dir}" prefix="WEB-INF/lib">
354
                                <include name="webdav.jar" />
355
                        </zipfileset>
356
                </jar>
357
        </target>
358

    
359
        <target name="package-mbeans" depends="compile">
360
                <jar jarfile="${build.dir}/${mbeans.dist.file}" basedir="${build.dir}">
361
                        <include name="**/mbeans/**"/>
362
                        <metainf dir="${mbeans.meta-inf.dir}"/>
363
                </jar>
364
        </target>
365
        
366
        <target name="package-ear" depends="package-admin-war, package-war, package-webdav-war, package-ejb, package-mbeans" description="Package up the project as an ear">
367
                <jar destfile="${build.dir}/${dist.ear}">
368
                        <zipfileset dir="${ear.dir}" />
369
                        <zipfileset dir="${build.dir}">
370
                                <include name="ejbs.jar" />
371
                                <include name="${dist.war}" />
372
                                <include name="${webdav.war}" />
373
                <include name="${dist.admin.war}" />
374
                                <include name="${mbeans.dist.file}"/>
375
                        </zipfileset>
376
                </jar>
377
        </target>
378

    
379
        <target name="deploy" depends="package-ear" description="Deploy the project to the server">
380
                <copy todir="${jboss.deploy.dir}" file="${build.dir}/${dist.ear}"/>
381
        </target>
382

    
383
        <target name="deploy-production" depends="package-ear" description="Deploy the project to the production server">
384
                <copy todir="${jboss.prod.deploy.dir}" file="${build.dir}/${dist.ear}"/>
385
        </target>
386

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

    
391
        <target name="undeploy" description="Undeploy the project from the server">
392
                <delete file="${jboss.deploy.dir}/${dist.ear}"/>
393
        </target>
394

    
395
        <target name="clean" description="Delete the contents of the bin and www directories">
396
                <delete dir="${build.dir}" />
397
                <delete dir="${gwt.www.dir}" />
398
                <delete dir="${gwt.www.admin.dir}" />
399
        </target>
400

    
401
        <target name="test" description="Performs unit tests on the project" depends="compile">
402
                <available
403
                      property="junit.present"
404
                      classname="org.apache.tools.ant.taskdefs.optional.junit.JUnitTask"
405
                      classpathref="project.class.path"/>
406
            <fail unless="junit.present">
407
              ##################################################################
408
              JUnit not found.
409
              Please make sure junit.jar is in ANT_HOME/lib, or made available
410
              to Ant using other mechanisms like -lib or CLASSPATH.
411
              ##################################################################
412
                </fail>
413

    
414
                <junit printsummary="withOutAndErr" fork="yes" haltonfailure="yes">
415
                        <classpath refid="project.class.path"/>
416
                        <formatter type="plain"/>
417
                        <batchtest todir="${test.build.dir}">
418
                                <fileset dir="${test.build.classes.dir}">
419
                                        <include name="**/*Test.class"/>
420
                                </fileset>          
421
                        </batchtest>
422

    
423
                </junit>
424
        </target>
425
        
426
</project>