Skip to content

Commit e6868ea

Browse files
committed
Build: add property for jar entry modify times
Previously all class files and resources were added to the built jars with the build time. With this change the jar, war, and zip tasks will use the time stamp from the `archive.entry.date` property as the modified times of the entries in order to work towards reproducable builds. This property is required and has been set in the build.properties files. Signed-off-by: Tony Germano <tony@germano.name>
1 parent 7dc8a4f commit e6868ea

14 files changed

Lines changed: 213 additions & 171 deletions

File tree

‎client/ant-build.xml‎

Lines changed: 45 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<projectname="mirth-client"basedir="."default="help">
1+
<projectname="mirth-client"basedir="."default="help"xmlns:unless="ant:unless">
22
<targetname="help">
33
<echo>OIE Client Build Help</echo>
44
<echo>-----------------------</echo>
@@ -7,6 +7,9 @@
77
<targetname="init">
88
<propertyfile="build.properties" />
99

10+
<failmessage="Required property archive.entry.date is not set"
11+
unless:set="archive.entry.date" />
12+
1013
<pathid="classpath">
1114
<filesetdir="${lib}"includes="**/*.jar" />
1215
<!-- include the extensions libs in case they have jars required for the client -->
@@ -102,7 +105,7 @@
102105
<targetname="build"depends="compile">
103106
<mkdirdir="${dist}" />
104107

105-
<jardestfile="${dist}/${client.jar}">
108+
<jardestfile="${dist}/${client.jar}"modificationTime="${archive.entry.date}">
106109
<filesetdir="${classes}">
107110
<excludename="com/mirth/connect/connectors/**/**" />
108111
</fileset>
@@ -113,203 +116,203 @@
113116

114117
<!-- connectors -->
115118
<mkdirdir="${connectors.dicom}" />
116-
<jardestfile="${connectors.dicom}/dicom-client.jar"basedir="${classes}">
119+
<jardestfile="${connectors.dicom}/dicom-client.jar"basedir="${classes}"modificationTime="${archive.entry.date}">
117120
<includename="com/mirth/connect/connectors/dimse/**" />
118121
</jar>
119122

120123
<mkdirdir="${connectors.jdbc}" />
121-
<jardestfile="${connectors.jdbc}/jdbc-client.jar"basedir="${classes}">
124+
<jardestfile="${connectors.jdbc}/jdbc-client.jar"basedir="${classes}"modificationTime="${archive.entry.date}">
122125
<includename="com/mirth/connect/connectors/jdbc/**" />
123126
</jar>
124127

125128
<mkdirdir="${connectors.jms}" />
126-
<jardestfile="${connectors.jms}/jms-client.jar"basedir="${classes}">
129+
<jardestfile="${connectors.jms}/jms-client.jar"basedir="${classes}"modificationTime="${archive.entry.date}">
127130
<includename="com/mirth/connect/connectors/jms/**" />
128131
</jar>
129132

130133
<mkdirdir="${connectors.http}" />
131-
<jardestfile="${connectors.http}/http-client.jar"basedir="${classes}">
134+
<jardestfile="${connectors.http}/http-client.jar"basedir="${classes}"modificationTime="${archive.entry.date}">
132135
<includename="com/mirth/connect/connectors/http/**" />
133136
</jar>
134137

135138
<mkdirdir="${connectors.doc}" />
136-
<jardestfile="${connectors.doc}/doc-client.jar"basedir="${classes}">
139+
<jardestfile="${connectors.doc}/doc-client.jar"basedir="${classes}"modificationTime="${archive.entry.date}">
137140
<includename="com/mirth/connect/connectors/doc/**" />
138141
</jar>
139142

140143
<mkdirdir="${connectors.smtp}" />
141-
<jardestfile="${connectors.smtp}/smtp-client.jar"basedir="${classes}">
144+
<jardestfile="${connectors.smtp}/smtp-client.jar"basedir="${classes}"modificationTime="${archive.entry.date}">
142145
<includename="com/mirth/connect/connectors/smtp/**" />
143146
</jar>
144147

