root/trunk/deployment/build.xml

Revision 1998 (checked in by douglm, 4 years ago)

Allow build of timezones server in bedework

Line 
1 <?xml version="1.0"?>
2
3 <!-- ===================== Deployment build file =======================
4      This directory and the files within it are to be part of the config
5      and deployment process.
6
7      A number of properties of the form org.bedework.install.XXX will be
8      defined, each indicating that a particualr component is to be deployed.
9
10      Targets below will be executed only if that property is defined.
11
12      Adding a new configuration, e.g. a different portal platform, requires
13      the steps:
14         Create a subdirectory in each components subdirectory,
15         e.g.  webadmin/myportal
16
17         Create any other required resource directories and resources and
18         create a build.xml file to configure and package the component(s).
19
20         Update the config program to load, save and display the new
21         properties for that configuration.
22
23         Add an antcall for each component and a corresponding target
24
25      Authors: Mike Douglass   douglm@rpi.edu
26      =================================================================== -->
27
28 <project name="deploy.bedework" default="init">
29   <property name="base.name" value="deployment"/>
30
31   <property name="org.bedework.temp.wars.home"
32             location="${org.bedework.temp.dir}/wars" />
33
34   <property name="org.bedework.temp.shellscr.home"
35             location="${org.bedework.temp.dir}/shellscr" />
36
37   <!-- Recreateed by each app build file. Place extra jars here -->
38   <property name="org.bedework.temp.extrajars.dir"
39             location="${org.bedework.temp.dir}/extrajars" />
40
41   <dirname property="this.build.dir" file="${ant.file}"/>
42   <property name="bedework.deployment.base" location="this.build.dir" />
43
44   <import file="${build.dir}/buildTools/getJar.xml"/>
45
46   <import file="${this.build.dir}/appjars.xml" />
47
48   <import file="${build.dir}/loadDeployConfig.xml"/>
49
50   <target name="init" >
51     <getAppJars />
52
53     <loadDeployConfig />
54
55     <!-- default to debug off -->
56     <property name="app.debug.val" value="0" />
57
58     <!-- set this for the war builds -->
59     <dirname property="app.root.dir" file="${ant.file}"/>
60
61     <!-- Common resources directory -->
62     <property name="org.bedework.common.resources"
63               location="${app.root.dir}/resources" />
64
65     <property name="org.bedework.global.build.common.context.war.name"
66               value="bw-common" />
67
68     <!-- Where we put ear stuff -->
69     <if>
70       <isset property="org.bedework.global.build.ear" />
71       <then>
72         <property name="app.ear.file.name"
73                   value="${org.bedework.global.ear.name}.ear" />
74
75         <if>
76           <equals arg1="${org.bedework.global.ear.zipped}"
77                   arg2="yes" />
78           <then>
79             <property name="org.bedework.ear.dir"
80                       location="${dist.home}/${org.bedework.global.ear.name}" />
81             <property name="org.bedework.ear.file"
82                       location="${dist.home}/${org.bedework.global.ear.name}.ear" />
83           </then>
84           <else>
85             <property name="org.bedework.ear.dir"
86                       location="${dist.home}/${org.bedework.global.ear.name}.ear" />
87           </else>
88         </if>
89
90         <property name="org.bedework.ear.templib"
91                   location="${org.bedework.ear.dir}/lib" />
92         <property name="org.bedework.ear.properties.dir"
93                   location="${org.bedework.temp.dir}/ear-properties" />
94
95         <property name="org.bedework.ear.properties.jar"
96                   location="${org.bedework.ear.dir}/bw-ear-properties.jar"/>
97
98         <delete dir="${org.bedework.ear.dir}" />
99         <mkdir dir="${org.bedework.ear.dir}" />
100
101         <delete dir="${org.bedework.ear.templib}" />
102         <mkdir dir="${org.bedework.ear.templib}" />
103
104         <delete dir="${org.bedework.ear.properties.dir}" />
105         <mkdir dir="${org.bedework.ear.properties.dir}" />
106       </then>
107     </if>
108
109     <property name="org.bedework.global.context.roots"
110               location="${org.bedework.temp.dir}/context-roots.properties" />
111
112     <if>
113       <not>
114         <isset property="org.bedework.global.context.roots" />
115       </not>
116       <then>
117         <tempfile property="org.bedework.global.context.roots"
118                   destdir="${org.bedework.temp.dir}"
119                   prefix="context-roots" suffix=".properties" />
120       </then>
121     </if>
122   </target>
123
124   <target name="deftasks" depends="init">
125     <path id="app.xml.cp">
126       <pathelement location="${org.bedework.deployutil.jar}"/>
127     </path>
128
129     <taskdef name="forEachApp"
130              classname="org.bedework.deployment.ForEachAppTask">
131       <classpath refid="app.xml.cp"/>
132     </taskdef>
133
134     <taskdef name="resolveFile"
135              classname="org.bedework.deployment.ResolveFile">
136       <classpath refid="app.xml.cp"/>
137     </taskdef>
138
139     <taskdef name="makeLangXsl"
140              classname="org.bedework.deployment.MakeLangXsl">
141       <classpath refid="app.xml.cp"/>
142     </taskdef>
143   </target>
144
145   <target name="build.configured" depends="deftasks" >
146     <!-- Clean up before we start -->
147     <delete dir="${org.bedework.temp.wars.home}" />
148
149     <antcall target="build.apps" inheritrefs="true" />
150   </target>
151
152   <!-- =================================================================
153        Targets called by the build.configured target. Each is conditional on a
154        config property and each executes a build file in a subdirectory of
155        this component.
156        ================================================================= -->
157
158   <target name="build.apps" >
159     <property name="org.bedework.deploy.kind" value="webapp" />
160     <antcall target="build.configured.apps" inheritrefs="true" />
161   </target>
162
163   <!-- =================================================================
164                          The deploy target.
165        ================================================================= -->
166
167   <target name="deploy" depends="deftasks" >
168     <!-- Clean up before we start -->
169     <delete dir="${org.bedework.temp.wars.home}" />
170
171     <property name="org.bedework.lang.properties"
172               location="${org.bedework.project.calendarapi}/calFacade/resources/org/bedework/locale/resources" />
173
174     <property name="org.bedework.xsllang.dir"
175               location="${org.bedework.temp.dir}/xsllang" />
176
177     <delete dir="${org.bedework.xsllang.dir}"/>
178     <mkdir dir="${org.bedework.xsllang.dir}"/>
179
180     <makeLangXsl dir="${org.bedework.lang.properties}"
181                  prefix="BwResources"
182                  resdir="${org.bedework.xsllang.dir}"
183                  xsldir="${org.bedework.xsllang.dir}"
184                  name="org.bedework.locales"
185                  check="true" />
186
187     <!-- Build the webapps stuff.-->
188     <antcall target="deploy.apps" inheritrefs="true" >
189       <param name="org.bedework.deploy.kind" value="webapp" />
190     </antcall>
191
192     <!-- Build the shellscr stuff.-->
193     <antcall target="deploy.apps" inheritrefs="true" >
194       <param name="org.bedework.deploy.kind" value="shellscr" />
195     </antcall>
196
197     <!-- copy startup website that sends you to the applications -->
198     <delete dir="${webapp.root.dir}/bedework"/>
199     <mkdir dir="${webapp.root.dir}/bedework"/>
200     <copy todir="${webapp.root.dir}/bedework">
201       <fileset dir="${app.root.dir}/resources/bedework"/>
202     </copy>
203
204     <!-- copy jdbc jar so datasources work -->
205     <if>
206       <available file="${org.bedework.global.ext.lib}/jdbc" type="dir" />
207       <then>
208         <!-- jdbc drivers -->
209         <copy todir="${appserver.lib.dir}" flatten="yes" >
210           <!-- local jdbc drivers -->
211           <fileset dir="${org.bedework.global.ext.lib}/jdbc">
212             <include name="*.jar"/>
213           </fileset>
214         </copy>
215       </then>
216       <else>
217         <!-- Include the quickstart jdbc driver -->
218         <copy todir="${appserver.lib.dir}" file="${org.bedework.appjar.hsqldb}"/>
219       </else>
220     </if>
221
222     <if>
223       <available file="${java.tools.jar}" />
224       <then>
225         <copy todir="${appserver.lib.dir}" file="${java.tools.jar}"/>
226       </then>
227     </if>
228   </target>
229
230   <!-- =================================================================
231        Targets called by the deploy target. Each is conditional on a
232        config property and each executes a build file in a subdirectory of
233        this component.
234        ================================================================= -->
235
236   <!-- The cp.xalan task conditionally copies the xalan.jar file, if
237        necessary -->
238   <target name="cp.xalan" if="xalan.in.tomcat.common.endorsed">
239     <copy file="${org.bedework.default.lib}/xalan.jar"
240           todir="${appserver.endorsed.dir}"/>
241   </target>
242
243   <!-- =================================================================
244        Targets called by the build.configured target. Each is conditional on a
245        config property and each executes a build file in a subdirectory of
246        this component.
247        ================================================================= -->
248   <target name="build.configured.apps">
249     <forEachApp names="${org.bedework.install.app.names}"
250                 prefix="org.bedework.deploy"
251                 appPrefix="org.bedework.app"
252                 projectPrefix="org.bedework.project">
253       <sequential>
254         <antcall target="build.available.configured.app" inheritrefs="true" />
255       </sequential>
256     </forEachApp>
257
258     <!-- ======================= termination tasks ================= -->
259
260     <ant antfile="${org.bedework.deployment.base}/termination/build.xml"
261          inheritrefs="true" target="build.configured" />
262   </target>
263
264   <target name="build.available.configured.app">
265     <propertycopy name="propval.app.type"
266                   from="bedework-options.org.bedework.app.${org.bedework.deploy.name}.appType" />
267     <property name="org.bedework.deploy.type.dir"
268               location="${app.root.dir}/${org.bedework.deploy.name}/${propval.app.type}" />
269     <echo message="*********************************** deploy directory is ${org.bedework.deploy.type.dir}" />
270
271     <if>
272       <available file="${org.bedework.deploy.type.dir}/${org.bedework.deploy.kind}/build.xml"/>
273       <then>
274         <propertyset id="deploy-app-properties">
275           <propertyref prefix="org.bedework.app.${org.bedework.deploy.name}"/>
276           <globmapper from="org.bedework.app.${org.bedework.deploy.name}.*" to="propval.app.*"/>
277         </propertyset>
278
279         <propertycopy name="propval.app.unauthenticated"
280                       from="bedework-options.org.bedework.app.${org.bedework.deploy.name}.guestMode" />
281
282         <ant antfile="${org.bedework.deploy.type.dir}/${org.bedework.deploy.kind}/build.xml"
283              inheritrefs="true" target="build.configured" >
284           <propertyset refid="deploy-app-properties" />
285         </ant>
286       </then>
287     </if>
288   </target>
289
290   <target name="deploy.apps">
291     <forEachApp names="${org.bedework.install.app.names}"
292                 prefix="org.bedework.deploy"
293                 appPrefix="org.bedework.app"
294                 projectPrefix="org.bedework.project">
295       <sequential>
296         <antcall target="deploy.available.app" inheritrefs="true" />
297       </sequential>
298     </forEachApp>
299
300     <!-- ======================= termination tasks ================= -->
301
302     <ant antfile="${org.bedework.deployment.base}/termination/${org.bedework.deploy.kind}/build.xml"
303          inheritrefs="true" target="deploy" />
304   </target>
305
306   <target name="deploy.available.app">
307     <propertycopy name="propval.app.type"
308                   from="bedework-options.org.bedework.app.${org.bedework.deploy.name}.appType" />
309     <property name="org.bedework.deploy.type.dir"
310               location="${app.root.dir}/${propval.app.type}" />
311     <echo message="*********************************** deploy directory is ${org.bedework.deploy.type.dir}" />
312
313     <if>
314       <available file="${org.bedework.deploy.type.dir}/${org.bedework.deploy.kind}/build.xml"/>
315       <then>
316         <propertyset id="deploy-app-properties">
317           <propertyref prefix="org.bedework.app.${org.bedework.deploy.name}"/>
318           <globmapper from="org.bedework.app.${org.bedework.deploy.name}.*" to="propval.app.*"/>
319         </propertyset>
320
321         <propertycopy name="propval.app.unauthenticated"
322                       from="bedework-options.org.bedework.app.${org.bedework.deploy.name}.guestMode" />
323
324         <ant antfile="${org.bedework.deploy.type.dir}/${org.bedework.deploy.kind}/build.xml"
325              inheritrefs="true" target="deploy" >
326           <propertyset refid="deploy-app-properties" />
327         </ant>
328       </then>
329     </if>
330   </target>
331 </project>
332
Note: See TracBrowser for help on using the browser.