Subversion Repositories bacoAlunos

Rev

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