Subversion Repositories bacoAlunos

Rev

Rev 92 | Rev 101 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
58 jmachado 1
<?xml version="1.0" encoding="utf-8"?>
1 fvelez 2
<project name="estgweb" basedir="." default="help">
3
 
4
 
5
    <!--
6
    ==========================================================================================
7
    ANT TASKS
8
    ==========================================================================================
9
    -->
10
    <target name="help">
11
        <echo>This is the availible Ant Tasks:</echo>
12
    </target>
13
 
14
 
15
    <!--
16
    ==========================================================================================
17
    Path libs definitions and Properties files
18
    ==========================================================================================
19
    -->
20
    <property file="local.properties"/>
21
    <property file="build.properties"/>
22
 
23
    <path id="pathToToolsLib">
24
        <fileset dir="${tomcat.libs.common.home}">
25
            <include name="**.jar"/>
26
        </fileset>
27
        <fileset dir="${tomcat.libs.ant.home}">
28
            <include name="**.jar"/>
29
        </fileset>
32 fvelez 30
        <fileset dir="${common.lib.dir}/mail">
31
            <include name="**/*.jar"/>
32
        </fileset>
1 fvelez 33
        <fileset dir="${common.lib.dir}/berserk">
34
            <include name="**/*.jar"/>
35
        </fileset>
36
        <fileset dir="${common.lib.dir}/ldap">
37
            <include name="**/*.jar"/>
38
        </fileset>
39
        <fileset dir="${common.lib.dir}/hibernate">
40
            <include name="**/*.jar"/>
41
        </fileset>
42
        <fileset dir="${common.lib.dir}/log4j">
43
            <include name="**/*.jar"/>
44
        </fileset>
45
        <fileset dir="${common.lib.dir}/jaxb">
46
            <include name="**/*.jar"/>
47
        </fileset>
48
        <fileset dir="${common.lib.dir}/mysql">
49
            <include name="**/*.jar"/>
50
        </fileset>
51
        <fileset dir="${common.lib.dir}/commons">
52
            <include name="**/*.jar"/>
53
        </fileset>
54
        <fileset dir="${common.lib.dir}/web">
55
            <include name="**/*.jar"/>
56
        </fileset>
57
        <fileset dir="${common.lib.dir}/struts">
58
            <include name="**/*.jar"/>
59
        </fileset>
18 jmachado 60
        <fileset dir="${common.lib.dir}/jfreechart">
61
            <include name="**/*.jar"/>
62
        </fileset>
92 jmachado 63
        <fileset dir="${common.lib.dir}/lucene">
64
            <include name="**/*.jar"/>
65
        </fileset>
99 jmachado 66
        <fileset dir="${common.lib.dir}/jaxrpc">
67
            <include name="**/*.jar"/>
68
        </fileset>
69
        <fileset dir="${common.lib.dir}/xml">
70
            <include name="**/*.jar"/>
71
        </fileset>
1 fvelez 72
    </path>
73
 
99 jmachado 74
    <import file="build-web-services.xml"/>
1 fvelez 75
 
76
    <!--
77
    ==========================================================================================
78
    General Task
79
    ==========================================================================================
80
    -->
81
    <!--caso queiramos apagar os pregen hbm delPreGenAppScripts-->
82
    <target name="all" depends="clean,initDirs,createConfigurationFiles,generateHibernateDomainObjects,generateHibernateDaoClasses,build,genAppScripts,build.war,dbInit"/>
83
 
84
 
85
    <!--
86
    ==========================================================================================
87
    CLEAN TASKS
88
    ==========================================================================================
89
    -->
90
    <target name="clean" description="clean *.class and build dir">
91
        <delete dir="${build.dir}"/>
99 jmachado 92
        <delete dir="${dist.dir}"/>
7 jmachado 93
        <delete>
94
            <fileset dir="${gen.dir.java}">
95
                <include name="**/*.java"/>
96
            </fileset>
97
        </delete>
