Subversion Repositories bacoAlunos

Rev

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