Subversion Repositories bacoAlunos

Rev

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

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