1 fvelez 98
        <antcall target="initDirs"/>
99
    </target>
100
 
101
 
102
 
103
    <!--
104
     ==========================================================================================
105
     CREATE-DIRS
106
     ==========================================================================================
107
     -->
108
    <target name="initDirs">
109
        <mkdir dir="${log.dir}"/>
110
        <mkdir dir="${data.dir}"/>
111
        <mkdir dir="${build.dir}"/>
112
        <mkdir dir="${build.dir.classes}"/>
113
        <mkdir dir="${build.dir.war}"/>
99 jmachado 114
        <mkdir dir="${build.dir.ws}"/>
1 fvelez 115
        <delete dir="${dist.dir}"/>
116
        <mkdir dir="${dist.dir}"/>
117
        <mkdir dir="${gen.dir.java}"/>
118
    </target>
119
 
120
 
121
 
122
    <!--
123
    ==========================================================================================
124
    Tomcat Tasks
125
    ==========================================================================================
126
    -->
127
    <taskdef name="tomcat.reload" classname="org.apache.catalina.ant.ReloadTask" classpathref="pathToToolsLib"/>
128
    <taskdef name="tomcat.remove" classname="org.apache.catalina.ant.RemoveTask" classpathref="pathToToolsLib"/>
129
    <taskdef name="tomcat.roles" classname="org.apache.catalina.ant.RolesTask" classpathref="pathToToolsLib"/>
130
    <taskdef name="tomcat.start" classname="org.apache.catalina.ant.StartTask" classpathref="pathToToolsLib"/>
131
    <taskdef name="tomcat.stop" classname="org.apache.catalina.ant.StopTask" classpathref="pathToToolsLib"/>
132
    <taskdef name="tomcat.undeploy" classname="org.apache.catalina.ant.UndeployTask" classpathref="pathToToolsLib"/>
133
    <taskdef name="tomcat.deploy" classname="org.apache.catalina.ant.DeployTask" classpathref="pathToToolsLib"/>
134
    <taskdef name="tomcat.install" classname="org.apache.catalina.ant.InstallTask" classpathref="pathToToolsLib"/>
135
 
136
 
137
    <!--
138
        TOMCAT Instalation Tasks
139
    -->
140
    <target name="tomcat.deployContext" depends="build.war">
141
        <echo message="${tomcat.manager}"/>
142
        <tomcat.install url="${tomcat.manager}" path="${tomcat.context.path.install}"
143
                        config="file://${basedir}/${dist.dir}/estgweb.xml"
144
                        username="${tomcat.username}" password="${tomcat.password}" />
145
    </target>
146
    <target name="tomcat.redeployContext" depends="tomcat.undeploy,build.war" >
147
        <echo message="${tomcat.manager}"/>
148
        <tomcat.install url="${tomcat.manager}" path="${tomcat.context.path.install}"
149
                        config="file:/${basedir}/${dist.dir}/estgweb.xml"
150
                        username="${tomcat.username}" password="${tomcat.password}" />
151
    </target>
152
    <target name="tomcat.deploy" depends="build.war" >
153
        <echo message="${tomcat.manager}"/>
154
        <tomcat.deploy url="${tomcat.manager}" path="${tomcat.context.path.install}"
155
                       war="file:/${basedir}/${dist.dir}/${tomcat.war.file}"
156
                       username="${tomcat.username}" password="${tomcat.password}" />
157
    </target>
158
    <target name="tomcat.redeploy" depends="tomcat.undeploy,build.war">
159
        <echo message="${tomcat.manager}"/>
160
        <tomcat.deploy url="${tomcat.manager}" path="${tomcat.context.path.install}"
161
                       war="file:/${basedir}/${dist.dir}/${tomcat.war.file}"
162
                       username="${tomcat.username}" password="${tomcat.password}" />
163
    </target>
164
    <target name="tomcat.undeploy">
165
        <echo message="${tomcat.manager}"/>