145148
<mkdirdir="${connectors.tcp}" />
146-
<jardestfile="${connectors.tcp}/tcp-client.jar"basedir="${classes}">
149+
<jardestfile="${connectors.tcp}/tcp-client.jar"basedir="${classes}"modificationTime="${archive.entry.date}">
147150
<includename="com/mirth/connect/connectors/tcp/**" />
148151
</jar>
149152

150153
<mkdirdir="${connectors.file}" />
151-
<jardestfile="${connectors.file}/file-client.jar"basedir="${classes}">
154+
<jardestfile="${connectors.file}/file-client.jar"basedir="${classes}"modificationTime="${archive.entry.date}">
152155
<includename="com/mirth/connect/connectors/file/**" />
153156
</jar>
154157

155158
<mkdirdir="${connectors.js}" />
156-
<jardestfile="${connectors.js}/js-client.jar"basedir="${classes}">
159+
<jardestfile="${connectors.js}/js-client.jar"basedir="${classes}"modificationTime="${archive.entry.date}">
157160
<includename="com/mirth/connect/connectors/js/**" />
158161
</jar>
159162

160163
<mkdirdir="${connectors.ws}" />
161-
<jardestfile="${connectors.ws}/ws-client.jar"basedir="${classes}">
164+
<jardestfile="${connectors.ws}/ws-client.jar"basedir="${classes}"modificationTime="${archive.entry.date}">
162165
<includename="com/mirth/connect/connectors/ws/**" />
163166
</jar>
164167

165168
<mkdirdir="${connectors.vm}" />
166-
<jardestfile="${connectors.vm}/vm-client.jar"basedir="${classes}">
169+
<jardestfile="${connectors.vm}/vm-client.jar"basedir="${classes}"modificationTime="${archive.entry.date}">
167170
<includename="com/mirth/connect/connectors/vm/**" />
168171
</jar>
169172

170173
<!-- plugins -->
171174
<mkdirdir="${plugins.datatype-delimited}" />
172-
<jardestfile="${plugins.datatype-delimited}/datatype-delimited-client.jar"basedir="${classes}">
175+
<jardestfile="${plugins.datatype-delimited}/datatype-delimited-client.jar"basedir="${classes}"modificationTime="${archive.entry.date}">
173176
<includename="com/mirth/connect/plugins/datatypes/delimited/**" />
174177
</jar>
175178

176179
<mkdirdir="${plugins.datatype-dicom}" />
177-
<jardestfile="${plugins.datatype-dicom}/datatype-dicom-client.jar"basedir="${classes}">
180+
<jardestfile="${plugins.datatype-dicom}/datatype-dicom-client.jar"basedir="${classes}"modificationTime="${archive.entry.date}">
178181
<includename="com/mirth/connect/plugins/datatypes/dicom/**" />
179182
</jar>
180183

181184
<mkdirdir="${plugins.datatype-edi}" />
182-
<jardestfile="${plugins.datatype-edi}/datatype-edi-client.jar"basedir="${classes}">
185+
<jardestfile="${plugins.datatype-edi}/datatype-edi-client.jar"basedir="${classes}"modificationTime="${archive.entry.date}">
183186
<includename="com/mirth/connect/plugins/datatypes/edi/**" />
184187
</jar>
185188

186189
<mkdirdir="${plugins.datatype-hl7v2}" />
187-
<jardestfile="${plugins.datatype-hl7v2}/datatype-hl7v2-client.jar"basedir="${classes}">
190+
<jardestfile="${plugins.datatype-hl7v2}/datatype-hl7v2-client.jar"basedir="${classes}"modificationTime="${archive.entry.date}">
188191
<includename="com/mirth/connect/plugins/datatypes/hl7v2/**" />
189192
</jar>
190193

