Subversion Repositories bacoAlunos

Rev

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