Subversion Repositories bacoAlunos

Rev

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