191194
<mkdirdir="${plugins.datatype-hl7v3}" />
192-
<jardestfile="${plugins.datatype-hl7v3}/datatype-hl7v3-client.jar"basedir="${classes}">
195+
<jardestfile="${plugins.datatype-hl7v3}/datatype-hl7v3-client.jar"basedir="${classes}"modificationTime="${archive.entry.date}">
193196
<includename="com/mirth/connect/plugins/datatypes/hl7v3/**" />
194197
</jar>
195198

196199
<mkdirdir="${plugins.datatype-ncpdp}" />
197-
<jardestfile="${plugins.datatype-ncpdp}/datatype-ncpdp-client.jar"basedir="${classes}">
200+
<jardestfile="${plugins.datatype-ncpdp}/datatype-ncpdp-client.jar"basedir="${classes}"modificationTime="${archive.entry.date}">
198201
<includename="com/mirth/connect/plugins/datatypes/ncpdp/**" />
199202
</jar>
200203

201204
<mkdirdir="${plugins.datatype-xml}" />
202-
<jardestfile="${plugins.datatype-xml}/datatype-xml-client.jar"basedir="${classes}">
205+
<jardestfile="${plugins.datatype-xml}/datatype-xml-client.jar"basedir="${classes}"modificationTime="${archive.entry.date}">
203206
<includename="com/mirth/connect/plugins/datatypes/xml/**" />
204207
</jar>
205208

206209
<mkdirdir="${plugins.datatype-raw}" />
207-
<jardestfile="${plugins.datatype-raw}/datatype-raw-client.jar"basedir="${classes}">
210+
<jardestfile="${plugins.datatype-raw}/datatype-raw-client.jar"basedir="${classes}"modificationTime="${archive.entry.date}">
208211
<includename="com/mirth/connect/plugins/datatypes/raw/**" />
209212
</jar>
210213

211214
<mkdirdir="${plugins.datatype-json}" />
212-
<jardestfile="${plugins.datatype-json}/datatype-json-client.jar"basedir="${classes}">
215+
<jardestfile="${plugins.datatype-json}/datatype-json-client.jar"basedir="${classes}"modificationTime="${archive.entry.date}">
213216
<includename="com/mirth/connect/plugins/datatypes/json/**" />
214217
</jar>
215218

216219
<mkdirdir="${plugins.directoryresource}" />
217-
<jardestfile="${plugins.directoryresource}/directoryresource-client.jar"basedir="${classes}">
220+
<jardestfile="${plugins.directoryresource}/directoryresource-client.jar"basedir="${classes}"modificationTime="${archive.entry.date}">
218221
<includename="com/mirth/connect/plugins/directoryresource/**" />
219222
</jar>
220223

221224
<mkdirdir="${plugins.dashboardstatus}" />
222-
<jardestfile="${plugins.dashboardstatus}/dashboardstatus-client.jar"basedir="${classes}">
225+
<jardestfile="${plugins.dashboardstatus}/dashboardstatus-client.jar"basedir="${classes}"modificationTime="${archive.entry.date}">
223226
<includename="com/mirth/connect/plugins/dashboardstatus/**" />
224227
</jar>
225228

226229
<mkdirdir="${plugins.destinationsetfilter}" />
227-
<jardestfile="${plugins.destinationsetfilter}/destinationsetfilter-client.jar"basedir="${classes}">
230+
<jardestfile="${plugins.destinationsetfilter}/destinationsetfilter-client.jar"basedir="${classes}"modificationTime="${archive.entry.date}">
228231
<includename="com/mirth/connect/plugins/destinationsetfilter/**" />
229232
</jar>
230233

231234
<mkdirdir="${plugins.dicomviewer}" />
232-
<jardestfile="${plugins.dicomviewer}/dicomviewer-client.jar"basedir="${classes}">
235+
<jardestfile="${plugins.dicomviewer}/dicomviewer-client.jar"basedir="${classes}"modificationTime="${archive.entry.date}">
233236
<includename="com/mirth/connect/plugins/dicomviewer/**" />
234237
</jar>
235238

