-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathexportUpdate.xml
143 lines (118 loc) · 6.47 KB
/
exportUpdate.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
<?xml version="1.0" encoding="UTF-8"?>
<project name="export.update" default="build.update.zip" basedir=".">
<property file="./update.properties"/>
<import file="./buildCommon.xml"/>
<import file="./exportUpdateCustom.xml"/>
<target name="init" depends="init.custom">
<tstamp>
<format property="build.time" pattern="yyyyMMddHHmm"/>
</tstamp>
<property name="build.qualifier" value="v${build.time}"/>
<echo message="Build qualifier is ${build.qualifier}"/>
<property name="update.version" value="${update.base.version}.${build.qualifier}"/>
<property name="update.temp.folder" value="${basedir}/update.temp.folder"/>
<property name="update.destination" value="${basedir}"/>
<property name="zip.file" value="${update.destination}/${update.name}_${update.version}.zip"/>
</target>
<target name="publish.zip" depends="init" description="Copies the update archive to the update server.">
<echo message="Copying update zip file to update server ${update.server}"/>
<scp file="${zip.file}" keyfile="${user.home}/.ssh/id_dsa" passphrase="" todir="${user.name}@${update.server}:${update.server.dir}"></scp>
</target>
<target name="build.update.zip">
<antcall target="build.and.collect.features"/>
<antcall target="build.site.xml"/>
<antcall target="zip.update"/>
</target>
<target name="build.and.collect.features" depends="init" description="Builds and collects all features and their constituent plugin components for the update site.">
<delete dir="${update.temp.folder}"/>
<mkdir dir="${update.temp.folder}"/>
<antcall target="build.features"/>
<for param="feature" values="${feature.list}">
<antcall target="copy.feature">
<param name="feature.name" value="${feature}"/>
<param name="feature.dir" value="../${feature}.feature"/>
</antcall>
</for>
<!-- <copy file="site.xml" todir="${update.temp.folder}" failonerror="true" overwrite="false"/> -->
<copy file="index.html" todir="${update.temp.folder}" failonerror="true" overwrite="false"/>
<mkdir dir="${update.temp.folder}/web"/>
<copy todir="${update.temp.folder}/web" failonerror="true" overwrite="false">
<fileset dir="${basedir}/web" includes="site.css"/>
<fileset dir="${basedir}/web" includes="site.xsl"/>
</copy>
<antcall target="collect.extra.artifacts"/>
</target>
<target name="build.site.xml" depends="init">
<property name="site.xml" value="${update.temp.folder}/site.xml"/>
<echo file="${site.xml}" append="false"><?xml version="1.0" encoding="UTF-8"?>
<site>
<description url="${update.site.url}">
${update.site.description}
</description>
</echo>
<antcall target="add.site.categories"/>
<antcall target="add.all.features"/>
<echo file="${site.xml}" append="true" message="</site>${line.separator}"/>
</target>
<target name="add.site.categories">
<for param="category" values="${update.site.categories}" separator=",">
<echo file="${site.xml}" append="true" message="<category-def name="${category}" label="${category}"/>${line.separator}"/>
</for>
</target>
<target name="add.bin.src.features">
<antcall target="add.feature">
<param name="feature.id" value="${feature.id}"/>
<param name="feature.version" value="${feature.version}"/>
<param name="category" value="${bin.category}"/>
</antcall>
<antcall target="add.feature">
<param name="feature.id" value="${feature.id}.source"/>
<param name="feature.version" value="${feature.version}"/>
<param name="category" value="${src.category}"/>
</antcall>
</target>
<target name="add.feature">
<echo file="${site.xml}" append="true">
<feature url="features/${feature.id}_${feature.version}.jar"
id="${feature.id}"
version="${feature.version}">
<category name="${category}"/>
</feature>
</echo>
</target>
<target name="zip.update" depends="init" description="Creates the update site archive from the components collected by collect.update">
<property name="zip.file.name" value="${update.destination}/${update.name}_${update.version}.zip"/>
<zip destfile="${zip.file.name}" basedir="${update.temp.folder}" filesonly="false" whenempty="skip" update="false"/>
<delete dir="${update.temp.folder}"/>
</target>
<target name="copy.feature">
<xmlproperty file="${feature.dir}/feature.xml" prefix="f"/>
<echo message=" ** Copying contents of feature ${feature.name} version ${f.feature(version)} from directory ${feature.dir}"/>
<propertyRegexp name="feature.version" input="${f.feature(version)}" regexp="(.*).qualifier" value="\1.${build.qualifier}"/>
<mkdir dir="${update.temp.folder}/features"/>
<copy todir="${update.temp.folder}/features" failonerror="true" overwrite="false">
<fileset dir="${feature.dir}" includes="${feature.name}_${feature.version}.jar,${feature.name}.source_${feature.version}.jar"/>
</copy>
<mkdir dir="${update.temp.folder}/plugins"/>
<copy todir="${update.temp.folder}/plugins" failonerror="true" overwrite="false">
<fileset dir="${feature.dir}/plugins" includes="*.jar"/>
</copy>
</target>
<target name="build.features">
<echo message="Building feature jars for ${feature.list}..."/>
<for param="feature.id" values="${feature.list}">
<echo message="*** Building feature ${feature.id} ***"/>
<available file="../${feature.id}.feature/exportFeature.xml" property="feature.script" value="./exportFeature.xml"/>
<condition property="feature.script" value="${default.feature.script}">
<not>
<isset property="feature.script"/>
</not>
</condition>
<echo message="Using feature build script ${feature.script} for ${feature.id}"/>
<ant antfile="${feature.script}" target="build.feature" dir="../${feature.id}.feature">
<property name="build.qualifier" value="${build.qualifier}"/>
</ant>
</for>
<echo message="Done building feature jars."/>
</target>
</project>