Subversion Repositories bacoAlunos

Rev

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

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