blob: ce4583895cb742cbf804431b7dbde799d98edaec [file] [log] [blame]
david_williamsb1149ef2006-05-25 22:06:10 +00001<?xml version="1.0" encoding="UTF-8"?>
david_williamsd957bc32006-11-20 00:07:15 +00002<project
david_williams42f9b242006-11-27 18:45:14 +00003 name="buildutilities"
david_williamsd957bc32006-11-20 00:07:15 +00004 default="nodefault"
5 basedir=".">
david_williams072c6f72006-05-19 10:50:58 +00006
david_williams8819a492009-03-10 03:31:33 +00007 <!-- = = = standard properties pattern = = = -->
8 <!--
9 Note to be cross-platform, "environment variables" are only
10 appropriate for some variables, e.g. ones we set, since
11 properties are case sensitive, even if the environment variables
12 on your operating system are not, e.g. it will be ${env.Path}
13 not ${env.PATH} on Windows
david_williams403beae2007-12-09 02:10:40 +000014 -->
david_williams8819a492009-03-10 03:31:33 +000015 <property
16 environment="env"/>
17 <!--
18 Let users override standard properties, if desired. If
19 directory, file, or some properties do not exist, then standard
20 properties will be used.
21 -->
22 <property
23 file="${env.LOCAL_BUILD_PROPERTIES_DIR}/${ant.project.name}.properties"/>
david_williams67d27702006-11-20 16:36:52 +000024
david_williams8819a492009-03-10 03:31:33 +000025 <!-- = = = end standard properties pattern = = = -->
david_williams42f9b242006-11-27 18:45:14 +000026
27
david_williams8819a492009-03-10 03:31:33 +000028 <!-- if not otherwise set, use these default properties -->
29 <property
david_williamsd957bc32006-11-20 00:07:15 +000030 name="debugOptimization"
david_williamsad3f6a02009-05-03 22:45:55 +000031 value="false"/>
david_williams8819a492009-03-10 03:31:33 +000032 <!--
david_williams65f16aa2009-11-20 17:14:56 +000033 We should not always normalize ("-repack") jars by default,
34 since in production we sign the jars (which does the -repack for
35 us) and not in production we don't really care so why spend the
36 extra time. For jars which are not supposed to be normalized,
37 such as pre-existing jars, they need to be added to the
38 pack.properties file (see the updatePackProperties task). Note:
39 signing does the -repack when we sign. This can be over-ridden
40 by the caller setting normalize to true, but there are know
41 known cases where we want to normalize (and eventually pack) the
42 jar files but not sign them.
david_williamsc11999c2008-02-19 02:02:32 +000043 -->
david_williams8819a492009-03-10 03:31:33 +000044 <property
david_williams42f9b242006-11-27 18:45:14 +000045 name="normalizeJarFiles"
david_williamsad3f6a02009-05-03 22:45:55 +000046 value="false"/>
david_williams8819a492009-03-10 03:31:33 +000047 <!--
48 we'll currently pack jar files, just as part of "debugging" to
49 help sanity check all is working as expected. Eventually we may
50 want to provide some service there jar files in the bundles
51 directory are packed ... but, there's no known use-case for this
52 so far
david_williamsc11999c2008-02-19 02:02:32 +000053 -->
david_williams8819a492009-03-10 03:31:33 +000054 <property
david_williams42f9b242006-11-27 18:45:14 +000055 name="packJarFiles"
david_williamsad3f6a02009-05-03 22:45:55 +000056 value="false"/>
david_williams8819a492009-03-10 03:31:33 +000057 <!--
58 Let tmp site be global. Note: we use this odd
59 "tmpsite-archiveName-temp" to make sure unique directories,
60 since in some cases these directories can not be deleted from
61 ant, see https://bugs.eclipse.org/bugs/show_bug.cgi?id=142926,
62 and since directory names ending in .zip are misinterpreted by
63 jarProcessor, see
64 https://bugs.eclipse.org/bugs/show_bug.cgi?id=143385 But, its
65 handy to do as unique directories anyway, since if a larger
66 process calls this mulitiple times, on different zips, and if
67 debugging is turnned on, then all the tmpsite directories are
68 left on disk for post-build inspection.
david_williamsb8ba26a2006-11-28 08:31:31 +000069 -->
david_williams8819a492009-03-10 03:31:33 +000070 <property
david_williams403beae2007-12-09 02:10:40 +000071 name="tmpsite"
david_williams8819a492009-03-10 03:31:33 +000072 value="${buildDirectory}/tmpsite-${archiveName}-temp"/>
73 <!--
74 ==================================================================================
75 Primary Task: unpackUpdateJarsAndCreateZippedPackages This task
76 takes a zip file of update jars, which is created by PDE build
77 process, and "converts" it to a traditional zip file, processing
78 the jars with pack200 for better compression on update sites.
79 ==================================================================================
david_williamsb0f0e6c2008-02-10 06:22:40 +000080 -->
david_williams8819a492009-03-10 03:31:33 +000081 <target
david_williamsd957bc32006-11-20 00:07:15 +000082 name="unpackUpdateJarsAndCreateZippedPackages"
83 depends="init">
david_williams8819a492009-03-10 03:31:33 +000084 <!--
85 ==================================================================================
86 1. make "backup" copy of original zip, if debugging, since
87 might be needed for comparison
88 ==================================================================================
david_williamsb0f0e6c2008-02-10 06:22:40 +000089 -->
david_williams8819a492009-03-10 03:31:33 +000090 <antcall
91 target="makeBackupCopyForDebugging"/>
92 <!--
93 add pack.properties file that specifies effort level, and
david_williams65f16aa2009-11-20 17:14:56 +000094 files not to sign We don't have to do this if not
95 normalizing and not signing
david_williamsb0f0e6c2008-02-10 06:22:40 +000096 -->
david_williams65f16aa2009-11-20 17:14:56 +000097 <antcall
98 target="updatePackPropertiesFile"/>
david_williams8819a492009-03-10 03:31:33 +000099 <!--
100 ==================================================================================
101 2. normalize jars here, from a zip file of update jars. The
102 normalized jars are put in zip file of same name, in a
103 directory named normalized
104 ==================================================================================
105 -->
106 <echo
david_williams15815ba2009-03-17 06:02:20 +0000107 level="info"
david_williams8819a492009-03-10 03:31:33 +0000108 message="normalize jars if desired ..."/>
109 <antcall
110 target="normalizeJarFiles"/>
111 <echo
david_williams15815ba2009-03-17 06:02:20 +0000112 level="info"
david_williams8819a492009-03-10 03:31:33 +0000113 message="normalized jars: ${normalizeJarFiles}"/>
114 <!--
115 ==================================================================================
116 3. sign the jars in archive file, if desired
117 ==================================================================================
david_williamsb0f0e6c2008-02-10 06:22:40 +0000118 -->
david_williams8819a492009-03-10 03:31:33 +0000119 <ant
120 antfile="${wtp.builder.home}/scripts/build/signjars.xml"/>
121 <!--
122 ==================================================================================
123 4. unzip the normalized jars in the zip file produced in
124 step 1., to the directory {tmpsite} for further processing.
125 plugins and features end up in {tmpsite}/eclipse
126 ==================================================================================
david_williamsb0f0e6c2008-02-10 06:22:40 +0000127 -->
david_williams8819a492009-03-10 03:31:33 +0000128 <echo
david_williams15815ba2009-03-17 06:02:20 +0000129 level="info"
david_williams8819a492009-03-10 03:31:33 +0000130 message="unzip normalized update jars to a holding place"/>
131 <echo
david_williams403beae2007-12-09 02:10:40 +0000132 level="info"
david_williams65f16aa2009-11-20 17:14:56 +0000133 message="tmpsite: ${tmpsite}"/>
134 <echo
david_williams15815ba2009-03-17 06:02:20 +0000135 level="info"
david_williams8819a492009-03-10 03:31:33 +0000136 message="archiveDir: ${archiveDir}"/>
david_williams65f16aa2009-11-20 17:14:56 +0000137 <echo
david_williams15815ba2009-03-17 06:02:20 +0000138 level="info"
david_williams65f16aa2009-11-20 17:14:56 +0000139 message="archiveName: ${archiveName}"/>
david_williams8819a492009-03-10 03:31:33 +0000140 <unzip
david_williams403beae2007-12-09 02:10:40 +0000141 dest="${tmpsite}"
david_williams8819a492009-03-10 03:31:33 +0000142 src="${archiveDir}/${archiveName}"/>
143 <!--
144 ==================================================================================
david_williams15815ba2009-03-17 06:02:20 +0000145 5. copy all update jars to a common update site directory,
146 if desired. Note: overwite is false to avoid "touching"
147 files already produced and processed by previous steps in a
david_williams0fadc4e2010-03-01 04:45:19 +0000148 larger build process. This means the repository *must* be
david_williams8819a492009-03-10 03:31:33 +0000149 completely clean before the larger process starts.
150 ==================================================================================
david_williamsb0f0e6c2008-02-10 06:22:40 +0000151 -->
david_williams8819a492009-03-10 03:31:33 +0000152 <antcall
153 target="makeCopyForUpdate"/>
154 <!--
155 ==================================================================================
156 6. for modularity, pack200 is done here, optionally. The
157 resulting gz files are produced in update site directory.
158 This is optional since processing is expensive to do for
159 every build. Only need when ready to declare an update site,
160 and, for exmaple, no need to do for "local" or HEAD builds
161 since developers wouldn't normally need it for a quick check
162 of a build.
163 ==================================================================================
david_williamsb0f0e6c2008-02-10 06:22:40 +0000164 -->
david_williams8819a492009-03-10 03:31:33 +0000165 <echo
david_williams15815ba2009-03-17 06:02:20 +0000166 level="info"
david_williams8819a492009-03-10 03:31:33 +0000167 message="create pack files if desired ..."/>
168 <antcall
169 target="createPackFilesIfDesired"/>
170 <echo
david_williams15815ba2009-03-17 06:02:20 +0000171 level="info"
david_williams8819a492009-03-10 03:31:33 +0000172 message="created pack files: ${packJarFiles}"/>
david_williamsb67b0c22009-03-17 19:25:29 +0000173 <!--
174 7. create a site.xml file, by merging a template site.xml
175 with the feature versions produced by PDE build
176 -->
177 <antcall
178 target="createSiteFiles"/>
david_williams65f16aa2009-11-20 17:14:56 +0000179
david_williamsb67b0c22009-03-17 19:25:29 +0000180 <!-- 8. now generate P2 meta data for that P2 repo -->
david_williams9ff5ae52009-03-10 03:58:36 +0000181 <echo
david_williams15815ba2009-03-17 06:02:20 +0000182 level="info"
david_williams9ff5ae52009-03-10 03:58:36 +0000183 message="Generating p2 metadata for P2 repo."/>
184 <antcall
david_williams65f16aa2009-11-20 17:14:56 +0000185 target="generateP2Metadata"/>
david_williams8819a492009-03-10 03:31:33 +0000186 <!--
187 ==================================================================================
david_williamsb67b0c22009-03-17 19:25:29 +0000188 9. now create traditional zip file of unpacked jars. This
david_williams8819a492009-03-10 03:31:33 +0000189 type of "unpack" is not related to pack200, but instead
190 means to unpack those jars that are supposed to be unpacked
191 based on feature defintion, if the plugin's unpack attribute
192 is set to true in the feature
193 ==================================================================================
david_williamsb0f0e6c2008-02-10 06:22:40 +0000194 -->
david_williams8819a492009-03-10 03:31:33 +0000195 <!-- use releng task of unpackUpdateJars -->
196 <unpackUpdateJars
david_williamsd957bc32006-11-20 00:07:15 +0000197 site="${tmpsite}/eclipse"
david_williams8819a492009-03-10 03:31:33 +0000198 output="${tmpsite}/unpacked/eclipse"/>
199 <!--
200 add copy of legal doc's here, product.ini, etc., before
201 re-zipping
202 -->
203 <copy
david_williamsd957bc32006-11-20 00:07:15 +0000204 todir="${tmpsite}/unpacked/eclipse"
205 overwrite="false">
david_williams8819a492009-03-10 03:31:33 +0000206 <fileset
david_williams99e68f22009-02-10 00:51:12 +0000207 dir="${wtp.builder.home}/rootfiles">
david_williams8819a492009-03-10 03:31:33 +0000208 </fileset>
209 </copy>
210 <!--
211 delete the zip file of update jars we started with, which we
212 are about to re-create as traditional zip file
david_williams35915692007-10-05 06:18:08 +0000213 -->
david_williams8819a492009-03-10 03:31:33 +0000214 <delete
215 file="${buildDirectory}/${buildLabel}/${archiveName}"/>
216 <mkdir
217 dir="${buildDirectory}/${buildLabel}"/>
218 <!--
219 recreate zip file now, same name, traditional content, which
220 is mix of folders and jars
221 -->
david_williams8f336ec2010-04-03 05:06:07 +0000222 <!--
223 explicitly exclude any features with assembly anywhere in
224 directory names, as these are just for controlling what's
225 built, and are not intended for delivery
226 -->
david_williams8819a492009-03-10 03:31:33 +0000227 <zip
david_williamsd957bc32006-11-20 00:07:15 +0000228 destfile="${buildDirectory}/${buildLabel}/${archiveName}"
229 basedir="${tmpsite}/unpacked"
230 update="false"
david_williams8f336ec2010-04-03 05:06:07 +0000231 duplicate="preserve"
232 excludes="**/*assembly*/**"/>
david_williams8819a492009-03-10 03:31:33 +0000233 <!-- always produce checksum files for any zips produced -->
234 <antcall
235 target="createChecksums"/>
236 <!--
237 ==================================================================================
david_williamsb67b0c22009-03-17 19:25:29 +0000238 10. can now remove tmpsite as no longer needed, unless
david_williams8819a492009-03-10 03:31:33 +0000239 debugging
240 ==================================================================================
david_williamsb0f0e6c2008-02-10 06:22:40 +0000241 -->
david_williams8819a492009-03-10 03:31:33 +0000242 <antcall
243 target="deleteTmpSite"/>
244 </target>
245 <!--
246 ==============================================================================================
247 Utility and Helper tasks
248 ==============================================================================================
david_williamsb0f0e6c2008-02-10 06:22:40 +0000249 -->
david_williams8819a492009-03-10 03:31:33 +0000250 <target
251 name="init"
david_williamsfb048be2008-02-23 07:15:21 +0000252 depends="check.sign">
david_williams8819a492009-03-10 03:31:33 +0000253 <condition
david_williamsd957bc32006-11-20 00:07:15 +0000254 property="verboseIfDebug"
255 value="-verbose"
256 else="">
david_williams8819a492009-03-10 03:31:33 +0000257 <istrue
258 value="${debugOptimization}"/>
259 </condition>
260 <condition
david_williamsd957bc32006-11-20 00:07:15 +0000261 property="logIfDebug"
262 value="-debug -consolelog"
263 else="">
david_williams8819a492009-03-10 03:31:33 +0000264 <istrue
265 value="${debugOptimization}"/>
266 </condition>
267 <condition
david_williamsd957bc32006-11-20 00:07:15 +0000268 property="keepIfDebug"
269 value="true">
david_williams8819a492009-03-10 03:31:33 +0000270 <istrue
271 value="${debugOptimization}"/>
272 </condition>
273 <!-- don't normalize if signing, since then it's done by signing -->
274 <condition
david_williams42f9b242006-11-27 18:45:14 +0000275 property="doNormalize"
276 value="true">
david_williams8819a492009-03-10 03:31:33 +0000277 <and>
278 <istrue
279 value="${normalizeJarFiles}"/>
280 <not>
281 <equals
282 arg1="${doSign}"
283 arg2="true"
284 trim="true"
285 casesensitive="false"/>
286 </not>
287 </and>
288 </condition>
289 <condition
david_williams42f9b242006-11-27 18:45:14 +0000290 property="doPack"
291 value="true">
david_williams8819a492009-03-10 03:31:33 +0000292 <and>
293 <istrue
294 value="${packJarFiles}"/>
david_williams65f16aa2009-11-20 17:14:56 +0000295 <istrue
296 value="${createP2repo}"/>
297 <and>
298 <or>
299 <istrue
300 value="${normalizeJarFiles}"/>
301 <istrue
302 value="${doSign}"/>
303 </or>
304 </and>
david_williams8819a492009-03-10 03:31:33 +0000305 </and>
306 </condition>
307 <condition
david_williamsb67b0c22009-03-17 19:25:29 +0000308 property="excludeFromRepoZip"
309 value="site.xml">
310 <isfalse
311 value="${doPack}"/>
312 </condition>
313 <condition
314 property="excludeFromRepoZip"
315 value="site.xml,plugins/*.jar,features/*.jar">
316 <istrue
317 value="${doPack}"/>
318 </condition>
319 <condition
david_williams403beae2007-12-09 02:10:40 +0000320 property="archiveDir"
321 value="${tmpsite}/normalized">
david_williams8819a492009-03-10 03:31:33 +0000322 <istrue
323 value="${doPack}"/>
324 </condition>
325 <condition
david_williams403beae2007-12-09 02:10:40 +0000326 property="archiveDir"
327 value="${buildDirectory}/${buildLabel}">
david_williams8819a492009-03-10 03:31:33 +0000328 <isfalse
329 value="${doPack}"/>
330 </condition>
david_williamsb67b0c22009-03-17 19:25:29 +0000331 <condition
332 property="doP2Repo"
333 value="true">
334 <available
335 file="${buildDirectory}/maps/webtools.maps/releng/sitefile/site.xml"/>
336 </condition>
david_williams8819a492009-03-10 03:31:33 +0000337 <!-- echo important values, so it's documneted in build logs -->
338 <echo
339 message="doPack: ${doPack}"/>
340 <echo
david_williams15815ba2009-03-17 06:02:20 +0000341 message="packJarFiles: ${packJarFiles}"/>
342 <echo
david_williams8819a492009-03-10 03:31:33 +0000343 message="normalizeJarFiles: ${normalizeJarFiles}"/>
344 <echo
345 message="doSign: ${doSign}"/>
346 <echo
347 message="doNormalize: ${doNormalize}"/>
david_williams15815ba2009-03-17 06:02:20 +0000348 <echo
david_williams65f16aa2009-11-20 17:14:56 +0000349 message="doP2Repo: ${doP2Repo}"/>
david_williams8819a492009-03-10 03:31:33 +0000350 </target>
351 <target
david_williamsd957bc32006-11-20 00:07:15 +0000352 name="deleteTmpSite"
353 unless="keepIfDebug">
david_williams8819a492009-03-10 03:31:33 +0000354 <delete
355 dir="${tmpsite}"/>
356 </target>
357 <target
david_williams42f9b242006-11-27 18:45:14 +0000358 name="normalizeJarFiles"
359 if="doNormalize"
360 depends="init">
david_williams8819a492009-03-10 03:31:33 +0000361 <!--
362 stick with JAVA5 for signing/packing for now ... I've heard
363 rumors of some 'compatibility' issues with JAVA6?
364 -->
david_williams65f16aa2009-11-20 17:14:56 +0000365 <echo
366 message="Starting normalizeJarFiles"/>
367 <echo
368 message="archiveDir: ${archiveDir}"/>
david_williams8819a492009-03-10 03:31:33 +0000369 <java
david_williams54315a72007-02-14 22:50:44 +0000370 jar="${eclipse.launcher}"
david_williams42f9b242006-11-27 18:45:14 +0000371 fork="true"
372 jvm="${env.JAVA_5_HOME}/bin/java"
373 failonerror="true"
david_williams15815ba2009-03-17 06:02:20 +0000374 maxmemory="512m"
david_williams42f9b242006-11-27 18:45:14 +0000375 dir="${buildDirectory}">
david_williams8819a492009-03-10 03:31:33 +0000376 <jvmarg
377 value="-Djava.io.tmpdir=${env.RECOMMENDED_TMP_DIR}"/>
378 <arg
379 line="${logIfDebug}"/>
380 <arg
381 line="-application org.eclipse.update.core.siteOptimizer"/>
382 <!--
383 note: this -processAll option is critical in this first
384 step. For various reasons, jarProcessor is written to
385 not act on any jar if the jar is not "marked", or if not
386 told explicitly to to processAll. There are ways where
387 not all are literally processed, such as using
388 pack.properties (and others, see
david_williams334ae2c2009-08-14 21:12:45 +0000389 http://wiki.eclipse.org/JarProcessor_Options).
david_williams42f9b242006-11-27 18:45:14 +0000390 -->
david_williams8819a492009-03-10 03:31:33 +0000391 <arg
392 line="-jarProcessor ${verboseIfDebug} -processAll -outputDir ${archiveDir} -repack ${buildDirectory}/${buildLabel}/${archiveName}"/>
393 </java>
394 </target>
395 <target
david_williamsd957bc32006-11-20 00:07:15 +0000396 name="createPackFilesIfDesired"
397 if="doPack"
398 depends="init">
david_williams8819a492009-03-10 03:31:33 +0000399 <!--
400 stick with JAVA5 for signing/packing for now ... I've heard
401 rumors of some 'compatibility' issues with JAVA6?
402 -->
david_williamsb67b0c22009-03-17 19:25:29 +0000403 <!--
david_williams65f16aa2009-11-20 17:14:56 +0000404 <java
david_williams54315a72007-02-14 22:50:44 +0000405 jar="${pde.builder.path}/plugins/org.eclipse.equinox.launcher.jar"
david_williams65f16aa2009-11-20 17:14:56 +0000406 fork="true" jvm="${env.JAVA_5_HOME}/bin/java"
407 failonerror="true" maxmemory="512m" dir="${buildDirectory}">
david_williams8819a492009-03-10 03:31:33 +0000408 <jvmarg
david_williams65f16aa2009-11-20 17:14:56 +0000409 value="-Djava.io.tmpdir=${env.RECOMMENDED_TMP_DIR}"/> <arg
410 line="${logIfDebug}"/> <arg line="-application
411 org.eclipse.update.core.siteOptimizer"/> <arg
412 line="-jarProcessor ${verboseIfDebug} -outputDir
david_williams0fadc4e2010-03-01 04:45:19 +0000413 ${buildDirectory}/${buildLabel}/repository -pack
414 ${buildDirectory}/${buildLabel}/repository"/> </java>
david_williamsb67b0c22009-03-17 19:25:29 +0000415 -->
david_williamsb67b0c22009-03-17 19:25:29 +0000416 <java
417 jar="${pde.builder.path}/plugins/org.eclipse.equinox.launcher.jar"
418 fork="true"
419 jvm="${env.JAVA_5_HOME}/bin/java"
420 failonerror="true"
421 maxmemory="512m"
422 dir="${buildDirectory}">
423 <jvmarg
424 value="-Djava.io.tmpdir=${env.RECOMMENDED_TMP_DIR}"/>
425 <arg
426 line="${logIfDebug}"/>
427 <arg
428 line="-application org.eclipse.update.core.siteOptimizer"/>
429 <arg
david_williams0fadc4e2010-03-01 04:45:19 +0000430 line="-jarProcessor ${verboseIfDebug} -outputDir ${buildDirectory}/${buildLabel}/${component}/repository -pack ${buildDirectory}/${buildLabel}/${component}/repository"/>
david_williamsb67b0c22009-03-17 19:25:29 +0000431 </java>
david_williams8819a492009-03-10 03:31:33 +0000432 </target>
433 <!--
434 always make copy, since normally either normalized, or signed
435 (and normalized) TODO: (minor) tiny improvement in efficiency
436 could be made, for N-builds?, that are neither normalized nor
437 signed.
438 -->
439 <target
david_williams504570c2008-03-05 06:03:14 +0000440 name="makeCopyForUpdate">
david_williams8819a492009-03-10 03:31:33 +0000441 <mkdir
david_williams0fadc4e2010-03-01 04:45:19 +0000442 dir="${buildDirectory}/${buildLabel}/repository"/>
david_williams8819a492009-03-10 03:31:33 +0000443 <copy
david_williams0fadc4e2010-03-01 04:45:19 +0000444 todir="${buildDirectory}/${buildLabel}/repository"
david_williams42f9b242006-11-27 18:45:14 +0000445 overwrite="false">
david_williams8819a492009-03-10 03:31:33 +0000446 <fileset
david_williamsb0f0e6c2008-02-10 06:22:40 +0000447 dir="${tmpsite}/eclipse">
david_williams8f336ec2010-04-03 05:06:07 +0000448 <exclude
449 name="**/*assembly*/**"/>
david_williams8819a492009-03-10 03:31:33 +0000450 </fileset>
451 </copy>
david_williamsb67b0c22009-03-17 19:25:29 +0000452 <mkdir
david_williams0fadc4e2010-03-01 04:45:19 +0000453 dir="${buildDirectory}/${buildLabel}/${component}/repository"/>
david_williamsb67b0c22009-03-17 19:25:29 +0000454 <copy
david_williams0fadc4e2010-03-01 04:45:19 +0000455 todir="${buildDirectory}/${buildLabel}/${component}/repository"
david_williamsb67b0c22009-03-17 19:25:29 +0000456 overwrite="false">
457 <fileset
458 dir="${tmpsite}/eclipse">
david_williams8f336ec2010-04-03 05:06:07 +0000459 <exclude
460 name="**/*assembly*/**"/>
david_williamsb67b0c22009-03-17 19:25:29 +0000461 </fileset>
462 </copy>
david_williams8819a492009-03-10 03:31:33 +0000463 </target>
464 <target
david_williamsd957bc32006-11-20 00:07:15 +0000465 name="makeBackupCopyForDebugging"
466 if="keepIfDebug">
david_williams8819a492009-03-10 03:31:33 +0000467 <!--
468 temporary copy while confirming build to be able to do
469 side-by-side comparisons
david_williamsb1149ef2006-05-25 22:06:10 +0000470 -->
david_williams8819a492009-03-10 03:31:33 +0000471 <mkdir
472 dir="${buildDirectory}/backuporiginalzips"/>
473 <copy
david_williamsd957bc32006-11-20 00:07:15 +0000474 file="${buildDirectory}/${buildLabel}/${archiveName}"
david_williams8819a492009-03-10 03:31:33 +0000475 todir="${buildDirectory}/backuporiginalzips"/>
476 </target>
477 <target
478 name="createChecksums">
479 <!--
480 This createChecksums task creates two files, for use in two
481 contexts. a. an x.md5 file, that has the name of the file in
482 the contents. This is good for some "third party"
483 executables, like md5summ, that expects the name in the
484 file. b. since ant does not deal well with md5 files with
485 anything in them other than the checksum, we provide same
486 thing in a file with an md5antformat extension, that has
487 only the checksum.
488 -->
489 <mkdir
490 dir="${buildDirectory}/${buildLabel}/checksum"/>
491 <checksum
492 file="${buildDirectory}/${buildLabel}/${archiveName}"
493 property="md5"/>
494 <echo
david_williamsd957bc32006-11-20 00:07:15 +0000495 message="${md5} *${archiveName}"
david_williams8819a492009-03-10 03:31:33 +0000496 file="${buildDirectory}/${buildLabel}/checksum/${archiveName}.md5"/>
497 <echo
david_williamsd957bc32006-11-20 00:07:15 +0000498 message="${md5}"
david_williams8819a492009-03-10 03:31:33 +0000499 file="${buildDirectory}/${buildLabel}/checksum/${archiveName}.md5antformat"/>
500 </target>
501 <target
david_williamsfb048be2008-02-23 07:15:21 +0000502 name="check.sign">
david_williams8819a492009-03-10 03:31:33 +0000503 <echo
504 message="sign: ${sign}"/>
505 <echo
506 message="env skip jar signing: ${env.SKIP_JAR_SIGNING}"/>
507 <echo
508 message="skip jar signing: ${SKIP_JAR_SIGNING}"/>
509 <condition
david_williamsfb048be2008-02-23 07:15:21 +0000510 property="doSign">
david_williams8819a492009-03-10 03:31:33 +0000511 <and>
512 <equals
david_williamsfb048be2008-02-23 07:15:21 +0000513 arg1="${sign}"
514 arg2="true"
515 trim="true"
david_williams8819a492009-03-10 03:31:33 +0000516 casesensitive="false"/>
517 <not>
518 <equals
519 arg1="${env.SKIP_JAR_SIGNING}"
520 arg2="true"
521 trim="true"
522 casesensitive="false"/>
523 </not>
524 <not>
525 <equals
526 arg1="${SKIP_JAR_SIGNING}"
527 arg2="true"
528 trim="true"
529 casesensitive="false"/>
530 </not>
531 </and>
532 </condition>
533 <echo
534 message="doSign: ${doSign}"/>
535 </target>
536
537 <!-- Call the p2 metadata generator on the update site. -->
538 <!-- TODO: do we need to pack200 files first? (create gz files?) -->
539 <target
david_williams15815ba2009-03-17 06:02:20 +0000540 name="generateP2Metadata"
541 depends="init"
542 if="doP2Repo">
david_williams8819a492009-03-10 03:31:33 +0000543
david_williams15815ba2009-03-17 06:02:20 +0000544
545 <!-- 1. Generate the P2 metadata -->
david_williamsb67b0c22009-03-17 19:25:29 +0000546 <!--
david_williams8f336ec2010-04-03 05:06:07 +0000547 ant version <p2.generator
548 updateSite="${buildDirectory}/${buildLabel}/${component}/repository"
549 compress="true"
550 metadataRepository="file:${buildDirectory}/${buildLabel}/${component}/repository"
551 artifactRepository="file:${buildDirectory}/${buildLabel}/${component}/repository"
552 metadataRepositoryName="Web Tools Platform Repository"
553 artifactRepositoryName="Web Tools Platform Repository"
554 noDefaultIUs="true"/>
david_williamsb67b0c22009-03-17 19:25:29 +0000555 -->
556 <!--
david_williams8f336ec2010-04-03 05:06:07 +0000557 java invocation version (Orbit had trouble running ant
558 version, so used direct java call
david_williamsb67b0c22009-03-17 19:25:29 +0000559 -->
david_williams65f16aa2009-11-20 17:14:56 +0000560 <!--
david_williams8f336ec2010-04-03 05:06:07 +0000561 these shouldn't exist ... but, just in case something
562 changes in future we'll be sure
563 -->
564 <delete
565 quiet="true"
566 file="${buildDirectory}/${buildLabel}/${component}/repository/artifacts.jar"/>
567 <delete
568 quiet="true"
569 file="${buildDirectory}/${buildLabel}/${component}/repository/content.jar"/>
570 <java
571 jar="${eclipse.launcher}"
572 fork="true"
573 jvm="${env.JAVA_5_HOME}/bin/java"
574 failonerror="true"
575 maxmemory="512m"
576 dir="${buildDirectory}">
577 <jvmarg
578 value="-Djava.io.tmpdir=${env.RECOMMENDED_TMP_DIR}"/>
579 <arg
580 line="-application org.eclipse.equinox.p2.metadata.generator.EclipseGenerator"/>
581 <arg
582 line="-consoleLog"/>
583 <arg
584 line="-nosplash"/>
585 <arg
586 line="--launcher.suppressErrors"/>
587 <arg
588 line="-metadataRepository file:${buildDirectory}/${buildLabel}/${component}/repository"/>
589 <arg
590 line="-artifactRepository file:${buildDirectory}/${buildLabel}/${component}/repository"/>
591 <arg
592 line="-metadataRepositoryName Web-Tools-Platform-${buildLabel}"/>
593 <arg
594 line="-artifactRepositoryName Web-Tools-Platform-${buildLabel}"/>
595 <arg
596 line="-updateSite ${buildDirectory}/${buildLabel}/${component}/repository"/>
597 <arg
598 line="-reusePack200Files"/>
599 <arg
600 line="-compress"/>
601 <arg
602 line="-noDefaultIUs"/>
603 <arg
604 line="-site file:${buildDirectory}/${buildLabel}/${component}/repository/site.xml"/>
605 </java>
606 <delete
607 quiet="true"
608 file="${buildDirectory}/${buildLabel}/repository/artifacts.jar"/>
609 <delete
610 quiet="true"
611 file="${buildDirectory}/${buildLabel}/repository/content.jar"/>
612 <java
613 jar="${eclipse.launcher}"
614 fork="true"
615 jvm="${env.JAVA_5_HOME}/bin/java"
616 failonerror="true"
617 maxmemory="512m"
618 dir="${buildDirectory}">
619 <jvmarg
620 value="-Djava.io.tmpdir=${env.RECOMMENDED_TMP_DIR}"/>
621 <arg
622 line="-application org.eclipse.equinox.p2.metadata.generator.EclipseGenerator"/>
623 <arg
624 line="-consoleLog"/>
625 <arg
626 line="-nosplash"/>
627 <arg
628 line="--launcher.suppressErrors"/>
629 <arg
630 line="-metadataRepository file:${buildDirectory}/${buildLabel}/repository"/>
631 <arg
632 line="-artifactRepository file:${buildDirectory}/${buildLabel}/repository"/>
633 <arg
634 line="-metadataRepositoryName Web-Tools-Platform-${buildLabel}"/>
635 <arg
636 line="-artifactRepositoryName Web-Tools-Platform-${buildLabel}"/>
637 <arg
638 line="-updateSite ${buildDirectory}/${buildLabel}/repository"/>
639 <arg
640 line="-reusePack200Files"/>
641 <arg
642 line="-compress"/>
643 <arg
644 line="-noDefaultIUs"/>
645 <arg
646 line="-site file:${buildDirectory}/${buildLabel}/repository/site.xml"/>
647 </java>
648 <!--
david_williams65f16aa2009-11-20 17:14:56 +0000649 2. Create zip of P2 repo. Note we put it in
650 'repoBaseLocation' for use by subsequent build steps TODO:
651 investigate a location outside a per-build location
652 -->
653 <mkdir
654 dir="${buildDirectory}/${buildLabel}/repos"/>
david_williamsb67b0c22009-03-17 19:25:29 +0000655 <zip
656 destfile="${buildDirectory}/${buildLabel}/repos/${component}-buildrepo-${buildLabel}.zip"
david_williams0fadc4e2010-03-01 04:45:19 +0000657 basedir="${buildDirectory}/${buildLabel}/${component}/repository/"
david_williamsb67b0c22009-03-17 19:25:29 +0000658 excludes="${excludeFromRepoZip}"
659 update="yes"
660 duplicate="preserve">
david_williams65f16aa2009-11-20 17:14:56 +0000661 </zip>
662 <!--
663 <zip
david_williamsb67b0c22009-03-17 19:25:29 +0000664 destfile="${buildDirectory}/${buildLabel}/repos/${build.distribution}-buildrepo-${buildLabel}.zip"
david_williams0fadc4e2010-03-01 04:45:19 +0000665 basedir="${buildDirectory}/${buildLabel}/repository/"
david_williams65f16aa2009-11-20 17:14:56 +0000666 excludes="${excludeFromRepoZip}" update="yes"
667 duplicate="preserve"> </zip>
668 -->
669 <!--
670 3. generate maps each step TODO: avoid double processing by
671 changing task so that if file exists, append to it
672 -->
david_williamsb67b0c22009-03-17 19:25:29 +0000673 <generateMapFiles
674 buildlabel="${buildLabel}"
675 inputFilePluginVersions="${buildDirectory}/finalPluginsVersions.properties"
676 inputFileFeatureVersions="${buildDirectory}/finalFeaturesVersions.properties"
677 p2MapFile="${buildDirectory}/${buildLabel}/Web-Tools-Platform-${buildLabel}.p2.map"
david_williams0fadc4e2010-03-01 04:45:19 +0000678 p2Repository="http://build.eclipse.org/webtools/committers/${projectname}/${buildLabel}/repository"/>
david_williamsb67b0c22009-03-17 19:25:29 +0000679 </target>
680 <target
681 name="createSiteFiles"
david_williams99daef12009-04-07 01:29:45 +0000682 depends="init"
david_williams65f16aa2009-11-20 17:14:56 +0000683 if="doP2Repo">
david_williamsb67b0c22009-03-17 19:25:29 +0000684 <property
685 name="sitexmlfile"
686 value="${buildDirectory}/maps/webtools.maps/releng/sitefile/site.xml"/>
687 <property
688 file="${buildDirectory}/finalFeaturesVersions.properties"/>
689 <loadfile
690 property="sitefiletext"
691 srcFile="${sitexmlfile}">
692 <filterchain>
693 <expandproperties/>
694 </filterchain>
695 </loadfile>
696 <echo
697 message="${sitefiletext}"
david_williams0fadc4e2010-03-01 04:45:19 +0000698 file="${buildDirectory}/${buildLabel}/repository/site.xml"/>
david_williamsb67b0c22009-03-17 19:25:29 +0000699 <echo
700 message="${sitefiletext}"
david_williams0fadc4e2010-03-01 04:45:19 +0000701 file="${buildDirectory}/${buildLabel}/${component}/repository/site.xml"/>
david_williams65f16aa2009-11-20 17:14:56 +0000702 </target>
703 <target
704 name="updatePackPropertiesFile"
705 if="doNormalize">
706 <updatePackProperties
707 archiveFilename="${buildDirectory}/${buildLabel}/${archiveName}"/>
david_williams8819a492009-03-10 03:31:33 +0000708 </target>
709 <target
david_williamsb0f0e6c2008-02-10 06:22:40 +0000710 name="nodefault">
david_williams8819a492009-03-10 03:31:33 +0000711 <echo
david_williams403beae2007-12-09 02:10:40 +0000712 level="error"
david_williams8819a492009-03-10 03:31:33 +0000713 message="There is no default target for this buildutililites.xml ant script."/>
714 </target>
david_williamsb0f0e6c2008-02-10 06:22:40 +0000715</project>