166
        <tomcat.undeploy url="${tomcat.manager}" path="${tomcat.context.path.install}"
167
                         username="${tomcat.username}" password="${tomcat.password}" />
168
    </target>
169
    <target name="tomcat.reload">
170
        <echo message="${tomcat.manager}"/>
171
        <tomcat.reload url="${tomcat.manager}" path="${tomcat.context.path.install}"
172
                       username="${tomcat.username}" password="${tomcat.password}" />
173
    </target>
174
    <target name="tomcat.start">
175
        <echo message="${tomcat.manager}"/>
176
        <tomcat.start url="${tomcat.manager}" path="${tomcat.context.path.install}"
177
                      username="${tomcat.username}" password="${tomcat.password}" />
178
    </target>
179
    <target name="tomcat.stop">
180
        <echo message="${tomcat.manager}"/>
181
        <tomcat.stop url="${tomcat.manager}" path="${tomcat.context.path.install}"
182
                     username="${tomcat.username}" password="${tomcat.password}" />
183
    </target>
184
 
185
    <!--
186
    ==========================================================================================
187
    BUILD TASKS, Have no effect now, no revengstrategy defined....
188
    ==========================================================================================
189
    -->
190
    <target name="build" depends="initDirs" description="Compile All and create conf files">
191
        <antcall target="compile"/>
192
        <antcall target="createConfigurationFiles"/>
193
    </target>
194
    <target name="compile" depends="initDirs" description="Compile All">
195
        <javac encoding="UTF-8" destdir="${build.dir.classes}" debug="true" optimize="true" fork="true" deprecation="true" verbose="true" failonerror="true">
196
            <src path="${src.dir}"/>
197
            <src path="${gen.dir.java}"/>
198
            <classpath refid="pathToToolsLib"/>
199
        </javac>
200
    </target>
201
    <target name="compileToolFiles" description="Compile Mappings Builder">
202
        <javac destdir="${build.dir.classes}" srcdir="${src.dir}" debug="true" optimize="true"  deprecation="true" verbose="true" failonerror="true">
203
            <include name="${mapping.buider.class.file}"/>
204
            <classpath refid="pathToToolsLib"/>
205
        </javac>
206
    </target>
207
 
208
    <!--
209
        Build distribution files
210
    -->
211
    <target name="dist" depends="build">
212
        <jar jarfile="${dist.dir}/estgweb.jar">
213
            <fileset dir="${build.dir.classes}" includes="**/*.class"/>
214
        </jar>
215
        <copy overwrite="true" todir="${dist.dir}">
216
            <fileset dir="${build.dir.classes}" includes="**/*.properties"/>
217
            <fileset dir="${build.dir.classes}" includes="**/*.xml"/>
218
        </copy>
219
        <copy overwrite="true" todir="${dist.dir}" file="${conf.dir}/tomcat/estgweb.xml"/>
220
        <replace file="${dist.dir}/estgweb.xml" value="">
221
            <replacefilter token="@build.dir.war@" value="${basedir}${file.separator}build${file.separator}ant${file.separator}war${file.separator}"/>
222
            <replacefilter token="@context.path@" value="${tomcat.context.path}"/>
223
        </replace>
224
    </target>
225
 
7 jmachado 226
    <target name="copy.jsps.war" description="copy only jsps to war distribution">
1 fvelez 227
        <copy todir="${build.dir.war}" overwrite="false">
228
            <fileset dir="src/web">
229
                <include name="**/*"/>
230
            </fileset>
231
        </copy>
232
    </target>
233
 
234
    <target name="build.war" depends="build,dist" description="Make war distribution">
235
        <mkdir dir="${build.dir.war}"/>
236
        <mkdir dir="${build.dir.war}/WEB-INF"/>
237
        <mkdir dir="${build.dir.war}/WEB-INF/lib"/>
238
        <copy todir="${build.dir.war}/WEB-INF/lib">
239
            <fileset dir="${common.lib.dir}/log4j">
240
                <include name="*.jar"/>