236239
<mkdirdir="${plugins.globalmapviewer}" />
237-
<jardestfile="${plugins.globalmapviewer}/globalmapviewer-client.jar"basedir="${classes}">
240+
<jardestfile="${plugins.globalmapviewer}/globalmapviewer-client.jar"basedir="${classes}"modificationTime="${archive.entry.date}">
238241
<includename="com/mirth/connect/plugins/globalmapviewer/**" />
239242
</jar>
240243

241244
<mkdirdir="${plugins.httpauth}" />
242-
<jardestfile="${plugins.httpauth}/httpauth-client.jar"basedir="${classes}">
245+
<jardestfile="${plugins.httpauth}/httpauth-client.jar"basedir="${classes}"modificationTime="${archive.entry.date}">
243246
<includename="com/mirth/connect/plugins/httpauth/**" />
244247
</jar>
245248

246249
<mkdirdir="${plugins.imageviewer}" />
247-
<jardestfile="${plugins.imageviewer}/imageviewer-client.jar"basedir="${classes}">
250+
<jardestfile="${plugins.imageviewer}/imageviewer-client.jar"basedir="${classes}"modificationTime="${archive.entry.date}">
248251
<includename="com/mirth/connect/plugins/imageviewer/**" />
249252
</jar>
250253

251254
<mkdirdir="${plugins.javascriptrule}" />
252-
<jardestfile="${plugins.javascriptrule}/javascriptrule-client.jar"basedir="${classes}">
255+
<jardestfile="${plugins.javascriptrule}/javascriptrule-client.jar"basedir="${classes}"modificationTime="${archive.entry.date}">
253256
<includename="com/mirth/connect/plugins/javascriptrule/**" />
254257
</jar>
255258

256259
<mkdirdir="${plugins.javascriptstep}" />
257-
<jardestfile="${plugins.javascriptstep}/javascriptstep-client.jar"basedir="${classes}">
260+
<jardestfile="${plugins.javascriptstep}/javascriptstep-client.jar"basedir="${classes}"modificationTime="${archive.entry.date}">
258261
<includename="com/mirth/connect/plugins/javascriptstep/**" />
259262
</jar>
260263

261264
<mkdirdir="${plugins.mapper}" />
262-
<jardestfile="${plugins.mapper}/mapper-client.jar"basedir="${classes}">
265+
<jardestfile="${plugins.mapper}/mapper-client.jar"basedir="${classes}"modificationTime="${archive.entry.date}">
263266
<includename="com/mirth/connect/plugins/mapper/**" />
264267
</jar>
265268

266269
<mkdirdir="${plugins.messagebuilder}" />
267-
<jardestfile="${plugins.messagebuilder}/messagebuilder-client.jar"basedir="${classes}">
270+
<jardestfile="${plugins.messagebuilder}/messagebuilder-client.jar"basedir="${classes}"modificationTime="${archive.entry.date}">
268271
<includename="com/mirth/connect/plugins/messagebuilder/**" />
269272
</jar>
270273

271274
<mkdirdir="${plugins.datapruner}" />
272-
<jardestfile="${plugins.datapruner}/datapruner-client.jar"basedir="${classes}">
275+
<jardestfile="${plugins.datapruner}/datapruner-client.jar"basedir="${classes}"modificationTime="${archive.entry.date}">
273276
<includename="com/mirth/connect/plugins/datapruner/**" />
274277
</jar>
275278

276279
<mkdirdir="${plugins.mllpmode}" />
277-
<jardestfile="${plugins.mllpmode}/mllpmode-client.jar"basedir="${classes}">
280+
<jardestfile="${plugins.mllpmode}/mllpmode-client.jar"basedir="${classes}"modificationTime="${archive.entry.date}">
278281
<includename="com/mirth/connect/plugins/mllpmode/**" />
279282
</jar>
280283

