Subversion Repositories bacoAlunos

Rev

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

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