241
            </fileset>
242
            <fileset dir="${common.lib.dir}/berserk">
243
                <include name="**/*.jar"/>
244
            </fileset>
245
            <fileset dir="${common.lib.dir}/hibernate">
246
                <include name="**/*.jar"/>
247
            </fileset>
248
            <fileset dir="${common.lib.dir}/log4j">
249
                <include name="**/*.jar"/>
250
            </fileset>
251
            <fileset dir="${common.lib.dir}/mysql">
252
                <include name="**/*.jar"/>
253
            </fileset>
254
            <fileset dir="${common.lib.dir}/commons">
255
                <include name="**/*.jar"/>
256
            </fileset>
257
            <fileset dir="${common.lib.dir}/struts">
258
                <include name="**/*.jar"/>
259
            </fileset>
10 jmachado 260
            <fileset dir="${common.lib.dir}/ldap">
261
                <include name="**/*.jar"/>
262
            </fileset>
29 jmachado 263
            <fileset dir="${common.lib.dir}/mail">
264
                <include name="**/*.jar"/>
265
            </fileset>
18 jmachado 266
            <fileset dir="${common.lib.dir}/jfreechart">
267
                <include name="**/*.jar"/>
268
            </fileset>
99 jmachado 269
            <fileset dir="${common.lib.dir}/lucene">
92 jmachado 270
                <include name="**/*.jar"/>
271
            </fileset>
1 fvelez 272
        </copy>
273
        <copy file="${dist.dir}/estgweb.jar" todir="${build.dir.war}/WEB-INF/lib"/>
274
        <copy todir="${build.dir.war}/WEB-INF" overwrite="true">
275
            <fileset dir="${conf.dir}/WEB-INF">
276
                <include name="**/*.*"/>
277
            </fileset>
278
        </copy>
279
        <mkdir dir="${build.dir.war}/WEB-INF/classes"/>
280
        <copy todir="${build.dir.war}/WEB-INF/classes" overwrite="true">
281
            <fileset dir="${build.dir.classes}">
18 jmachado 282
                <include name="**/*.types"/>
1 fvelez 283
                <include name="**/*.properties"/>
29 jmachado 284
                <include name="**/*.txt"/>
1 fvelez 285
                <include name="**/*.xml"/>
286
            </fileset>
287
        </copy>
288
        <copy todir="${build.dir.war}" overwrite="true">
289
            <fileset dir="src/web">
290
                <include name="**/*"/>
291
            </fileset>
292
        </copy>
48 fvelez 293
        <replace file="${build.dir.war}/js/ajax.js">
56 fvelez 294
            <replacefilter token="@server.base.url@" value="${service.url}"/>
48 fvelez 295
        </replace>
1 fvelez 296
    </target>
297
 
298
    <target name="war" depends="build.war">
299
        <delete file="${dist.dir}/${tomcat.war.file}"/>
300
        <jar destfile="${dist.dir}/${tomcat.war.file}">
301
            <fileset dir="${build.dir.war}">
302
                <include name="**/*" />
303
            </fileset>
304
        </jar>
305
    </target>
306
 
307
 
308
    <!--
309
    ==========================================================================================
310
    Generate Configuration Files TASKS
311
    ==========================================================================================
312
    -->
313
    <target name="createConfigurationFiles" depends="copyConfigurationFiles,replaceFiltersConfigurationFiles,generateHibernateCfgXml"/>
314
 
315
    <target name="copyConfigurationFiles">
316
        <copy overwrite="true" todir="${build.dir.classes}">
317
            <fileset dir="${hbm.dir}" includes="**/*.hbm.xml"/>
318
        </copy>
319
        <copy overwrite="true" todir="${build.dir.classes}">
320
            <fileset dir="${src.dir}" includes="**/*.xsl"/>
321
        </copy>
322
        <copy overwrite="true" todir="${build.dir.classes}">
323
            <fileset dir="${conf.dir}/berserk" includes="*.*"/>