281284
<mkdirdir="${plugins.pdfviewer}" />
282-
<jardestfile="${plugins.pdfviewer}/pdfviewer-client.jar"basedir="${classes}">
285+
<jardestfile="${plugins.pdfviewer}/pdfviewer-client.jar"basedir="${classes}"modificationTime="${archive.entry.date}">
283286
<includename="com/mirth/connect/plugins/pdfviewer/**" />
284287
</jar>
285288

286289
<mkdirdir="${plugins.textviewer}" />
287-
<jardestfile="${plugins.textviewer}/textviewer-client.jar"basedir="${classes}">
290+
<jardestfile="${plugins.textviewer}/textviewer-client.jar"basedir="${classes}"modificationTime="${archive.entry.date}">
288291
<includename="com/mirth/connect/plugins/textviewer/**" />
289292
</jar>
290293

291294
<mkdirdir="${plugins.rulebuilder}" />
292-
<jardestfile="${plugins.rulebuilder}/rulebuilder-client.jar"basedir="${classes}">
295+
<jardestfile="${plugins.rulebuilder}/rulebuilder-client.jar"basedir="${classes}"modificationTime="${archive.entry.date}">
293296
<includename="com/mirth/connect/plugins/rulebuilder/**" />
294297
</jar>
295298

296299
<mkdirdir="${plugins.serverlog}" />
297-
<jardestfile="${plugins.serverlog}/serverlog-client.jar"basedir="${classes}">
300+
<jardestfile="${plugins.serverlog}/serverlog-client.jar"basedir="${classes}"modificationTime="${archive.entry.date}">
298301
<includename="com/mirth/connect/plugins/serverlog/**" />
299302
</jar>
300303

301304
<mkdirdir="${plugins.scriptfilerule}" />
302-
<jardestfile="${plugins.scriptfilerule}/scriptfilerule-client.jar"basedir="${classes}">
305+
<jardestfile="${plugins.scriptfilerule}/scriptfilerule-client.jar"basedir="${classes}"modificationTime="${archive.entry.date}">
303306
<includename="com/mirth/connect/plugins/scriptfilerule/**" />
304307
</jar>
305308

306309
<mkdirdir="${plugins.scriptfilestep}" />
307-
<jardestfile="${plugins.scriptfilestep}/scriptfilestep-client.jar"basedir="${classes}">
310+
<jardestfile="${plugins.scriptfilestep}/scriptfilestep-client.jar"basedir="${classes}"modificationTime="${archive.entry.date}">
308311
<includename="com/mirth/connect/plugins/scriptfilestep/**" />
309312
</jar>
310313

311314
<mkdirdir="${plugins.xsltstep}" />
312-
<jardestfile="${plugins.xsltstep}/xsltstep-client.jar"basedir="${classes}">
315+
<jardestfile="${plugins.xsltstep}/xsltstep-client.jar"basedir="${classes}"modificationTime="${archive.entry.date}">
313316
<includename="com/mirth/connect/plugins/xsltstep/**" />
314317
</jar>
315318
</target>

‎client/build.properties‎

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,7 @@ logs=${basedir}/logs
1111
dist=${basedir}/dist
1212

1313
# jars
14-
client.jar=mirth-client.jar
14+
client.jar=mirth-client.jar
15+
16+
# This value is used as the modified time for the files inside of jar, zip, and war files
17+
archive.entry.date=1999-01-01T00:00:00.000Z

‎command/build.properties‎

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,7 @@ server=${basedir}/../server
1212

1313
# jars
1414
cli.jar=mirth-cli.jar
15-
cli-launcher.jar=mirth-cli-launcher.jar
15+
cli-launcher.jar=mirth-cli-launcher.jar
16+
17+
# This value is used as the modified time for the files inside of jar, zip, and war files
18+
archive.entry.date=1999-01-01T00:00:00.000Z

