root/trunk/build/buildTools/deftasks.xml

Revision 3561 (checked in by douglm, 1 year ago)

Mostly initial implementation of sharing and notifications as defined by Apple.

Some fixes for default alarms

Line 
1 <!-- Define a number of tasks and macros
2      deftasks:  define someuseful build tasks
3      projectDefs: standard project definitions
4      xMsg: x=info,debug etc. For message output
5
6      Authors: Mike Douglass   douglm rpi.edu
7 -->
8
9 <project name="doDeftasks" basedir="." default=""
10          xmlns:artifact="antlib:org.apache.maven.artifact.ant">
11   <macrodef name="deftasks">
12     <sequential>
13       <property name="build.dir" location="${bedework.home}/build"/>
14
15       <path id="build.cp">
16         <fileset dir="${build.dir}">
17           <include name="*.jar"/>
18         </fileset>
19       </path>
20      
21       <!-- maven ant tasks -->
22       <typedef resource="org/apache/maven/artifact/ant/antlib.xml"
23                uri="antlib:org.apache.maven.artifact.ant"
24                classpathref="build.cp" />
25      
26       <taskdef name="applicationXml"
27                classname="org.bedework.deployment.ApplicationXmlTask">
28         <classpath refid="build.cp"/>
29       </taskdef>
30
31       <!--
32       <taskdef name="artifactId"
33                classname="org.bedework.deployment.ArtifactIdTask">
34         <classpath refid="build.cp"/>
35       </taskdef>
36
37       <taskdef name="dependencies"
38                classname="org.bedework.deployment.DependenciesTask">
39         <classpath refid="build.cp"/>
40       </taskdef>
41
42       <taskdef name="dependency"
43                classname="org.bedework.deployment.DependencyTask">
44         <classpath refid="build.cp"/>
45       </taskdef>-->
46          
47       <taskdef name="forApp"
48                classname="org.bedework.deployment.ForAppTask">
49         <classpath refid="build.cp"/>
50       </taskdef>
51  
52       <taskdef name="forEachApp"
53                classname="org.bedework.deployment.ForEachAppTask">
54         <classpath refid="build.cp"/>
55       </taskdef>
56
57       <!--
58       <taskdef name="groupId"
59                classname="org.bedework.deployment.GroupIdTask">
60         <classpath refid="build.cp"/>
61       </taskdef>-->
62
63       <taskdef name="license"
64                classname="org.bedework.deployment.LicenseTask">
65         <classpath refid="build.cp"/>
66       </taskdef>
67
68       <taskdef name="makeLangXsl"
69                classname="org.bedework.deployment.MakeLangXsl">
70         <classpath refid="build.cp"/>
71       </taskdef>
72
73       <taskdef name="optional"
74                classname="org.bedework.deployment.OptionalTask">
75         <classpath refid="build.cp"/>
76       </taskdef>
77
78       <taskdef name="resolveFile"
79                classname="org.bedework.deployment.ResolveFile">
80         <classpath refid="build.cp"/>
81       </taskdef>
82
83       <!--
84       <taskdef name="scope"
85                classname="org.bedework.deployment.ScopeTask">
86         <classpath refid="build.cp"/>
87       </taskdef>
88
89       <taskdef name="type"
90                classname="org.bedework.deployment.TypeTask">
91         <classpath refid="build.cp"/>
92       </taskdef>
93
94       <taskdef name="version"
95                classname="org.bedework.deployment.VersionTask">
96         <classpath refid="build.cp"/>
97       </taskdef>-->
98     </sequential>
99   </macrodef>
100  
101   <macrodef name="installJar">
102     <attribute name="dir"/>
103     <attribute name="name"/>
104     <sequential>
105       <artifact:pom id="the-pom" file="@{dir}/pom.xml" />
106
107       <if>
108         <isset property="org.bedework.appserver.repository.dir" />
109         <then>
110           <!-- use this as the local repository -->
111          
112           <artifact:install file="@{name}">
113             <localRepository path="${org.bedework.appserver.repository.dir}"/>
114             <pom refid="the-pom"/>
115           </artifact:install>
116         </then>
117         <else>
118           <!-- Use default repository -->
119
120           <artifact:install file="@{name}">
121             <pom refid="the-pom"/>
122           </artifact:install>
123         </else>
124       </if>
125     </sequential>
126   </macrodef>
127  
128   <macrodef name="installPom">
129     <attribute name="dir"/>
130     <sequential>
131       <artifact:pom id="the-pom" file="@{dir}/pom.xml" />
132
133       <if>
134         <isset property="org.bedework.appserver.repository.dir" />
135         <then>
136           <!-- use this as the local repository -->
137          
138           <artifact:install file="@{dir}/pom.xml">
139             <localRepository path="${org.bedework.appserver.repository.dir}"/>
140             <pom refid="the-pom"/>
141           </artifact:install>
142         </then>
143         <else>
144           <!-- Use default repository -->
145
146           <artifact:install file="@{dir}/pom.xml">
147             <pom refid="the-pom"/>
148           </artifact:install>
149         </else>
150       </if>
151     </sequential>
152   </macrodef>
153  
154   <!-- Deploy into the app server -->
155   <macrodef name="deployJar">
156     <attribute name="dir"/>
157     <attribute name="name"/>
158     <sequential>
159       <if>
160         <isset property="org.bedework.appserver.repository.dir" />
161         <then>
162           <artifact:pom id="the-pom" file="@{dir}/pom.xml" />
163
164           <artifact:install file="@{name}">
165             <localRepository path="${org.bedework.appserver.repository.dir}"/>
166             <pom refid="the-pom"/>
167           </artifact:install>
168
169           <!--
170           <artifact:deploy file="@{name}">
171             <localRepository path="${org.bedework.appserver.repository.dir}"/>
172             <pom refid="the-pom"/>
173           </artifact:deploy> -->
174         </then>
175       </if>
176     </sequential>
177   </macrodef>
178  
179   <!-- Resolve dependencies with the given pom file -->
180   <macrodef name="resolveDependencies">
181     <attribute name="pomFile"/>
182     <sequential>
183       <artifact:pom id="the-pom" file="@{pomFile}" />
184
185       <if>
186         <isset property="org.bedework.appserver.repository.dir" />
187         <then>
188           <!-- use this as the local repository -->
189           <artifact:dependencies filesetId="dependency.fileset"
190                                  useScope="compile"
191                                  pomRefId="the-pom">
192             <localRepository path="${org.bedework.appserver.repository.dir}"/>
193           </artifact:dependencies>
194         </then>
195         <else>
196           <!-- Use default repository -->
197           <artifact:dependencies filesetId="dependency.fileset"
198                                  useScope="compile"
199                                  pomRefId="the-pom">
200           </artifact:dependencies>
201         </else>
202       </if>
203      
204       <copy todir="${lib.dir}">
205         <fileset refid="dependency.fileset" />
206         <!-- This mapper strips off all leading directory information -->
207         <mapper type="flatten" />
208       </copy>
209     </sequential>
210   </macrodef>
211
212   <macrodef name="execProject">
213     <attribute name="project"/>
214     <attribute name="target"/>
215     <sequential>
216       <ant antfile="${bedework.home}/../@{project}/build.xml"
217            inheritall="false"
218            target="@{target}" />
219     </sequential>
220   </macrodef>
221    
222   <macrodef name="buildfilters">
223     <sequential>
224       <filterset id="property.filters" >
225         <!--      Global settings            -->
226         <filter token="QUICKSTART_DIR"
227                 value="${quickstart.dir}"/>
228
229         <filter token="APPSERVER-DATA-DIR"
230                 value="${org.bedework.data.dir}"/>
231        
232         <filter token="DATA_DIR"
233                 value="${org.bedework.data.dir}"/>
234
235         <filter token="BW-APP-NAME"
236                 value="${org.bedework.deploy.name}"/>
237
238         <filter token="HIBERNATE-DIALECT"
239                 value="${org.bedework.global.hibernate.dialect}" />
240
241         <filter token="SECOND-LEVEL-CACHING"
242                 value="${org.bedework.global.hibernate.cache.use_second_level_cache}" />
243
244         <filter token="CACHE-PROVIDER"
245                 value="${org.bedework.global.hibernate.cache.provider_class}" />
246
247         <filter token="DIRECTORY-BROWSING-DISALLOWED"
248                 value="${org.bedework.global.directory.browsing.disallowed}" />
249
250         <filter token="SERVLET-CLASS"
251                 value="${org.bedework.global.servlet.class}"/>
252
253         <filter token="PORTLET-SERVLET-CLASS"
254                 value="${org.bedework.global.portlet-servlet.class}"/>
255
256         <filter token="PORTAL-SERVLET-CONTEXT-PROVIDER"
257                 value="${org.bedework.global.portal-servlet.context.provider}"/>
258
259         <filter token="PORTAL-SERVLET-CONTEXT-LISTENER"
260                 value="${org.bedework.global.portal-servlet.context.listener}"/>
261
262         <filter token="PORTLET-CLASS"
263                 value="${org.bedework.global.portlet.class}"/>
264
265         <filter token="IGNORE-CONTENT-TYPE"
266                 value="${org.bedework.global.ignoreContentType}" />
267
268         <filter token="GENURL-TAGLIB-TLD"
269                 value="${org.bedework.global.genurl.taglib.tld}"/>
270
271         <filter token="LIFERAY-COMPANY-ID"
272                 value="${org.bedework.global.liferay.company-id}"/>
273
274         <filter token="JBOSS-CARDDB-DATASOURCE"
275                 value="${org.bedework.global.jboss.carddb.datasource.jndiname}"/>
276
277         <filter token="JBOSS-DB-DATASOURCE"
278                 value="${org.bedework.global.jboss.db.datasource.jndiname}"/>
279
280         <!--      Application settings            -->
281
282         <filter token="APP-DESCRIPTION"
283                 value="${propval.app.description}" />
284
285         <filter token="PORTLET-NAME"
286                 value="${propval.app.portlet.name}"/>
287
288         <filter token="CAL-SUITE"
289                 value="${propval.app.cal.suite}"/>
290
291         <filter token="SECURITY-DOMAIN"
292                 value="${propval.app.security.domain}"/>
293         <filter token="SECURITY-PREFIX"
294                 value="${propval.app.security.prefix}"/>
295         <filter token="TRANSPORT-GUARANTEE"
296                 value="${propval.app.transport.guarantee}"/>
297
298         <filter token="DISPLAY-NAME"
299                 value="${propval.app.display.name}"/>
300         <filter token="CONTEXT-ROOT"
301                 value="${propval.app.context.root}" />
302         <filter token="APP-NAME"
303                 value="${propval.app.name}"/>
304         <filter token="APP-DESCRIPTION"
305                 value="${propval.app.description}"/>
306         <filter token="WAR-NAME"
307                 value="${propval.app.war.name}"/>
308         <filter token="TOMCAT-DOC-BASE"
309                 value="${org.bedework.appserver.dir}${propval.app.deploy.dir}/${propval.app.war.name}"/>
310
311         <filter token="DEFAULT-CONTENTTYPE"
312                 value="${propval.app.default.contenttype}" />
313         <filter token="NOXSLT"
314                 value="${propval.app.noxslt}" />
315
316         <!-- Change this to be an app par -->
317         <filter token="RUN-AS-USER"
318                 value="${org.bedework.syspar.public.user}" />
319
320                 <!-- ???????
321         <filter token="CALFILE-NAME"
322                 value="${propval.app.calfile.name}" /> -->
323
324         <!--      Shell script settings            -->
325
326         <filter token="SCHEMA-DELIMITER"
327                 value="${propval.app.schema.delimiter}" />
328
329         <filter token="KEYFILE-DIR"
330                 value="${org.bedework.global.keyfile.dir}"/>
331
332         <filter token="calSoapWsURI"
333                 value="${org.bedework.calws-soap.uri}" />
334
335         <filter token="synchWsURI"
336                 value="${org.bedework.synch.uri}" />
337
338         <filter token="synchService"
339                 value="${org.bedework.synch.service}" />
340
341         <filter token="synchServiceManager"
342                 value="${org.bedework.synch.service.manager}" />
343
344         <filter token="SYNCH_WSDL_DIR"
345                 value="${org.bedework.synch.wsdl.deploy.dir}" />
346
347         <filter token="synchWsdlURI"
348                 value="${org.bedework.synch.wsdl.uri}" />
349
350         <filter token="tzdataURI"
351                 value="${org.bedework.app.tzsvr.tzdata.url}" />
352
353         <filter token="tzdataRefreshInterval"
354                 value="${org.bedework.app.tzsvr.refetch.interval}" />
355
356         <filter token="tzserverPrimary"
357                 value="${org.bedework.app.tzsvr.primary.server}" />
358
359         <filter token="tzserverPrimaryUrl"
360                 value="${org.bedework.app.tzsvr.primary.url}" />
361        
362         <filter token="APP-VERSION"
363                 value="${org.bedework.global.version}"/>
364        
365         <filter token="orgBedeworkVersion"
366                 value="${org.bedework.version}"/>
367         <filter token="orgBedeworkAccessVersion"
368                 value="${org.bedework.access.version}"/>
369         <filter token="orgBedeworkAnnotationsVersion"
370                 value="${org.bedework.annotations.version}"/>
371         <filter token="orgBedeworkBedenoteVersion"
372                 value="${org.bedework.bedenote.version}"/>
373         <filter token="orgBedeworkBwcaldavVersion"
374                 value="${org.bedework.bwcaldav.version}"/>
375         <filter token="orgBedeworkBwtoolsVersion"
376                 value="${org.bedework.bwtools.version}"/>
377         <filter token="orgBedeworkBwxmlVersion"
378                 value="${org.bedework.bwxml.version}"/>
379         <filter token="orgBedeworkCalcoreVersion"
380                 value="${org.bedework.calcore.version}"/>
381         <filter token="orgBedeworkCaldavVersion"
382                 value="${org.bedework.caldav.version}"/>
383         <filter token="orgBedeworkCaldavtestVersion"
384                 value="${org.bedework.caldavtest.version}"/>
385         <filter token="orgBedeworkCalfacadeVersion"
386                 value="${org.bedework.calfacade.version}"/>
387         <filter token="orgBedeworkCarddavVersion"
388                 value="${org.bedework.carddav.version}"/>
389         <filter token="orgBedeworkDavutilVersion"
390                 value="${org.bedework.davutil.version}"/>
391         <filter token="orgBedeworkDumprestoreVersion"
392                 value="${org.bedework.dumprestore.version}"/>
393         <filter token="orgBedeworkExchggatewayVersion"
394                 value="${org.bedework.exchggateway.version}"/>
395         <filter token="orgBedeworkIcalendarVersion"
396                 value="${org.bedework.icalendar.version}"/>
397         <filter token="orgBedeworkIndexerVersion"
398                 value="${org.bedework.indexer.version}"/>
399         <filter token="orgBedeworkInterfacesVersion"
400                 value="${org.bedework.interfaces.version}"/>
401         <filter token="orgBedeworkMiscVersion"
402                 value="${org.bedework.misc.version}"/>
403         <filter token="orgBedeworkMonitorVersion"
404                 value="${org.bedework.monitor.version}"/>
405         <filter token="orgBedeworkRpiutilVersion"
406                 value="${org.bedework.rpiutil.version}"/>
407         <filter token="orgBedeworkSynchVersion"
408                 value="${org.bedework.synch.version}"/>
409         <filter token="orgBedeworkSyseventsVersion"
410                 value="${org.bedework.sysevents.version}"/>
411         <filter token="orgBedeworkTestsuiteVersion"
412                 value="${org.bedework.testsuite.version}"/>
413         <filter token="orgBedeworkBwtzsvrVersion"
414                 value="${org.bedework.bwtzsvr.version}"/>
415         <filter token="orgBedeworkWebappsVersion"
416                 value="${org.bedework.webapps.version}"/>
417         <filter token="orgBedeworkWebdavVersion"
418                 value="${org.bedework.webdav.version}"/>
419         <filter token="orgBedeworkXmlschemaVersion"
420                 value="${org.bedework.xmlschema.version}"/>
421
422       </filterset>
423     </sequential>
424   </macrodef>
425      
426   <macrodef name="projectDefs">
427     <attribute name="name"/>
428     <attribute name="version"/>
429     <attribute name="deployment-name" default=""/>
430     <attribute name="subproject" default="false"/>
431     <sequential>
432       <property name="project.name" value="@{name}"/>
433      
434       <property name="project.version" value="@{version}"/>
435      
436       <property name="dist.home" location="${project.home}/dist"/>
437       <mkdir dir="${dist.home}" />
438
439       <property name="lib.dir" location="${project.home}/lib"/>
440
441       <property name="buildjar" location="${build.dir}/buildTools/buildjar.xml"/>
442       <property name="buildwar" location="${build.dir}/buildwar.xml"/>
443       <property name="buildsh" location="${build.dir}/buildsh.xml"/>
444
445       <property name="resources.dir" location="${project.home}/resources"/>
446
447       <property name="org.bedework.libcache.dir"
448                 location="${bedework.home}/libcache"/>
449      
450       <property name="org.bedework.temp.dir"
451                 location="${dist.home}/temp" />
452
453       <if>
454         <istrue value="@{subproject}" />
455         <then>
456           <property name="source.home" location="${project.home}/src"/>
457         </then>
458         <else>
459           <delete dir="${org.bedework.temp.dir}" />
460           <mkdir dir="${org.bedework.temp.dir}" />
461          
462           <property name="org.bedework.deployment.name"
463                     value="@{deployment-name}" />
464
465           <deftasks/>
466         </else>
467       </if>
468
469       <import file="${build.dir}/buildTools/getJar.xml"/>
470       <import file="${build.dir}/buildTools/jdoc.xml"/>
471      
472       <!-- Now we have getjar build a classpath for the bundle tasks -->
473       <mkdir dir="${org.bedework.temp.dir}/bundle-build" />
474       <getJar name="commons-io" version="2.0.1"
475               lib="${org.bedework.temp.dir}/bundle-build"/>
476       <getJar name="bcel" version="5.3-SNAPSHOT"
477               lib="${org.bedework.temp.dir}/bundle-build"/>
478       <getJar name="ch.jm.osgi.util.bundle" version="1.0.0"
479               lib="${org.bedework.temp.dir}/bundle-build"/>
480
481       <path id="bundle-util.classpath">
482           <fileset dir="${org.bedework.temp.dir}/bundle-build"/>
483       </path>
484       <taskdef resource="ch/jm/osgi/util/bundle/ant/antlib.xml"
485           classpathref="bundle-util.classpath" onerror="fail"/>
486      
487       <!-- And the cargo tasks -->
488       <mkdir dir="${org.bedework.temp.dir}/cargo" />
489       <getJar name="cargo-ant" version="1.2.0"
490               lib="${org.bedework.temp.dir}/cargo"/>
491       <getJar name="cargo-core-uberjar" version="1.2.0"
492               lib="${org.bedework.temp.dir}/cargo"/>
493       <getJar name="commons-discovery" version="20040218.194635"
494               lib="${org.bedework.temp.dir}/cargo"/>
495       <getJar name="commons-logging"
496               lib="${org.bedework.temp.dir}/cargo"/>
497
498       <path id="cargo.classpath">
499           <fileset dir="${org.bedework.temp.dir}/cargo"/>
500       </path>
501       <taskdef resource="cargo.tasks"
502           classpathref="cargo.classpath" onerror="fail"/>
503     </sequential>
504   </macrodef>
505
506   <!-- ===================================================================
507        Load the deployment configuration from the properties file. We also load
508        the run time options and define some properties based on some of the
509        values found there
510        =================================================================== -->
511   <macrodef name="loadDeployConfig">
512     <!--<attribute name="extra.options" default="${org.bedework.carddav.options}"/> -->
513     <sequential>
514       <taskdef resource="net/sf/antcontrib/antcontrib.properties" />
515    
516       <if>
517         <not>
518           <isset property="bedework-options.org.bedework.global.portal.platform"/>
519         </not>
520         <then>
521         <property environment="env"/>
522  
523         <!-- Load build property definition overrides -->
524         <property file="${org.bedework.build.properties}" />
525  
526         <configMsg message="Loading build properties from ${org.bedework.build.properties}" />
527         <configMsg message="Use config override properties ${org.bedework.config.override.properties}" />
528         <configMsg message="Use config properties ${org.bedework.config.properties}" />
529         <configMsg message="Runtime options from ${org.bedework.config.options}" />
530  
531         <property file="${org.bedework.configuration.versions}" />
532         <property file="${org.bedework.config.override.properties}" />
533         <property file="${org.bedework.config.properties}" />
534  
535         <!-- Load the run time options and define some properties based on some
536              of the values -->
537  
538         <!-- Load the general bedework options -->
539         <xmlproperty file="${org.bedework.config.options}"/>
540  
541         <!-- Load the extra options
542         <xmlproperty file="@{extra.options}"/>-->
543  
544         <if>
545           <isset property="bedework-options.org.bedework.global.portal.platform"/>
546           <then>
547             <property name="org.bedework.global.portal.platform"
548                       value="${bedework-options.org.bedework.global.portal.platform}" />
549  
550             <property name="org.bedework.config.portal.home"
551                       value="${org.bedework.configurations.home}/.portal/${org.bedework.global.portal.platform}" />
552  
553             <property name="org.bedework.config.portal.common.home"
554                       value="${org.bedework.configurations.home}/.portal/common-resources" />
555  
556             <debugMsg message="******************* load from ${org.bedework.config.portal.home}/portal.properties" />
557  
558             <property file="${org.bedework.config.portal.home}/portal.properties" />
559           </then>
560           <else>
561             <debugMsg message="******************* load from ${org.bedework.configurations.home}/.standalone/standalone.properties" />
562  
563             <property file="${org.bedework.configurations.home}/.platform/standalone.properties" />
564           </else>
565         </if>
566  
567         <property name="org.bedework.global.version"
568                   value="${bedework-options.org.bedework.global.version}" />
569  
570         <property name="org.bedework.global.directory.browsing.disallowed"
571                   value="${bedework-options.org.bedework.syspars.directoryBrowsingDisallowed}" />
572         </then>
573       </if>
574     </sequential>
575   </macrodef>
576
577   <!-- =====================================================================
578        Assumes projectDefs was called previously.
579        ===================================================================== -->
580   <macrodef name="projectInit">
581     <sequential>
582       <infoMsg message="* =========== Building ${project.name}" />
583
584       <loadDeployConfig/>
585      
586       <delete dir="${lib.dir}" />
587       <mkdir dir="${lib.dir}" />
588
589       <property name="test.data.dir"
590                 location="${dist.home}/test-data" />
591
592       <property name="test.reports.dir"
593                 location="${dist.home}/test-reports" />
594
595       <property name="org.bedework.empty.dir"
596                 location="${dist.home}/empty-dir" />
597       <mkdir dir="${org.bedework.empty.dir}" />
598
599       <fileset id="empty.fileset" dir="${org.bedework.empty.dir}"
600                excludes="*" />
601
602       <!-- ==================== Compilation Classpath ==================== -->
603
604       <path id="compile.classpath">
605         <fileset dir="${lib.dir}">
606            <include name="*.jar"/>
607         </fileset>
608         <fileset dir="${dist.home}">
609            <include name="*.jar"/>
610         </fileset>
611       </path>
612     </sequential>
613   </macrodef>
614
615   <!-- =====================================================================
616        Assumes projectDefs was called previously.
617        Set things up ready for deployment
618        ===================================================================== -->
619   <macrodef name="deployInit">
620     <attribute name="ear-name"/>
621     <sequential>
622       <!-- Where we put ear stuff -->
623       <if>
624         <isset property="org.bedework.global.build.ear" />
625         <then>
626           <property name="app.ear.file.name"
627                     value="@{ear-name}.ear" />
628
629           <property name="org.bedework.ear.name"
630                     value="@{ear-name}" />
631
632           <property name="org.bedework.ear.templib"
633                     location="${org.bedework.temp.dir}/earlib" />
634
635           <property name="org.bedework.ear.properties.dir"
636                     location="${org.bedework.temp.dir}/ear-properties" />
637
638           <delete dir="${org.bedework.ear.templib}" />
639           <mkdir dir="${org.bedework.ear.templib}" />
640
641           <delete dir="${org.bedework.ear.properties.dir}" />
642           <mkdir dir="${org.bedework.ear.properties.dir}" />
643         </then>
644       </if>
645      
646       <property name="org.bedework.global.build.common.context.war.name"
647                 value="bw-common" />
648      
649       <property name="org.bedework.temp.wars.home"
650                 location="${org.bedework.temp.dir}/wars" />
651
652       <property name="org.bedework.temp.shellscr.home"
653                 location="${org.bedework.temp.dir}/shellscr" />
654
655       <!-- Recreated by each app build file. Place extra jars here -->
656       <property name="org.bedework.temp.extrajars.dir"
657                 location="${org.bedework.temp.dir}/extrajars" />
658
659       <!-- Preserve extra jars for ear builds -->
660       <property name="org.bedework.temp.ear.extrajars.dir"
661                 location="${org.bedework.temp.dir}/earextrajars" />
662      
663       <property name="org.bedework.global.context.roots"
664                 location="${org.bedework.temp.dir}/context-roots.properties" />
665
666       <tempfile property="org.bedework.global.context.roots"
667                 destdir="${org.bedework.temp.dir}"
668                 prefix="context-roots" suffix=".properties" />
669      
670       <!-- Clean up before we start -->
671       <delete dir="${org.bedework.temp.wars.home}" />
672       <mkdir dir="${org.bedework.temp.wars.home}" />
673
674       <delete dir="${org.bedework.temp.ear.extrajars.dir}" />
675       <mkdir dir="${org.bedework.temp.ear.extrajars.dir}" />
676
677       <delete dir="${org.bedework.temp.extrajars.dir}" />
678       <mkdir dir="${org.bedework.temp.extrajars.dir}" />
679     </sequential>
680   </macrodef>
681  
682   <macrodef name="deployTerm">
683     <sequential>
684       <if>
685         <equals arg1="${propval.app.package.type}" arg2="service" />
686       <then>
687         <ant antfile="${build.dir}/../deployment/termination/service/build.xml"
688              target="deploy" inheritRefs="true" />
689       </then>
690       <else>
691         <ant antfile="${build.dir}/../deployment/termination/webapp/build.xml"
692              target="deploy" inheritRefs="true" />
693       </else>
694      </if>
695      
696       <!-- Platform specific -->
697       <ant antfile="${build.dir}/../deployment/termination/build.xml"
698            target="deploy" inheritRefs="true" />
699     </sequential>
700   </macrodef>
701
702   <!-- =================================================================
703        Standard targets for build files. Two targets (at least) need to be
704        overridden by the importing task
705        
706        init - carry out project specific initialisation
707        build-source - builds the source to creat ejars.
708        =================================================================-->
709  
710   <!-- Override this -->
711   <target name="init" />
712  
713   <!-- Override this if needed -->
714   <target name="build-init" depends="init">
715     <resolveDependencies pomFile="pom.xml" />
716   </target>
717
718   <!-- Override this -->
719   <target name="build-source" />
720  
721   <!-- Override this -->
722   <target name="deploy-init" depends="init">
723     <deployInit ear-name="" />
724   </target>
725  
726   <!-- This should be called from the deploy target for bundles. -->
727   <macrodef name="deployBundle">
728     <attribute name="bundle"/>
729     <sequential>
730       <!--
731       <if>
732         <isset property="org.bedework.global.deploy.bundles" />
733         <then>
734           <cargo containerId="${org.bedework.global.deploy.platform}"
735                  home="${org.bedework.appserver.dir}"
736                  action="deploy">
737             <configuration>
738               <deployable type="bundle" file="@{bundle}"/>
739             </configuration>
740           </cargo>
741         </then>
742       </if>
743       -->
744     </sequential>
745   </macrodef>
746  
747   <!-- Override this -->
748   <target name="deploy" depends="deploy-init,build" />
749
750   <!-- =================================================================
751        Clean out all library files from other projects and all generated
752        files in preparation for a complete rebuild.
753
754        Needed because switching versions leaves a load of old bedework
755        generated stuff in the libraries.
756        ================================================================= -->
757   <target name="deep-clean" depends="clean">
758   </target>
759
760   <!-- =================================================================
761        Clean all generated files
762        ================================================================= -->
763   <target name="clean">
764     <delete dir="${dist.home}" />
765     <delete dir="${lib.dir}" />
766   </target>
767
768   <target name="quickstart-clean" depends="clean" >
769   </target>
770
771   <!-- =================================================================
772        Clean and deploy in one go
773        ================================================================= -->
774   <target name="clean.deploy" depends="clean,deploy" />
775
776   <!-- =================================================================
777        Clean up after a build.
778        ================================================================= -->
779   <target name="cleanup">
780     <!--
781     <delete dir="${org.bedework.empty.dir}" />
782     -->
783   </target>
784
785   <!-- ========================== Base build Targets ===================
786        Here we have one target building the classes and interfaces that make
787        up the access control suite.
788        ================================================================= -->
789
790   <target name="clean-build" depends="clean,build"
791           description="Clean and compile classes"/>
792
793   <target name="clean-build-all" depends="clean,build-all"
794           description="Clean and compile classes"/>
795
796   <target name="build" depends="init,build-source,cleanup"
797           description="Compile classes"/>
798
799   <target name="build-all" depends="build"
800           description="Compile classes"/>
801  
802   <target name="javadoc" depends="build-init"
803           description="Create Javadoc API documentation">
804     <jdoc/>
805   </target>
806  
807   <macrodef name="build-jar-stats">
808     <sequential>
809       <if>
810         <not>
811           <isset property="org.bedework.jars.built" />
812         </not>
813         <then>
814           <echo message="No jars were checked or built" />
815         </then>
816         <else>
817           <echo message="${org.bedework.jars.checked} jars checked: ${org.bedework.jars.built} built" />
818         </else>
819       </if>
820     </sequential>
821   </macrodef>
822  
823   <!-- This macro builds a single jar file. It just sets defaults for the java
824        compiler then invokes it.
825
826        This is the only place we compile files.
827
828        On entry we require:
829          jar.file              Fully specified name of destination jar file.
830          base.java.sources     Defines the java source files
831          base.class.patternset Defines the java class files
832          base.resource.files   Defines extra resources to go in the jar
833
834        We will copy all files defined by base.java.patternset to a temporary
835        location and compile out of that into a temporary classes location.
836
837        We do that to avoid a problematic feature of the java compilers, the
838        tendency to recompile any referenced sources found on the source path.
839
840        So, if we have all our sources under the directory "src" and compile a
841        single package in that tree, all referenced classes will be compiled,
842        even if they exist in a jar file on the class path.
843
844        The other side-effect is that we might compile and include classes we
845        didn't realise we were compiling.
846
847        The downside is that we need to be very specific about the classes we
848        compile for a package and we might need to put classes in
849        base.java.sources which we don't want in the final jar file.
850
851        On exit we will have created classes in the directory
852           ${jar.temp.classes}
853        and a jar file
854           ${build.jar.file}
855
856        Authors: Mike Douglass   douglm rpi.edu
857   -->
858   <macrodef name="build-jar">
859     <attribute name="module-base"/>
860     <attribute name="jar-file"/>
861     <attribute name="jar-dependency" default=""/>
862     <attribute name="generated-sources" default=""/>
863     <attribute name="property-resources" default=""/>
864     <attribute name="bundle-xml" default=""/> <!-- bundle -->
865     <attribute name="jar-name" default=""/> <!-- bundle -->
866     <attribute name="jar-version" default=""/> <!-- bundle -->
867    
868     <sequential>
869       <if>
870         <not>
871           <isset property="org.bedework.jars.built" />
872         </not>
873         <then>
874           <var name="org.bedework.jars.built" value="0" />
875           <var name="org.bedework.jars.checked" value="0" />
876         </then>
877       </if>
878      
879       <math result="org.bedework.jars.checked"
880             operand1="${org.bedework.jars.checked}"
881             operation="+" operand2="1" datatype="int"/>
882
883       <if>
884         <equals arg1="@{generated-sources}" arg2="" />
885         <then>
886           <fileset id="buildjar.generated.java.sources" refid="empty.fileset" />
887         </then>
888         <else>
889           <fileset id="buildjar.generated.java.sources" dir="@{generated-sources}" >
890             <include name="org/bedework/**/*.java"/>
891           </fileset>
892         </else>
893       </if>
894
895       <if>
896         <equals arg1="@{property-resources}" arg2="" />
897         <then>
898           <fileset id="buildjar.resource.files" refid="empty.fileset" />
899         </then>
900         <else>
901           <fileset id="buildjar.resource.files" dir="@{property-resources}" >
902             <include name="**/*.properties"/>
903           </fileset>
904         </else>
905       </if>
906
907       <fileset id="buildjar.java.sources" dir="@{module-base}/src" >
908         <include name="**/*.java"/>
909       </fileset>
910
911       <patternset id="base.class.patternset">
912         <include name="**/*.class"/>
913       </patternset>
914
915       <if>
916         <not>
917           <equals arg1="@{jar-dependency}" arg2="" />
918         </not>
919         <then>
920           <var name="build.jar.dependency" value="@{jar-dependency}" />
921         </then>
922       </if>
923      
924       <!--  =================== Compilation Control Options ===============
925         These properties control option settings on the Javac compiler when it
926         is invoked using the <javac> task.
927
928         compile.debug        Should compilation include the debug option?
929         compile.deprecation  Should compilation include the deprecation option?
930         compile.optimize     Should compilation include the optimize option?
931
932         Below are the defaults. They may already be set in the build properties.
933       -->
934
935       <property name="compile.debug" value="true"/>
936       <property name="compile.deprecation" value="false"/>
937       <property name="compile.optimize" value="true"/>
938       <property name="compile.verbose" value="false"/>
939       <property name="compile.listfiles" value="false"/>
940
941       <var name="jar.temp.sources"
942            value="${dist.home}/source" />
943       <var name="jar.temp.classes"
944            value="${dist.home}/classes" />
945
946       <!-- ==============================================================
947             See if the jar is up to date. We recompile if any of the
948             source files or metainf files are newer. We also recompile if
949             any jars on the package classpath are newer.
950            ============================================================== -->
951
952       <noisyMsg message="build.jar.file=@{jar-file}" />
953      
954       <if>
955         <isset property="build.jar.dependency"/>
956         <then>
957           <dirname file="${build.jar.dependency}"
958                    property="dependency.dirname" />
959           <basename file="${build.jar.dependency}"
960                     property="dependency.basename" />
961           <fileset dir="${dependency.dirname}" id="dependency.fileset">
962             <include name="${dependency.basename}"/>
963           </fileset>
964         </then>
965         <else>
966           <fileset refid="empty.fileset" id="dependency.fileset"/>
967         </else>
968       </if>     
969
970       <!-- See if the libraries are later than any classes -->
971
972       <var name="org.bedework.libraries.changed" value="false" />
973      
974       <outofdate outputsources="org.bedework,changed.sources">
975         <sourcefiles>
976           <fileset dir="${lib.dir}">
977              <include name="*.jar"/>
978           </fileset>
979           <!-- This makes almost everything rebuild all the time
980                because it has the generated jars for the current package
981           <path refid="compile.classpath"/>
982           -->
983         </sourcefiles>
984         <targetfiles>
985           <pathelement path="@{jar-file}"/>
986         </targetfiles>
987         <sequential>
988           <var name="org.bedework.libraries.changed" value="true" />
989           <noisyMsg message="**** @{jar-file} needs rebuilding - libraries changed" />
990         </sequential>
991       </outofdate>
992      
993       <noisyMsg message="**** org.bedework,changed.sources = ${org.bedework,changed.sources}" />
994       <noisyMsg message="**** org.bedework.libraries.changed = ${org.bedework.libraries.changed}" />
995
996       <if>
997         <and>
998           <not>
999             <equals arg1="${org.bedework.libraries.changed}" arg2="true" />
1000           </not>
1001           <uptodate targetfile="@{jar-file}" >
1002             <srcfiles refid="buildjar.java.sources" />
1003             <srcfiles refid="buildjar.generated.java.sources" />
1004             <srcfiles refid="buildjar.resource.files"/>
1005             <srcfiles refid="dependency.fileset"/>
1006           </uptodate>
1007         </and>
1008         <then>
1009           <noisyMsg message="**** @{jar-file} is up to date" />
1010         </then>
1011         <else>
1012           <noisyMsg message="**** @{jar-file} needs rebuilding" />
1013
1014           <math result="org.bedework.jars.built"
1015                 operand1="${org.bedework.jars.built}"
1016                 operation="+" operand2="1" datatype="int"/>
1017
1018           <!-- Delete jar file -->
1019           <delete file="@{jar-file}"/>
1020
1021           <dirname property="build.jar.dir" file="@{jar-file}"/>
1022
1023           <mkdir dir="${build.jar.dir}" />
1024
1025           <!-- ==========================================================
1026                             Build the classes
1027                ========================================================== -->
1028
1029           <!-- First copy the sources we are going to compile into a temp
1030                directory. -->
1031           <delete dir="${jar.temp.sources}" />
1032           <mkdir dir="${jar.temp.sources}" />
1033          
1034           <copy toDir="${jar.temp.sources}">
1035             <fileset refid="buildjar.java.sources" />
1036             <fileset refid="buildjar.generated.java.sources" />
1037             <fileset refid="buildjar.resource.files"/>
1038           </copy>
1039
1040           <mkdir dir="${jar.temp.classes}"/>
1041          
1042           <debugMsg message="About to build jar @{jar-file}"/>
1043           <debugCpid idpar="compile.classpath" />
1044
1045           <javac srcdir="${jar.temp.sources}"
1046                  destdir="${jar.temp.classes}"
1047                  debug="${compile.debug}"
1048                  verbose="${compile.verbose}"
1049                  listfiles="${compile.listfiles}"
1050                  deprecation="${compile.deprecation}"
1051                  optimize="${compile.optimize}">
1052             <classpath refid="compile.classpath"/>
1053             <include name="**/*.java"/>
1054             <compilerarg value="-nowarn" compiler="jikes" />
1055           </javac>
1056
1057           <!-- ==========================================================
1058                             Build jar file
1059                ========================================================== -->
1060
1061           <if>
1062             <equals arg1="@{bundle-xml}" arg2="" />
1063             <then>
1064               <!-- Not a bundle -->
1065               <jar jarfile="@{jar-file}">
1066                 <fileset dir="${jar.temp.classes}">
1067                   <patternset refid="base.class.patternset"/>
1068                 </fileset>
1069                 <fileset refid="buildjar.resource.files"/>
1070               </jar>
1071             </then>
1072             <else>
1073               <!-- Build manifest from bundle descriptor and add additional entries -->
1074               <bundle-manifest file="${jar.temp.classes}/META-INF/MANIFEST.MF"
1075                     classes="${jar.temp.classes}"
1076                     descriptor="@{bundle-xml}">
1077                 <attribute name="Bundle-Version" value="@{jar-version}"/>
1078                 <attribute name="Bundle-Vendor" value="Bedework"/>
1079                 <attribute name="Bundle-DocURL" value="bedework.org"/>
1080                 <attribute name="Implementation-Title"
1081                     value="@{jar-name} (${project.name})"/>
1082                 <attribute name="Implementation-Version" value="@{jar-version}"/>
1083                 <attribute name="Implementation-Vendor"
1084                     value="bedework"/>
1085                 <attribute name="Implementation-URL"
1086                     value="bedework.org"/>
1087               </bundle-manifest>
1088              
1089               <!-- Now build the actual bundle. -->
1090               <jar jarfile="@{jar-file}"
1091                     filesetmanifest="merge" manifestencoding="UTF-8">
1092                 <fileset dir="${jar.temp.classes}"/>
1093                 <!--
1094                 <metainf dir="${project.home}" includes="LICENSE.txt,NOTICE.txt"/>
1095                 -->
1096                 <metainf dir="${project.home}" includes="LICENSE.txt"/>
1097               </jar>
1098             </else>
1099           </if>
1100
1101           <!-- ==========================================================
1102                             Clean up
1103                ========================================================== -->
1104
1105           <delete dir="${jar.temp.sources}" />
1106           <delete dir="${jar.temp.classes}"/>
1107         </else>
1108       </if>
1109     </sequential>
1110   </macrodef>
1111  
1112   <macrodef name="infoMsg">
1113     <attribute name="message"/>
1114     <sequential>
1115       <if>
1116         <not>
1117           <istrue value="${org.bedework.build.silent}" />
1118         </not>
1119         <then>
1120           <echo message="@{message}" />
1121         </then>
1122       </if>
1123     </sequential>
1124   </macrodef>
1125  
1126   <macrodef name="noisyMsg">
1127     <attribute name="message"/>
1128     <sequential>
1129       <if>
1130         <istrue value="${org.bedework.build.noisy}" />
1131         <then>
1132           <echo message="@{message}" />
1133         </then>
1134       </if>
1135     </sequential>
1136   </macrodef>
1137  
1138   <macrodef name="configMsg">
1139     <attribute name="message"/>
1140     <sequential>
1141       <if>
1142         <istrue value="${org.bedework.build.showconfigs}" />
1143         <then>
1144           <echo message="@{message}" />
1145         </then>
1146       </if>
1147     </sequential>
1148   </macrodef>
1149  
1150   <macrodef name="debugMsg">
1151     <attribute name="message"/>
1152     <sequential>
1153       <if>
1154         <istrue value="${org.bedework.build.debug}" />
1155         <then>
1156           <echo message="@{message}" />
1157         </then>
1158       </if>
1159     </sequential>
1160   </macrodef>
1161  
1162   <macrodef name="debugCpid">
1163     <attribute name="idpar"/>
1164     <sequential>
1165       <if>
1166         <istrue value="${org.bedework.build.debug}" />
1167         <then>
1168           <property name="cp" refid="@{idpar}" />
1169           <echo message="***************cp: ${cp}"/>
1170         </then>
1171       </if>
1172     </sequential>
1173   </macrodef>
1174 </project>
Note: See TracBrowser for help on using the browser.