324
        </copy>
29 jmachado 325
        <mkdir dir="${email.templates.dir.build}"/>
326
        <copy overwrite="true" todir="${email.templates.dir.build}">
327
            <fileset dir="${email.templates.dir.conf}" includes="*.*"/>
328
        </copy>
1 fvelez 329
        <copy overwrite="true" todir="${hibernate.cfg.xml.build}" file="${hibernate.cfg.xml}"/>
18 jmachado 330
        <copy overwrite="true" todir="${mime.types.build}" file="${mime.types}"/>
1 fvelez 331
        <copy overwrite="true" todir="${app.properties.build}" file="${app.properties}"/>
332
        <copy overwrite="true" todir="${jdbc.properties.build}" file="${jdbc.properties}"/>
333
        <copy overwrite="true" todir="${ldap.properties.build}" file="${ldap.properties}"/>
334
        <copy overwrite="true" todir="${build.dir.classes}" file="${log4j.properties}"/>
335
    </target>
336
 
337
    <target name="replaceFiltersConfigurationFiles">
338
        <delete file="${build.dir.classes}/MessageResources.properties"/>
339
        <concat encoding="ISO-8859-1" destfile="${build.dir.classes}/MessageResources.properties" append="true">
340
            <fileset dir="${conf.dir}/language">
341
                <include name="*.properties" />
342
            </fileset>
343
        </concat>
344
        <replace file="${jdbc.properties.build}/${jdbc.properties.filename}">
345
            <replacefilter token="@database.username@" value="${database.username}"/>
346
            <replacefilter token="@database.password@" value="${database.password}"/>
347
            <replacefilter token="@database.connection.url@" value="${database.connection.url}"/>
348
        </replace>
349
        <replace file="${hibernate.cfg.xml.build}/${hibernate.cfg.xml.filename}">
350
            <replacefilter token="@database.username@" value="${database.username}"/>
351
            <replacefilter token="@database.password@" value="${database.password}"/>
352
            <replacefilter token="@database.connection.url@" value="${database.connection.url}"/>
353
            <replacefilter token="@hibernate.show.sql@" value="${hibernate.show.sql}"/>
354
        </replace>
355
        <replace file="${app.properties.build}/app.properties">
356
            <replacefilter token="@tmp.dir@" value="${tmp.dir}"/>
357
            <replacefilter token="@out.dir@" value="${out.dir}"/>
29 jmachado 358
            <replacefilter token="@email.templates.dir@" value="${email.templates.dir}"/>
79 jmachado 359
            <replacefilter token="@use.ldap@" value="${use.ldap}"/>
1 fvelez 360
        </replace>
361
        <replace file="${build.dir.classes}/${log4j.properties.filename}">
362
            <replacefilter token="@log.file@" value="${log.file}"/>
363
        </replace>
364
        <replace file="${jdbc.properties.build}/${jdbc.properties.filename}">
365
            <replacefilter token="@database.username@" value="${database.username}"/>
366
            <replacefilter token="@database.password@" value="${database.password}"/>
367
            <replacefilter token="@database.connection.url@" value="${database.connection.url}"/>
368
        </replace>
369
    </target>
370
    <target name="generateHibernateCfgXml" depends="compileToolFiles">
371
        <!--<delete file="${build.dir.classes}/${hibernate.cfg.xml.filename}"/>-->
372
        <java classname="${mapping.buider.class}" classpath="${build.dir.classes}">
373
            <arg value="${hibernate.cfg.xml.build}"/>
374
            <arg value="${hibernate.cfg.xml}"/>
375
            <arg value="${package.dir}"/>
376
        </java>
377
        <antcall target="replaceFiltersConfigurationFiles"/>
378
    </target>
379
    <target name="dbInit">
7 jmachado 380
        <!--<delete file="${build.dir.classes}/${hibernate.cfg.xml.filename}"/>-->
381
        <java classname="pt.estgp.estgweb.examples.DBInit" classpath="${build.dir.classes}" classpathref="pathToToolsLib"/>