‎command/build.xml‎

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
1-
<projectname="mirth-cli"basedir="."default="build">
1+
<projectname="mirth-cli"basedir="."default="build"xmlns:unless="ant:unless">
22
<targetname="init">
33
<propertyfile="build.properties" />
44

55
<pathid="classpath">
66
<filesetdir="${lib}"includes="*.jar" />
77
</path>
8+
9+
<failmessage="Required property archive.entry.date is not set"
10+
unless:set="archive.entry.date" />
811
</target>
912

1013
<targetname="clean"depends="init">
@@ -38,12 +41,12 @@
3841
<filesetdir="${lib}" />
3942
</copy>
4043

41-
<jardestfile="${build}/${cli.jar}"basedir="${classes}">
44+
<jardestfile="${build}/${cli.jar}"basedir="${classes}"modificationTime="${archive.entry.date}">
4245
<includename="com/mirth/connect/cli/**" />
4346
<excludename="com/mirth/connect/cli/launcher/**" />
4447
</jar>
4548

46-
<jardestfile="${build}/${cli-launcher.jar}"basedir="${classes}">
49+
<jardestfile="${build}/${cli-launcher.jar}"basedir="${classes}"modificationTime="${archive.entry.date}">
4750
<includename="com/mirth/connect/cli/launcher/**" />
4851

4952
<manifest>

‎donkey/build.properties‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,3 +18,6 @@ model.jar=donkey-model.jar
1818
setup=${basedir}/setup
1919
setup.lib=${setup}/lib
2020
setup.docs=${setup}/docs
21+
22+
# This value is used as the modified time for the files inside of jar, zip, and war files
23+
archive.entry.date=1999-01-01T00:00:00.000Z

‎donkey/build.xml‎

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
11
<?xml version="1.0" encoding="UTF-8"?>
2-
<projectname="donkey"default="build"basedir=".">
2+
<projectname="donkey"default="build"basedir="."xmlns:unless="ant:unless">
33
<targetname="init">
44
<propertyfile="build.properties" />
55

66
<pathid="classpath">
77
<filesetdir="${lib}"includes="**/*.jar" />
88
</path>
9+
10+
<failmessage="Required property archive.entry.date is not set"
11+
unless:set="archive.entry.date" />
912
</target>
1013

1114
<targetname="clean"depends="init">
@@ -32,7 +35,7 @@
3235
</target>
3336

3437
<targetname="build-server"depends="compile">
35-
<jardestfile="${setup}/${server.jar}"basedir="${classes}">
38+
<jardestfile="${setup}/${server.jar}"basedir="${classes}"modificationTime="${archive.entry.date}">
3639
<includename="com/mirth/connect/donkey/server/**" />
3740
<includename="com/mirth/connect/donkey/model/**" />
3841
<includename="com/mirth/connect/donkey/util/**" />
@@ -44,7 +47,7 @@
4447
</target>
4548

4649
<targetname="build-model"depends="compile">
47-
<jardestfile="${setup}/${model.jar}"basedir="${classes}">
50+
<jardestfile="${setup}/${model.jar}"basedir="${classes}"modificationTime="${archive.entry.date}">
4851
<includename="com/mirth/connect/donkey/model/**" />
4952
<includename="com/mirth/connect/donkey/util/**" />
5053
</jar>

‎generator/build.properties‎

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,7 @@ vocab.src=${vocab}/src
99
vocab.classes=${vocab}/classes
1010
vocab.dist=${vocab}/dist
1111
vocab.version=1.2
12-
vocab.jar=mirth-vocab-${vocab.version}.jar
12+
vocab.jar=mirth-vocab-${vocab.version}.jar
13+
14+
# This value is used as the modified time for the files inside of jar, zip, and war files
15+
archive.entry.date=1999-01-01T00:00:00.000Z

0 commit comments

Comments
 (0)