1 fvelez 382
 
7 jmachado 383
        <antcall target="replaceFiltersConfigurationFiles"/>
384
    </target>
1 fvelez 385
 
386
 
7 jmachado 387
 
1 fvelez 388
    <!--
389
    Hibernate Tools Task
390
    -->
7 jmachado 391
    <taskdef name="hibernatetool"
392
             classname="org.hibernate.tool.ant.HibernateToolTask"
393
             classpathref="pathToToolsLib" classpath="${build.dir.classes}"/>
1 fvelez 394
    <!--
395
    ==========================================================================================
396
    GENERATE SQL SCRIPTS
397
    ==========================================================================================
398
    -->
399
    <taskdef name="schemaexport"
400
             classname="org.hibernate.tool.hbm2ddl.SchemaExportTask"
401
             classpathref="pathToToolsLib" classpath="${build.dir.classes}"/>
402
 
403
 
404
    <target name="genAppScripts" depends="build">
405
        <schemaexport
406
                properties="${jdbc.properties.build}/${jdbc.properties.filename}"
407
                quiet="no"
408
                text="no"
409
                drop="no"
410
                delimiter=";"
411
                output="${build.dir.classes}/app-scripts.sql">
412
            <fileset dir="${hbm.dir}">
413
                <include name="**/*.hbm.xml"/>
414
            </fileset>
415
        </schemaexport>
416
    </target>
417
 
418
    <target name="generateHibernateDomainObjects">
419
        <hibernatetool>
420
            <configuration>
421
                <fileset dir="${hbm.dir}">
422
                    <include name="**/*.hbm.xml"/>
423
                </fileset>
424
            </configuration>
425
            <hbm2java
426
                    jdk5="true"
427
                    ejb3="false"
428
                    destdir="${gen.dir.java}"/>
429
        </hibernatetool>
430
        <delete>
431
            <fileset dir="${gen.dir.java}">
432
                <include name="**/*Impl.java"/>
433
            </fileset>
434
        </delete>
435
    </target>
436
 
437
 
438
    <!--
439
        ==========================================================================================
440
        GENERATE DAO IMPLEMENTATION
441
        ==========================================================================================
442
        -->
443
    <target name="generateHibernateDaoClasses">
444
        <hibernatetool destdir="${gen.dir.java}" >
445
            <configuration>
446
                <fileset dir="${hbm.dir}">
447
                    <include name="**/*.hbm.xml"/>
448
                </fileset>
449
            </configuration>
450
            <hbmtemplate
451
                    filepattern="{class-name}${dao.file.pattern}.java"
452
                    templatepath="${dao.template.dir}"
453
                    template="${dao.impl.template}"
454
                    destdir="${dao.impl.package.dir}">
455
                <property key="jdk5" value="true"/>
456
                <property key="ejb3" value="false"/>
457
                <property key="dao" value="${dao.file.pattern}"/>
458
                <property key="daoDomainPackage" value="${domain.package}"/>
459
                <property key="daoInterfacesPackage" value="${dao.interfaces.package}"/>
460
                <property key="daoImplPackage" value="${dao.impl.package}"/>
461
            </hbmtemplate>
462
        </hibernatetool>
463
        <delete>
464
            <fileset dir="${gen.dir.java}">
465
                <include name="**/*ImplDao.java"/>
466
            </fileset>
467
        </delete>
468
    </target>
469
 
470
 
471
 
472
    <!--
473
    Run Deamon
474
    -->
475
 
476
    <!--<target name="run">-->
477
    <!--<java classname="mitra.oaiharvest.harvest.HarvestEngine" classpath="${build.dir.classes}" classpathref="pathToToolsLib"/>-->
478
    <!--<java classname="mitra.oaiharvest.index.IndexEngine" classpath="${build.dir.classes}" classpathref="pathToToolsLib"/>-->
479
    <!--</target>-->
480
 
481
</project>