9e07abd28175750aa8001ff478810c5188156283
[jalview.git] / utils / install4j / install4j9_template.install4j
1 <?xml version="1.0" encoding="UTF-8"?>
2 <install4j version="9.0.7" transformSequenceNumber="9">
3   <directoryPresets config="bin/jalview" />
4   <application name="${compiler:JALVIEW_APPLICATION_NAME}" applicationId="${compiler:WINDOWS_APPLICATION_ID}" mediaDir="${compiler:BUILD_DIR}" lzmaCompression="true" shortName="${compiler:INTERNAL_ID}" publisher="University of Dundee" publisherWeb="https://www.jalview.org/" version="${compiler:JALVIEW_VERSION}" allPathsRelative="true" macVolumeId="5aac4968c304f65" javaMinVersion="${compiler:JAVA_MIN_VERSION}" javaMaxVersion="${compiler:JAVA_MAX_VERSION}" allowBetaVM="true" jdkMode="jdk" jdkName="JDK 11.0">
5     <searchSequence>
6       <directory location="${compiler:JRE_DIR}" />
7       <registry />
8       <envVar name="JAVA_HOME" />
9     </searchSequence>
10     <variables>
11       <variable name="JALVIEW_NAME" value="Jalview" />
12       <variable name="JALVIEW_APPLICATION_NAME" value="Jalview" />
13       <variable name="JALVIEW_DIR" value="../.." />
14       <variable name="BUILD_DIR" value="${compiler:JALVIEW_DIR}/build/install4j" />
15       <variable name="OSX_KEYSTORE" />
16       <variable name="OSX_APPLEID" />
17       <variable name="JSIGN_SH" value="echo" />
18       <variable name="JRE_DIR" value="jre" description="The folder under the app folder that the JRE will be either copied or unpacked into" />
19       <variable name="INSTALLER_TEMPLATE_VERSION" value="DEVELOPMENT_default" />
20       <variable name="JALVIEW_VERSION" value="DEVELOPMENT" />
21       <variable name="JAVA_MIN_VERSION" value="11" />
22       <variable name="JAVA_MAX_VERSION" value="11" />
23       <variable name="JAVA_VERSION" value="11" />
24       <variable name="JAVA_INTEGER_VERSION" value="11" />
25       <variable name="VERSION" value="DEVELOPMENT" />
26       <variable name="MACOS_X64_JAVA_VM_DIR" value="${compiler:env.HOME}/buildtools/jre/jre-${compiler:JAVA_INTEGER_VERSION}-mac-x64/jre" />
27       <variable name="MACOS_AARCH64_JAVA_VM_DIR" value="${compiler:env.HOME}/buildtools/jre/jre-${compiler:JAVA_INTEGER_VERSION}-mac-aarch64/jre" />
28       <variable name="WINDOWS_X64_JAVA_VM_DIR" value="${compiler:env.HOME}/buildtools/jre/jre-${compiler:JAVA_INTEGER_VERSION}-windows-x64/jre" />
29       <variable name="LINUX_X64_JAVA_VM_DIR" value="${compiler:env.HOME}/buildtools/jre/jre-${compiler:JAVA_INTEGER_VERSION}-linux-x64/jre" />
30       <variable name="LINUX_AARCH64_JAVA_VM_DIR" value="${compiler:env.HOME}/buildtools/jre/jre-${compiler:JAVA_INTEGER_VERSION}-linux-aarch64/jre" />
31       <variable name="MACOS_X64_JAVA_VM_TGZ" value="${compiler:env.HOME}/buildtools/jre/tgz/jre_${compiler:JAVA_INTEGER_VERSION}_mac_x64.tar.gz" />
32       <variable name="MACOS_AARCH64_JAVA_VM_TGZ" value="${compiler:env.HOME}/buildtools/jre/tgz/jre_${compiler:JAVA_INTEGER_VERSION}_mac_aarch64.tar.gz" />
33       <variable name="WINDOWS_X64_JAVA_VM_TGZ" value="${compiler:env.HOME}/buildtools/jre/tgz/jre_${compiler:JAVA_INTEGER_VERSION}_windows_x64.tar.gz" />
34       <variable name="LINUX_X64_JAVA_VM_TGZ" value="${compiler:env.HOME}/buildtools/jre/tgz/jre_${compiler:JAVA_INTEGER_VERSION}_linux_x64.tar.gz" />
35       <variable name="LINUX_AARCH64_JAVA_VM_TGZ" value="${compiler:env.HOME}/buildtools/jre/tgz/jre_${compiler:JAVA_INTEGER_VERSION}_linux_aarch64.tar.gz" />
36       <variable name="COPYRIGHT_MESSAGE" value="..." />
37       <variable name="BUNDLE_ID" value="org.jalview.jalview-desktop" />
38       <variable name="INTERNAL_ID" value="Jalview" />
39       <variable name="WINDOWS_APPLICATION_ID" value="6595-2347-1923-0725" />
40       <variable name="MACOS_DMG_DS_STORE" value="jalview_default_dmg_DS_Store" />
41       <variable name="MACOS_DMG_BG_IMAGE" value="jalview_default_dmg_background-72dpi.png" />
42       <variable name="WRAPPER_LINK" value="jalview" />
43       <variable name="BASH_WRAPPER_SCRIPT" value="jalview.sh" />
44       <variable name="WRAPPER_SCRIPT_BIN_DIR" value="bin" />
45       <variable name="INSTALLER_NAME" value="Jalview Installer" />
46       <variable name="INSTALL4J_UTILS_DIR" value="utils/install4j" />
47       <variable name="GETDOWN_CHANNEL_DIR" value="build/website/docroot/getdown/default" />
48       <variable name="GETDOWN_FILES_DIR" value="getdown/files" />
49       <variable name="GETDOWN_RESOURCE_DIR" value="resource" />
50       <variable name="GETDOWN_DIST_DIR" value="dist" />
51       <variable name="GETDOWN_ALT_DIR" value="alt" />
52       <variable name="GETDOWN_INSTALL_DIR" value="install" />
53       <variable name="INFO_PLIST_FILE_ASSOCIATIONS_FILE" value="file_associations_auto-Info_plist.xml" />
54       <variable name="APPLICATION_CATEGORIES" value="Science;Biology;Java;" />
55       <variable name="APPLICATION_FOLDER" value="Jalview" />
56       <variable name="UNIX_APPLICATION_FOLDER" value="jalview" />
57       <variable name="EXECUTABLE_NAME" value="jalview" />
58       <variable name="EXTRA_SCHEME" value="jalviewx" />
59       <variable name="MAC_ICONS_FILE" value="utils/channels/release/images/jalview_logo.icns" />
60       <variable name="WINDOWS_ICONS_FILE" value="utils/channels/release/images/jalview_logo.ico" />
61       <variable name="PNG_ICON_FILE" value="utils/channels/release/images/jalview_logo.png" />
62       <variable name="BACKGROUND" value="utils/channels/release/images/jalview_logo_background_fade-640x480.png" />
63     </variables>
64     <codeSigning macEnabled="true" macPkcs12File="${compiler:OSX_KEYSTORE}" macNotarize="true" appleId="${compiler:OSX_APPLEID}">
65       <macAdditionalBinaries>
66         <entry>*.dylib</entry>
67         <entry>*.so</entry>
68         <entry>*.jnilib</entry>
69         <entry>unpack200</entry>
70         <entry>tnameserv</entry>
71         <entry>servertool</entry>
72         <entry>rmiregistry</entry>
73         <entry>rmid</entry>
74         <entry>policytool</entry>
75         <entry>pack200</entry>
76         <entry>orbd</entry>
77         <entry>keytool</entry>
78         <entry>jjs</entry>
79         <entry>java</entry>
80         <entry>jspawnhelper</entry>
81         <entry>libfreetype.dylib.6</entry>
82         <entry>applet</entry>
83         <entry>jaotc</entry>
84         <entry>jfr</entry>
85         <entry>jrunscript</entry>
86         <entry>libjli.dylib</entry>
87       </macAdditionalBinaries>
88     </codeSigning>
89   </application>
90   <files defaultUninstallMode="2" preserveSymlinks="false">
91     <filesets>
92       <fileset name="Full file set" id="734" customizedId="FULL_FILE_SET" />
93     </filesets>
94     <roots>
95       <root id="735" fileset="734" />
96     </roots>
97     <mountPoints>
98       <mountPoint id="736" root="735" />
99     </mountPoints>
100     <entries>
101       <dirEntry mountPoint="736" file="${compiler:JALVIEW_DIR}/${compiler:GETDOWN_CHANNEL_DIR}/${compiler:JAVA_VERSION}" uninstallMode="2" overrideOverwriteMode="true" overrideUninstallMode="true" subDirectory="files">
102         <exclude>
103           <entry location="${compiler:WRAPPER_SCRIPT_BIN_DIR}" />
104         </exclude>
105       </dirEntry>
106       <dirEntry mountPoint="736" file="${compiler:JALVIEW_DIR}/examples" overwriteMode="1" uninstallMode="2" overrideFileMode="true" overrideOverwriteMode="true" overrideUninstallMode="true" entryMode="subdir" subDirectory="examples" />
107       <dirEntry mountPoint="736" file="${compiler:JALVIEW_DIR}/${compiler:GETDOWN_CHANNEL_DIR}/${compiler:JAVA_VERSION}/${compiler:WRAPPER_SCRIPT_BIN_DIR}" fileMode="755" overrideFileMode="true" overrideUninstallMode="true" entryMode="subdir" subDirectory="${compiler:WRAPPER_SCRIPT_BIN_DIR}" overrideDirMode="true" />
108     </entries>
109     <components>
110       <component name="jalview_getdown" id="1031">
111         <include>
112           <entry filesetId="734" />
113         </include>
114       </component>
115     </components>
116   </files>
117   <launchers>
118     <launcher name="Jalview Launcher" id="737" customizedId="JALVIEW" menuName="${compiler:JALVIEW_APPLICATION_NAME}" icnsFile="${compiler:JALVIEW_DIR}/${compiler:MAC_ICONS_FILE}" customMacBundleIdentifier="true" macBundleIdentifier="${compiler:BUNDLE_ID}" fileset="734" useCustomMacosExecutableName="true" customMacosExecutableName="${compiler:JALVIEW_APPLICATION_NAME}">
119       <executable name="${compiler:EXECUTABLE_NAME}" iconSet="true" iconFile="${compiler:JALVIEW_DIR}/${compiler:WINDOWS_ICONS_FILE}" redirectStdout="true" executableMode="gui" changeWorkingDirectory="false" singleInstance="true" checkConsoleParameter="true">
120         <versionInfo include="true" fileDescription="${compiler:sys.fullName}" legalCopyright="${compiler:COPYRIGHT_MESSAGE}" internalName="${compiler:INTERNAL_ID}" productName="${compiler:sys.fullName}" />
121       </executable>
122       <splashScreen width="640" height="480" bitmapFile="${compiler:JALVIEW_DIR}/${compiler:BACKGROUND}" textOverlay="true">
123         <text>
124           <statusLine x="85" y="81" text="${compiler:sys.shortName}" fontSize="18" />
125           <versionLine x="85" y="109" text="version ${compiler:sys.version}" />
126         </text>
127       </splashScreen>
128       <java mainClass="com.threerings.getdown.launcher.GetdownApp" vmParameters="-Dinstaller_template_version=${compiler:INSTALLER_TEMPLATE_VERSION}" arguments="&quot;${launcher:sys.launcherDirectory}&quot; jalview">
129         <classPath>
130           <archive location="getdown-launcher.jar" />
131           <archive location="${compiler:GETDOWN_INSTALL_DIR}/getdown-launcher.jar" failOnError="false" />
132         </classPath>
133         <nativeLibraryDirectories>
134           <directory name="${compiler:JRE_DIR}/bin" />
135           <directory name="${compiler:GETDOWN_DIST_DIR}" />
136         </nativeLibraryDirectories>
137       </java>
138       <macStaticAssociationActions mode="selected">
139         <id>2350</id>
140         <id>2450</id>
141         <id>2641</id>
142       </macStaticAssociationActions>
143       <infoPlist>${compiler:file("${compiler:INFO_PLIST_FILE_ASSOCIATIONS_FILE}")}</infoPlist>
144       <iconImageFiles>
145         <file path="${compiler:JALVIEW_DIR}/${compiler:PNG_ICON_FILE}" />
146       </iconImageFiles>
147     </launcher>
148   </launchers>
149   <installerGui autoUpdateDescriptorUrl="https://www.jalview.org/install4j/updates.xml">
150     <applications>
151       <application id="installer" beanClass="com.install4j.runtime.beans.applications.InstallerApplication" styleId="35" customIcnsFile="${compiler:JALVIEW_DIR}/${compiler:MAC_ICONS_FILE}" customIcoFile="${compiler:JALVIEW_DIR}/${compiler:WINDOWS_ICONS_FILE}">
152         <serializedBean>
153           <property name="useCustomIcon" type="boolean" value="true" />
154         </serializedBean>
155         <styleOverrides>
156           <styleOverride name="Customize banner image" enabled="true">
157             <group id="146" beanClass="com.install4j.runtime.beans.groups.VerticalFormComponentGroup" useExternalParametrization="true" externalParametrizationName="Customize banner image" externalParametrizationMode="include">
158               <serializedBean>
159                 <property name="backgroundColor">
160                   <object class="com.install4j.runtime.beans.LightOrDarkColor">
161                     <object class="java.awt.Color">
162                       <int>255</int>
163                       <int>255</int>
164                       <int>255</int>
165                       <int>255</int>
166                     </object>
167                     <object class="java.awt.Color">
168                       <int>49</int>
169                       <int>52</int>
170                       <int>53</int>
171                       <int>255</int>
172                     </object>
173                   </object>
174                 </property>
175                 <property name="borderSides">
176                   <object class="com.install4j.runtime.beans.formcomponents.BorderSides">
177                     <property name="bottom" type="boolean" value="true" />
178                   </object>
179                 </property>
180                 <property name="imageEdgeBackgroundColor">
181                   <object class="java.awt.Color">
182                     <int>255</int>
183                     <int>255</int>
184                     <int>255</int>
185                     <int>255</int>
186                   </object>
187                 </property>
188                 <property name="imageEdgeBorder" type="boolean" value="true" />
189                 <property name="imageFile">
190                   <object class="com.install4j.api.beans.ExternalFile">
191                     <string>${compiler:JALVIEW_DIR}/${compiler:BACKGROUND}</string>
192                   </object>
193                 </property>
194                 <property name="insets">
195                   <object class="java.awt.Insets">
196                     <int>5</int>
197                     <int>10</int>
198                     <int>10</int>
199                     <int>10</int>
200                   </object>
201                 </property>
202               </serializedBean>
203               <externalParametrizationPropertyNames>
204                 <propertyName>imageAnchor</propertyName>
205                 <propertyName>imageEdgeBackgroundColor</propertyName>
206                 <propertyName>imageFile</propertyName>
207               </externalParametrizationPropertyNames>
208             </group>
209           </styleOverride>
210           <styleOverride name="Jalview" enabled="true">
211             <formComponent name="Watermark" id="352" beanClass="com.install4j.runtime.beans.formcomponents.SeparatorComponent" insetTop="0" insetLeft="5" insetBottom="0" useExternalParametrization="true" externalParametrizationName="Jalview" externalParametrizationMode="include">
212               <serializedBean>
213                 <property name="enabledTitleText" type="boolean" value="false" />
214               </serializedBean>
215               <externalParametrizationPropertyNames>
216                 <propertyName>labelText</propertyName>
217               </externalParametrizationPropertyNames>
218             </formComponent>
219           </styleOverride>
220         </styleOverrides>
221         <startup>
222           <screen id="1" beanClass="com.install4j.runtime.beans.screens.StartupScreen" rollbackBarrierExitCode="0">
223             <actions>
224               <action id="22" beanClass="com.install4j.runtime.beans.actions.misc.RequestPrivilegesAction" actionElevationType="none" rollbackBarrierExitCode="0">
225                 <serializedBean>
226                   <property name="obtainIfAdminWin" type="boolean" value="false" />
227                 </serializedBean>
228               </action>
229               <action name="Set unixUserBinDir (Linux or Unix)" id="2738" beanClass="com.install4j.runtime.beans.actions.control.SetVariableAction" rollbackBarrierExitCode="0">
230                 <serializedBean>
231                   <property name="script">
232                     <object class="com.install4j.api.beans.ScriptProperty">
233                       <property name="value" type="string">String userHome = (String)context.getVariable("sys.userHome");
234
235 ArrayList&lt;String&gt; tryPaths = new ArrayList&lt;&gt; ();
236 tryPaths.add(userHome + File.separator + "bin");
237 tryPaths.add(userHome + File.separator + ".local" + File.separator + "bin");
238 tryPaths.add(userHome + File.separator + "local" + File.separator + "bin");
239 tryPaths.add(userHome + File.separator + "opt" + File.separator + "bin");
240
241 if (Util.isMacOS()) { // &amp;&amp; root permission?
242     tryPaths.add(File.separator + "usr" + File.separator + "local" + File.separator + "bin"); 
243 }
244
245 for (int i = 0; i &lt; tryPaths.size(); i++) {
246     String tryPath = tryPaths.get(i);
247     File unixUserBinDir = new File(tryPath);
248     if (unixUserBinDir.exists()) {
249         return tryPath;
250     }
251 }
252
253 return null;
254 </property>
255                     </object>
256                   </property>
257                   <property name="variableName" type="string">unixUserBinDir</property>
258                 </serializedBean>
259                 <condition>Util.isLinux() || Util.isUnixInstaller() || Util.isMacOS()</condition>
260               </action>
261               <action name="Set macWrapperLinkLocation (macOS)" id="2745" beanClass="com.install4j.runtime.beans.actions.control.SetVariableAction" rollbackBarrierExitCode="0">
262                 <serializedBean>
263                   <property name="script">
264                     <object class="com.install4j.api.beans.ScriptProperty">
265                       <property name="value" type="string">String javaHome = System.getProperty("java.home");
266 String appName = ((String)context.getCompilerVariable("JALVIEW_APPLICATION_NAME")) + ".app";
267 int i = javaHome.indexOf(appName);
268 String wrapperLink = null;
269 if (i &gt; -1) {
270     wrapperLink = javaHome.substring(0, i) + appName + File.separator + "Contents" + File.separator + "MacOS" + File.separator + ((String)context.getCompilerVariable("WRAPPER_LINK"));
271 }
272 return wrapperLink;
273 </property>
274                     </object>
275                   </property>
276                   <property name="variableName" type="string">macWrapperLinkLocation</property>
277                 </serializedBean>
278                 <condition>Util.isMacOS()</condition>
279               </action>
280             </actions>
281           </screen>
282         </startup>
283         <screens>
284           <screen id="2" beanClass="com.install4j.runtime.beans.screens.WelcomeScreen" rollbackBarrierExitCode="0">
285             <styleOverrides>
286               <styleOverride name="Customize banner image" enabled="true">
287                 <group id="145" beanClass="com.install4j.runtime.beans.groups.VerticalFormComponentGroup" useExternalParametrization="true" externalParametrizationName="Customize banner image" externalParametrizationMode="include">
288                   <serializedBean>
289                     <property name="backgroundColor">
290                       <object class="com.install4j.runtime.beans.LightOrDarkColor">
291                         <object class="java.awt.Color">
292                           <int>255</int>
293                           <int>255</int>
294                           <int>255</int>
295                           <int>255</int>
296                         </object>
297                         <object class="java.awt.Color">
298                           <int>49</int>
299                           <int>52</int>
300                           <int>53</int>
301                           <int>255</int>
302                         </object>
303                       </object>
304                     </property>
305                     <property name="borderSides">
306                       <object class="com.install4j.runtime.beans.formcomponents.BorderSides">
307                         <property name="bottom" type="boolean" value="true" />
308                       </object>
309                     </property>
310                     <property name="imageEdgeBackgroundColor">
311                       <object class="com.install4j.runtime.beans.LightOrDarkColor">
312                         <object class="java.awt.Color">
313                           <int>25</int>
314                           <int>143</int>
315                           <int>220</int>
316                           <int>255</int>
317                         </object>
318                         <object class="java.awt.Color">
319                           <int>0</int>
320                           <int>74</int>
321                           <int>151</int>
322                           <int>255</int>
323                         </object>
324                       </object>
325                     </property>
326                     <property name="imageEdgeBorder" type="boolean" value="true" />
327                     <property name="imageFile">
328                       <object class="com.install4j.api.beans.ExternalFile">
329                         <string>${compiler:JALVIEW_DIR}/${compiler:BACKGROUND}</string>
330                       </object>
331                     </property>
332                     <property name="insets">
333                       <object class="java.awt.Insets">
334                         <int>5</int>
335                         <int>10</int>
336                         <int>10</int>
337                         <int>10</int>
338                       </object>
339                     </property>
340                   </serializedBean>
341                   <externalParametrizationPropertyNames>
342                     <propertyName>imageAnchor</propertyName>
343                     <propertyName>imageEdgeBackgroundColor</propertyName>
344                     <propertyName>imageFile</propertyName>
345                   </externalParametrizationPropertyNames>
346                 </group>
347               </styleOverride>
348             </styleOverrides>
349             <actions>
350               <action id="7" beanClass="com.install4j.runtime.beans.actions.misc.LoadResponseFileAction" rollbackBarrierExitCode="0" multiExec="true">
351                 <serializedBean>
352                   <property name="excludedVariables" type="array" elementType="string" length="1">
353                     <element index="0">sys.installationDir</element>
354                   </property>
355                 </serializedBean>
356                 <condition>context.getBooleanVariable("sys.confirmedUpdateInstallation")</condition>
357               </action>
358             </actions>
359             <formComponents>
360               <formComponent id="3" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent">
361                 <serializedBean>
362                   <property name="labelText" type="string">${form:welcomeMessage}</property>
363                 </serializedBean>
364                 <visibilityScript>!context.isConsole()</visibilityScript>
365               </formComponent>
366               <formComponent id="4" beanClass="com.install4j.runtime.beans.formcomponents.ConsoleHandlerFormComponent">
367                 <serializedBean>
368                   <property name="consoleScript">
369                     <object class="com.install4j.api.beans.ScriptProperty">
370                       <property name="value" type="string">String message = context.getMessage("ConsoleWelcomeLabel", context.getApplicationName());
371 return console.askOkCancel(message, true);
372 </property>
373                     </object>
374                   </property>
375                 </serializedBean>
376               </formComponent>
377               <formComponent id="5" beanClass="com.install4j.runtime.beans.formcomponents.UpdateAlertComponent" useExternalParametrization="true" externalParametrizationName="Update Alert" externalParametrizationMode="include">
378                 <externalParametrizationPropertyNames>
379                   <propertyName>updateCheck</propertyName>
380                 </externalParametrizationPropertyNames>
381               </formComponent>
382               <formComponent id="6" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent" insetTop="20">
383                 <serializedBean>
384                   <property name="labelText" type="string">${i18n:ClickNext}</property>
385                 </serializedBean>
386               </formComponent>
387             </formComponents>
388           </screen>
389           <screen id="8" beanClass="com.install4j.runtime.beans.screens.InstallationDirectoryScreen" rollbackBarrierExitCode="0">
390             <condition>!context.getBooleanVariable("sys.confirmedUpdateInstallation")</condition>
391             <actions>
392               <action id="11" beanClass="com.install4j.runtime.beans.actions.misc.LoadResponseFileAction" rollbackBarrierExitCode="0" multiExec="true">
393                 <serializedBean>
394                   <property name="excludedVariables" type="array" elementType="string" length="1">
395                     <element index="0">sys.installationDir</element>
396                   </property>
397                 </serializedBean>
398                 <condition>context.getVariable("sys.responseFile") == null</condition>
399               </action>
400             </actions>
401             <formComponents>
402               <formComponent id="9" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent" insetBottom="25">
403                 <serializedBean>
404                   <property name="labelText" type="string">${i18n:SelectDirLabel(${compiler:sys.fullName})}</property>
405                 </serializedBean>
406               </formComponent>
407               <formComponent id="10" beanClass="com.install4j.runtime.beans.formcomponents.InstallationDirectoryChooserComponent" useExternalParametrization="true" externalParametrizationName="Installation Directory Chooser" externalParametrizationMode="include">
408                 <serializedBean>
409                   <property name="requestFocus" type="boolean" value="true" />
410                 </serializedBean>
411                 <externalParametrizationPropertyNames>
412                   <propertyName>allowSpacesOnUnix</propertyName>
413                   <propertyName>checkFreeSpace</propertyName>
414                   <propertyName>checkWritable</propertyName>
415                   <propertyName>existingDirWarning</propertyName>
416                   <propertyName>manualEntryAllowed</propertyName>
417                   <propertyName>showFreeDiskSpace</propertyName>
418                   <propertyName>showRequiredDiskSpace</propertyName>
419                   <propertyName>standardValidation</propertyName>
420                   <propertyName>suggestAppDir</propertyName>
421                   <propertyName>validateApplicationId</propertyName>
422                   <propertyName>validationScript</propertyName>
423                 </externalParametrizationPropertyNames>
424               </formComponent>
425             </formComponents>
426           </screen>
427           <screen id="12" beanClass="com.install4j.runtime.beans.screens.ComponentsScreen" enabled="false" rollbackBarrierExitCode="0">
428             <formComponents>
429               <formComponent id="13" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent">
430                 <serializedBean>
431                   <property name="labelText" type="string">${i18n:SelectComponentsLabel2}</property>
432                 </serializedBean>
433                 <visibilityScript>!context.isConsole()</visibilityScript>
434               </formComponent>
435               <formComponent id="14" beanClass="com.install4j.runtime.beans.formcomponents.ComponentSelectorComponent" useExternalParametrization="true" externalParametrizationName="Installation Components" externalParametrizationMode="include">
436                 <serializedBean>
437                   <property name="fillVertical" type="boolean" value="true" />
438                 </serializedBean>
439                 <externalParametrizationPropertyNames>
440                   <propertyName>selectionChangedScript</propertyName>
441                 </externalParametrizationPropertyNames>
442               </formComponent>
443             </formComponents>
444           </screen>
445           <screen id="1692" beanClass="com.install4j.runtime.beans.screens.FileAssociationsScreen" rollbackBarrierExitCode="0">
446             <formComponents>
447               <formComponent id="1693" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent">
448                 <serializedBean>
449                   <property name="labelText" type="string">${i18n:SelectAssociationsLabel}</property>
450                 </serializedBean>
451               </formComponent>
452               <formComponent id="1694" beanClass="com.install4j.runtime.beans.formcomponents.FileAssociationsComponent" useExternalParametrization="true" externalParametrizationName="File Associations" externalParametrizationMode="include">
453                 <serializedBean>
454                   <property name="fillVertical" type="boolean" value="true" />
455                   <property name="selectionButtonPosition" type="enum" class="com.install4j.runtime.beans.formcomponents.VerticalDockingPosition" value="TOP" />
456                   <property name="showSelectionButtons" type="boolean" value="true" />
457                 </serializedBean>
458                 <externalParametrizationPropertyNames>
459                   <propertyName>showSelectionButtons</propertyName>
460                   <propertyName>selectionButtonPosition</propertyName>
461                 </externalParametrizationPropertyNames>
462               </formComponent>
463             </formComponents>
464           </screen>
465           <screen id="15" beanClass="com.install4j.runtime.beans.screens.InstallationScreen" rollbackBarrier="true" rollbackBarrierExitCode="0">
466             <actions>
467               <action id="17" beanClass="com.install4j.runtime.beans.actions.InstallFilesAction" actionElevationType="elevated" rollbackBarrierExitCode="0" failureStrategy="quit" errorMessage="${i18n:FileCorrupted}" />
468               <action name="Create program group (RELEASE)" id="18" customizedId="PROGRAM_GROUP_RELEASE" beanClass="com.install4j.runtime.beans.actions.desktop.CreateProgramGroupAction" actionElevationType="elevated" rollbackBarrierExitCode="0">
469                 <serializedBean>
470                   <property name="allUsers" type="boolean" value="false" />
471                   <property name="categories" type="string">${compiler:APPLICATION_CATEGORIES}</property>
472                   <property name="programGroupEntryConfigs">
473                     <add>
474                       <object class="com.install4j.runtime.beans.screens.components.ProgramGroupFileConfig">
475                         <property name="name" type="string">Examples</property>
476                         <property name="target">
477                           <object class="java.io.File">
478                             <string>examples</string>
479                           </object>
480                         </property>
481                       </object>
482                     </add>
483                   </property>
484                   <property name="programGroupName" type="string">${compiler:JALVIEW_NAME}</property>
485                   <property name="uninstallerMenuName" type="string">${i18n:UninstallerMenuEntry(${compiler:sys.fullName})}</property>
486                 </serializedBean>
487                 <condition>!context.getBooleanVariable("sys.programGroupDisabled")</condition>
488               </action>
489               <action name="Create program group (NON-RELEASE)" id="2730" customizedId="PROGRAM_GROUP_NON_RELEASE" beanClass="com.install4j.runtime.beans.actions.desktop.CreateProgramGroupAction" actionElevationType="elevated" rollbackBarrierExitCode="0">
490                 <serializedBean>
491                   <property name="allUsers" type="boolean" value="false" />
492                   <property name="categories" type="string">${compiler:APPLICATION_CATEGORIES}</property>
493                   <property name="programGroupName" type="string">${compiler:JALVIEW_NAME}</property>
494                   <property name="uninstallerMenuName" type="string">${i18n:UninstallerMenuEntry(${compiler:sys.fullName})}</property>
495                 </serializedBean>
496                 <condition>!context.getBooleanVariable("sys.programGroupDisabled")</condition>
497               </action>
498               <action id="19" beanClass="com.install4j.runtime.beans.actions.desktop.RegisterAddRemoveAction" actionElevationType="elevated" rollbackBarrierExitCode="0">
499                 <serializedBean>
500                   <property name="itemName" type="string">${compiler:sys.fullName} ${compiler:sys.version}</property>
501                 </serializedBean>
502               </action>
503               <action id="124" beanClass="com.install4j.runtime.beans.actions.control.SetVariableAction" enabled="false" rollbackBarrierExitCode="0">
504                 <serializedBean>
505                   <property name="script">
506                     <object class="com.install4j.api.beans.ScriptProperty">
507                       <property name="value" type="string" />
508                     </object>
509                   </property>
510                   <property name="variableName" type="string" />
511                 </serializedBean>
512                 <condition>true</condition>
513               </action>
514               <action id="134" beanClass="com.install4j.runtime.beans.actions.misc.AddVmOptionsAction" enabled="false" actionElevationType="elevated" rollbackBarrierExitCode="0">
515                 <serializedBean>
516                   <property name="launcherId" type="string">121</property>
517                   <property name="vmOptions" type="array" elementType="string" length="0" />
518                 </serializedBean>
519               </action>
520               <group name="File Associations" id="2251" beanClass="com.install4j.runtime.beans.groups.ActionGroup">
521                 <beans>
522                   <action id="2253" beanClass="com.install4j.runtime.beans.actions.control.SetMessageAction" actionElevationType="none" rollbackBarrierExitCode="0">
523                     <serializedBean>
524                       <property name="statusMessage" type="string">Creating file associations...</property>
525                       <property name="useDetail" type="boolean" value="true" />
526                       <property name="useStatus" type="boolean" value="true" />
527                     </serializedBean>
528                   </action>
529                   <action id="2254" beanClass="com.install4j.runtime.beans.actions.control.SetProgressAction" actionElevationType="none" rollbackBarrierExitCode="0">
530                     <serializedBean>
531                       <property name="progressChangeType" type="enum" class="com.install4j.runtime.beans.actions.control.ProgressChangeType" value="SET_INDETERMINATE" />
532                     </serializedBean>
533                   </action>
534                   <group name="File Associations Replacement Group" id="2753" customizedId="EXTENSIONS_REPLACED_BY_GRADLE_PARENT_GROUP" beanClass="com.install4j.runtime.beans.groups.ActionGroup">
535                     <beans>
536                       <action name="EXTENSIONS_REPLACED_BY_GRADLE" id="1691" customizedId="EXTENSIONS" beanClass="com.install4j.runtime.beans.actions.desktop.CreateFileAssociationAction" actionElevationType="elevated" rollbackBarrierExitCode="0">
537                         <serializedBean>
538                           <property name="description" type="string">This action, identified by its name "EXTENSIONS_REPLACED_BY_GRADLE", will be replaced by gradle with the contents of file 'file_associations_auto_install4j.xml'.</property>
539                           <property name="extension" type="string">extensions_to_be_replaced_by_gradle</property>
540                           <property name="launcherId" type="string">JALVIEW</property>
541                         </serializedBean>
542                       </action>
543                     </beans>
544                   </group>
545                   <action id="2542" beanClass="com.install4j.runtime.beans.actions.control.SetMessageAction" actionElevationType="none" rollbackBarrierExitCode="0">
546                     <serializedBean>
547                       <property name="statusMessage" type="string">Finished creating file associations</property>
548                       <property name="useDetail" type="boolean" value="true" />
549                       <property name="useStatus" type="boolean" value="true" />
550                     </serializedBean>
551                   </action>
552                   <action id="2541" beanClass="com.install4j.runtime.beans.actions.control.SetProgressAction" actionElevationType="none" rollbackBarrierExitCode="0">
553                     <serializedBean>
554                       <property name="percentValue" type="int" value="100" />
555                     </serializedBean>
556                   </action>
557                 </beans>
558               </group>
559               <action id="2350" beanClass="com.install4j.runtime.beans.actions.desktop.UrlHandlerAction" actionElevationType="elevated" rollbackBarrierExitCode="0">
560                 <serializedBean>
561                   <property name="launcherId" type="string">JALVIEW</property>
562                   <property name="scheme" type="string">jalview</property>
563                 </serializedBean>
564               </action>
565               <action id="2450" beanClass="com.install4j.runtime.beans.actions.desktop.UrlHandlerAction" actionElevationType="elevated" rollbackBarrierExitCode="0">
566                 <serializedBean>
567                   <property name="launcherId" type="string">JALVIEW</property>
568                   <property name="scheme" type="string">jalviews</property>
569                 </serializedBean>
570               </action>
571               <action id="2641" beanClass="com.install4j.runtime.beans.actions.desktop.UrlHandlerAction" actionElevationType="elevated" rollbackBarrierExitCode="0">
572                 <serializedBean>
573                   <property name="launcherId" type="string">JALVIEW</property>
574                   <property name="scheme" type="string">${compiler:EXTRA_SCHEME}</property>
575                 </serializedBean>
576               </action>
577             </actions>
578             <formComponents>
579               <formComponent id="16" beanClass="com.install4j.runtime.beans.formcomponents.ProgressComponent">
580                 <serializedBean>
581                   <property name="initialStatusMessage" type="string">${i18n:WizardPreparing}</property>
582                 </serializedBean>
583               </formComponent>
584             </formComponents>
585           </screen>
586           <screen id="20" beanClass="com.install4j.runtime.beans.screens.FinishedScreen" rollbackBarrierExitCode="0" finishScreen="true">
587             <actions>
588               <action id="2012" beanClass="com.install4j.runtime.beans.actions.desktop.CreateStartMenuEntryAction" actionElevationType="elevated" rollbackBarrierExitCode="0">
589                 <serializedBean>
590                   <property name="allUsers" type="boolean" value="false" />
591                   <property name="categories" type="string">${compiler:APPLICATION_CATEGORIES}</property>
592                   <property name="entryName" type="string">${compiler:JALVIEW_APPLICATION_NAME}</property>
593                   <property name="file">
594                     <object class="java.io.File">
595                       <string>${installer:sys.contentDir}/${compiler:EXECUTABLE_NAME}</string>
596                     </object>
597                   </property>
598                   <property name="icon">
599                     <object class="com.install4j.api.beans.ExternalFile">
600                       <string>${compiler:JALVIEW_DIR}/${compiler:WINDOWS_ICONS_FILE}</string>
601                     </object>
602                   </property>
603                   <property name="programGroupName" type="string">${compiler:JALVIEW_NAME}</property>
604                   <property name="unixIconFile">
605                     <object class="com.install4j.api.beans.ExternalFile">
606                       <string>${compiler:JALVIEW_DIR}/${compiler:PNG_ICON_FILE}</string>
607                     </object>
608                   </property>
609                 </serializedBean>
610                 <condition>!context.getBooleanVariable("sys.programGroupDisabled")</condition>
611               </action>
612               <action id="573" beanClass="com.install4j.runtime.beans.actions.desktop.CreateDesktopLinkAction" actionElevationType="elevated" rollbackBarrierExitCode="0" errorMessage="Could not make desktop link">
613                 <serializedBean>
614                   <property name="allUsers" type="boolean" value="false" />
615                   <property name="description" type="string">${compiler:JALVIEW_APPLICATION_NAME}</property>
616                   <property name="file">
617                     <object class="java.io.File">
618                       <string>${installer:sys.contentDir}/${compiler:EXECUTABLE_NAME}</string>
619                     </object>
620                   </property>
621                   <property name="name" type="string">${compiler:JALVIEW_APPLICATION_NAME}</property>
622                   <property name="unixIconFile">
623                     <object class="com.install4j.api.beans.ExternalFile">
624                       <string>${compiler:JALVIEW_DIR}/${compiler:PNG_ICON_FILE}</string>
625                     </object>
626                   </property>
627                   <property name="winIconFile">
628                     <object class="com.install4j.api.beans.ExternalFile">
629                       <string>${compiler:JALVIEW_DIR}/${compiler:WINDOWS_ICONS_FILE}</string>
630                     </object>
631                   </property>
632                 </serializedBean>
633                 <condition>context.getBooleanVariable("createDesktopLinkAction")</condition>
634               </action>
635               <action id="576" beanClass="com.install4j.runtime.beans.actions.desktop.AddToDockAction" actionElevationType="none" rollbackBarrierExitCode="0">
636                 <serializedBean>
637                   <property name="executable">
638                     <object class="java.io.File">
639                       <string>${compiler:JALVIEW_APPLICATION_NAME}.app</string>
640                     </object>
641                   </property>
642                 </serializedBean>
643                 <condition>context.getBooleanVariable("addToDockAction")</condition>
644               </action>
645               <action name="Linux/Unix symlink" id="2733" beanClass="com.install4j.runtime.beans.actions.files.CreateSymlinkAction" actionElevationType="elevated" rollbackBarrierExitCode="0" errorMessage="Could not make symlink to wrapper script">
646                 <serializedBean>
647                   <property name="file">
648                     <object class="java.io.File">
649                       <string>${compiler:WRAPPER_SCRIPT_BIN_DIR}/${compiler:BASH_WRAPPER_SCRIPT}</string>
650                     </object>
651                   </property>
652                   <property name="linkFile">
653                     <object class="java.io.File">
654                       <string>${compiler:WRAPPER_SCRIPT_BIN_DIR}/${compiler:WRAPPER_LINK}</string>
655                     </object>
656                   </property>
657                 </serializedBean>
658                 <condition>Util.isLinux() || Util.isUnixInstaller() || Util.isMacOS()</condition>
659               </action>
660               <action name="Add Jalview bin to the user's path (Windows)" id="2740" beanClass="com.install4j.runtime.beans.actions.misc.ModifyEnvironmentVariableAction" actionElevationType="elevated" rollbackBarrierExitCode="0" errorMessage="Could not add &quot;${installer:sys.contentDir}\${compiler:WRAPPER_SCRIPT_BIN_DIR}&quot; to the Path environment variable">
661                 <serializedBean>
662                   <property name="type" type="enum" class="com.install4j.runtime.beans.actions.misc.ModifyStringType" value="APPEND" />
663                   <property name="value" type="string">${installer:sys.contentDir}\${compiler:WRAPPER_SCRIPT_BIN_DIR}</property>
664                   <property name="variableName" type="string">Path</property>
665                 </serializedBean>
666                 <condition>context.getBooleanVariable("appendToPathAction")</condition>
667               </action>
668               <action name="Create Linux/Unix symbolic link to jalview.sh in user's local bin" id="2739" beanClass="com.install4j.runtime.beans.actions.files.CreateSymlinkAction" actionElevationType="elevated" rollbackBarrierExitCode="0" errorMessage="Could not make a ${compiler:WRAPPER_LINK} symbolic link in ~/${installer:unixUserBinDir}">
669                 <serializedBean>
670                   <property name="file">
671                     <object class="java.io.File">
672                       <string>${installer:sys.contentDir}/${compiler:WRAPPER_SCRIPT_BIN_DIR}/${compiler:BASH_WRAPPER_SCRIPT}</string>
673                     </object>
674                   </property>
675                   <property name="linkFile">
676                     <object class="java.io.File">
677                       <string>${installer:unixUserBinDir}/${compiler:WRAPPER_LINK}</string>
678                     </object>
679                   </property>
680                 </serializedBean>
681                 <condition>context.getBooleanVariable("makeSymbolicLinkAction") &amp;&amp; ( Util.isLinux() || Util.isUnixInstaller() ) &amp;&amp; ( context.getVariable("unixUserBinDir") != null )</condition>
682               </action>
683               <action name="Create macOS symbolic link to jalview in user's local bin" id="2743" beanClass="com.install4j.runtime.beans.actions.files.CreateSymlinkAction" actionElevationType="elevated" rollbackBarrierExitCode="0" errorMessage="Could not make a ${compiler:WRAPPER_LINK} symbolic link in ~/${installer:unixUserBinDir}">
684                 <serializedBean>
685                   <property name="file">
686                     <object class="java.io.File">
687                       <string>${installer:macWrapperLinkLocation}</string>
688                     </object>
689                   </property>
690                   <property name="linkFile">
691                     <object class="java.io.File">
692                       <string>${installer:unixUserBinDir}/${compiler:WRAPPER_LINK}</string>
693                     </object>
694                   </property>
695                 </serializedBean>
696                 <condition>context.getBooleanVariable("makeSymbolicLinkAction") &amp;&amp; Util.isMacOS() &amp;&amp; ( context.getVariable("unixUserBinDir") != null ) &amp;&amp; ( context.getVariable("macWrapperLinkLocation") != null )</condition>
697               </action>
698             </actions>
699             <formComponents>
700               <formComponent id="21" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent" insetBottom="10">
701                 <serializedBean>
702                   <property name="labelText" type="string">${form:finishedMessage}</property>
703                 </serializedBean>
704               </formComponent>
705               <formComponent name="Add a desktop link" id="574" beanClass="com.install4j.runtime.beans.formcomponents.CheckboxComponent">
706                 <serializedBean>
707                   <property name="checkboxText" type="string">${i18n:CreateDesktopIcon}</property>
708                   <property name="initiallySelected" type="boolean" value="true" />
709                   <property name="variableName" type="string">createDesktopLinkAction</property>
710                 </serializedBean>
711                 <visibilityScript>!Util.isMacOS()</visibilityScript>
712               </formComponent>
713               <formComponent name="Add an executable to the dock" id="577" beanClass="com.install4j.runtime.beans.formcomponents.CheckboxComponent">
714                 <serializedBean>
715                   <property name="checkboxText" type="string">${i18n:AddToDock}</property>
716                   <property name="initiallySelected" type="boolean" value="true" />
717                   <property name="variableName" type="string">addToDockAction</property>
718                 </serializedBean>
719                 <visibilityScript>Util.isMacOS()</visibilityScript>
720               </formComponent>
721               <formComponent name="Add jalview bin to the user's Path environment variable (Windows)" id="2734" beanClass="com.install4j.runtime.beans.formcomponents.CheckboxComponent">
722                 <serializedBean>
723                   <property name="checkboxText" type="string">Add ${compiler:JALVIEW_APPLICATION_NAME}'s bin folder to the Path environment variable</property>
724                   <property name="initiallySelected" type="boolean" value="true" />
725                   <property name="variableName" type="string">appendToPathAction</property>
726                 </serializedBean>
727                 <visibilityScript>Util.isWindows()</visibilityScript>
728               </formComponent>
729               <formComponent name="Make a symbolic link to jalview.sh bash script in the user's local bin (Linux or Unix)" id="2736" beanClass="com.install4j.runtime.beans.formcomponents.CheckboxComponent">
730                 <serializedBean>
731                   <property name="checkboxText" type="string">Make a ${compiler:WRAPPER_LINK} symbolic link in ${installer:unixUserBinDir}</property>
732                   <property name="initiallySelected" type="boolean" value="true" />
733                   <property name="variableName" type="string">makeSymbolicLinkAction</property>
734                 </serializedBean>
735                 <visibilityScript>( Util.isLinux() || Util.isUnixInstaller() || ( Util.isMacOS() &amp;&amp; ( context.getVariable("macWrapperLinkLocation") != null ) ) ) &amp;&amp; ( context.getVariable("unixUserBinDir") != null )</visibilityScript>
736               </formComponent>
737             </formComponents>
738           </screen>
739         </screens>
740       </application>
741       <application id="uninstaller" beanClass="com.install4j.runtime.beans.applications.UninstallerApplication" styleId="35">
742         <serializedBean>
743           <property name="customMacosExecutableName" type="string">${i18n:UninstallerMenuEntry(${compiler:sys.fullName})}</property>
744           <property name="useCustomMacosExecutableName" type="boolean" value="true" />
745         </serializedBean>
746         <styleOverrides>
747           <styleOverride name="Customize banner image" enabled="true">
748             <group id="147" beanClass="com.install4j.runtime.beans.groups.VerticalFormComponentGroup" useExternalParametrization="true" externalParametrizationName="Customize banner image" externalParametrizationMode="include">
749               <serializedBean>
750                 <property name="backgroundColor">
751                   <object class="com.install4j.runtime.beans.LightOrDarkColor">
752                     <object class="java.awt.Color">
753                       <int>255</int>
754                       <int>255</int>
755                       <int>255</int>
756                       <int>255</int>
757                     </object>
758                     <object class="java.awt.Color">
759                       <int>49</int>
760                       <int>52</int>
761                       <int>53</int>
762                       <int>255</int>
763                     </object>
764                   </object>
765                 </property>
766                 <property name="borderSides">
767                   <object class="com.install4j.runtime.beans.formcomponents.BorderSides">
768                     <property name="bottom" type="boolean" value="true" />
769                   </object>
770                 </property>
771                 <property name="imageEdgeBackgroundColor">
772                   <object class="java.awt.Color">
773                     <int>192</int>
774                     <int>192</int>
775                     <int>192</int>
776                     <int>255</int>
777                   </object>
778                 </property>
779                 <property name="imageEdgeBorder" type="boolean" value="true" />
780                 <property name="imageFile">
781                   <object class="com.install4j.api.beans.ExternalFile">
782                     <string>${compiler:JALVIEW_DIR}/${compiler:BACKGROUND}</string>
783                   </object>
784                 </property>
785                 <property name="insets">
786                   <object class="java.awt.Insets">
787                     <int>5</int>
788                     <int>10</int>
789                     <int>10</int>
790                     <int>10</int>
791                   </object>
792                 </property>
793               </serializedBean>
794               <externalParametrizationPropertyNames>
795                 <propertyName>imageAnchor</propertyName>
796                 <propertyName>imageEdgeBackgroundColor</propertyName>
797                 <propertyName>imageFile</propertyName>
798               </externalParametrizationPropertyNames>
799             </group>
800           </styleOverride>
801         </styleOverrides>
802         <startup>
803           <screen id="23" beanClass="com.install4j.runtime.beans.screens.StartupScreen" rollbackBarrierExitCode="0">
804             <actions>
805               <action id="33" beanClass="com.install4j.runtime.beans.actions.misc.LoadResponseFileAction" rollbackBarrierExitCode="0" />
806               <action id="34" beanClass="com.install4j.runtime.beans.actions.misc.RequireInstallerPrivilegesAction" actionElevationType="none" rollbackBarrierExitCode="0" />
807             </actions>
808           </screen>
809         </startup>
810         <screens>
811           <screen id="24" beanClass="com.install4j.runtime.beans.screens.UninstallWelcomeScreen" rollbackBarrierExitCode="0">
812             <formComponents>
813               <formComponent id="25" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent" insetBottom="10">
814                 <serializedBean>
815                   <property name="labelText" type="string">${form:welcomeMessage}</property>
816                 </serializedBean>
817                 <visibilityScript>!context.isConsole()</visibilityScript>
818               </formComponent>
819               <formComponent id="26" beanClass="com.install4j.runtime.beans.formcomponents.ConsoleHandlerFormComponent">
820                 <serializedBean>
821                   <property name="consoleScript">
822                     <object class="com.install4j.api.beans.ScriptProperty">
823                       <property name="value" type="string">String message = context.getMessage("ConfirmUninstall", context.getApplicationName());
824 return console.askYesNo(message, true);
825 </property>
826                     </object>
827                   </property>
828                 </serializedBean>
829               </formComponent>
830             </formComponents>
831           </screen>
832           <screen id="27" beanClass="com.install4j.runtime.beans.screens.UninstallationScreen" rollbackBarrierExitCode="0">
833             <actions>
834               <action id="659" beanClass="com.install4j.runtime.beans.actions.control.SetProgressAction" actionElevationType="none" rollbackBarrierExitCode="0">
835                 <serializedBean>
836                   <property name="progressChangeType" type="enum" class="com.install4j.runtime.beans.actions.control.ProgressChangeType" value="SET_INDETERMINATE" />
837                 </serializedBean>
838               </action>
839               <action id="29" beanClass="com.install4j.runtime.beans.actions.UninstallFilesAction" actionElevationType="elevated" rollbackBarrierExitCode="0" />
840               <action id="660" beanClass="com.install4j.runtime.beans.actions.control.SetProgressAction" enabled="false" actionElevationType="none" rollbackBarrierExitCode="0">
841                 <serializedBean>
842                   <property name="percentValue" type="int" value="95" />
843                 </serializedBean>
844               </action>
845               <action id="1525" beanClass="com.install4j.runtime.beans.actions.files.DeleteFileAction" actionElevationType="elevated" rollbackBarrierExitCode="0">
846                 <serializedBean>
847                   <property name="files" type="array" class="java.io.File" length="40">
848                     <element index="0">
849                       <object class="java.io.File">
850                         <string>jre</string>
851                       </object>
852                     </element>
853                     <element index="1">
854                       <object class="java.io.File">
855                         <string>jre.jar</string>
856                       </object>
857                     </element>
858                     <element index="2">
859                       <object class="java.io.File">
860                         <string>.install4j</string>
861                       </object>
862                     </element>
863                     <element index="3">
864                       <object class="java.io.File">
865                         <string>getdown-launcher.jar</string>
866                       </object>
867                     </element>
868                     <element index="4">
869                       <object class="java.io.File">
870                         <string>getdown-launcher-old.jar</string>
871                       </object>
872                     </element>
873                     <element index="5">
874                       <object class="java.io.File">
875                         <string>getdown-launcher-new.jar</string>
876                       </object>
877                     </element>
878                     <element index="6">
879                       <object class="java.io.File">
880                         <string>gettingdown.lock</string>
881                       </object>
882                     </element>
883                     <element index="7">
884                       <object class="java.io.File">
885                         <string>jre.zip</string>
886                       </object>
887                     </element>
888                     <element index="8">
889                       <object class="java.io.File">
890                         <string>digest.txt</string>
891                       </object>
892                     </element>
893                     <element index="9">
894                       <object class="java.io.File">
895                         <string>digest2.txt</string>
896                       </object>
897                     </element>
898                     <element index="10">
899                       <object class="java.io.File">
900                         <string>getdown-launcher.jarv</string>
901                       </object>
902                     </element>
903                     <element index="11">
904                       <object class="java.io.File">
905                         <string>getdown-launcher-new.jarv</string>
906                       </object>
907                     </element>
908                     <element index="12">
909                       <object class="java.io.File">
910                         <string>launcher.log</string>
911                       </object>
912                     </element>
913                     <element index="13">
914                       <object class="java.io.File">
915                         <string>proxy.txt</string>
916                       </object>
917                     </element>
918                     <element index="14">
919                       <object class="java.io.File">
920                         <string>build_properties</string>
921                       </object>
922                     </element>
923                     <element index="15">
924                       <object class="java.io.File">
925                         <string>channel_launch*.jvl</string>
926                       </object>
927                     </element>
928                     <element index="16">
929                       <object class="java.io.File">
930                         <string>jalview*.jvl</string>
931                       </object>
932                     </element>
933                     <element index="17">
934                       <object class="java.io.File">
935                         <string>*.jarv</string>
936                       </object>
937                     </element>
938                     <element index="18">
939                       <object class="java.io.File">
940                         <string>*.log</string>
941                       </object>
942                     </element>
943                     <element index="19">
944                       <object class="java.io.File">
945                         <string>*.txt</string>
946                       </object>
947                     </element>
948                     <element index="20">
949                       <object class="java.io.File">
950                         <string>*_new</string>
951                       </object>
952                     </element>
953                     <element index="21">
954                       <object class="java.io.File">
955                         <string>hs_err_*.*</string>
956                       </object>
957                     </element>
958                     <element index="22">
959                       <object class="java.io.File">
960                         <string>${compiler:GETDOWN_DIST_DIR}</string>
961                       </object>
962                     </element>
963                     <element index="23">
964                       <object class="java.io.File">
965                         <string>${compiler:GETDOWN_ALT_DIR}</string>
966                       </object>
967                     </element>
968                     <element index="24">
969                       <object class="java.io.File">
970                         <string>${compiler:GETDOWN_RESOURCE_DIR}</string>
971                       </object>
972                     </element>
973                     <element index="25">
974                       <object class="java.io.File">
975                         <string>META-INF</string>
976                       </object>
977                     </element>
978                     <element index="26">
979                       <object class="java.io.File">
980                         <string>install</string>
981                       </object>
982                     </element>
983                     <element index="27">
984                       <object class="java.io.File">
985                         <string>resource</string>
986                       </object>
987                     </element>
988                     <element index="28">
989                       <object class="java.io.File">
990                         <string>dist</string>
991                       </object>
992                     </element>
993                     <element index="29">
994                       <object class="java.io.File">
995                         <string>release</string>
996                       </object>
997                     </element>
998                     <element index="30">
999                       <object class="java.io.File">
1000                         <string>alt</string>
1001                       </object>
1002                     </element>
1003                     <element index="31">
1004                       <object class="java.io.File">
1005                         <string>dev</string>
1006                       </object>
1007                     </element>
1008                     <element index="32">
1009                       <object class="java.io.File">
1010                         <string>build</string>
1011                       </object>
1012                     </element>
1013                     <element index="33">
1014                       <object class="java.io.File">
1015                         <string>alt_*</string>
1016                       </object>
1017                     </element>
1018                     <element index="34">
1019                       <object class="java.io.File">
1020                         <string>dev_*</string>
1021                       </object>
1022                     </element>
1023                     <element index="35">
1024                       <object class="java.io.File">
1025                         <string>build_*</string>
1026                       </object>
1027                     </element>
1028                     <element index="36">
1029                       <object class="java.io.File">
1030                         <string>${compiler:WRAPPER_SCRIPT_BIN_DIR}</string>
1031                       </object>
1032                     </element>
1033                     <element index="37">
1034                       <object class="java.io.File">
1035                         <string>bin</string>
1036                       </object>
1037                     </element>
1038                     <element index="38">
1039                       <object class="java.io.File">
1040                         <string>channel.props</string>
1041                       </object>
1042                     </element>
1043                     <element index="39">
1044                       <object class="java.io.File">
1045                         <string>channel.propsv</string>
1046                       </object>
1047                     </element>
1048                   </property>
1049                   <property name="recursive" type="boolean" value="true" />
1050                 </serializedBean>
1051               </action>
1052               <action id="1791" beanClass="com.install4j.runtime.beans.actions.control.SetProgressAction" actionElevationType="none" rollbackBarrierExitCode="0">
1053                 <serializedBean>
1054                   <property name="percentValue" type="int" value="100" />
1055                 </serializedBean>
1056               </action>
1057             </actions>
1058             <formComponents>
1059               <formComponent id="28" beanClass="com.install4j.runtime.beans.formcomponents.ProgressComponent">
1060                 <serializedBean>
1061                   <property name="initialStatusMessage" type="string">${i18n:UninstallerPreparing}</property>
1062                 </serializedBean>
1063               </formComponent>
1064             </formComponents>
1065           </screen>
1066           <screen id="32" beanClass="com.install4j.runtime.beans.screens.UninstallFailureScreen" rollbackBarrierExitCode="0" finishScreen="true" />
1067           <screen id="30" beanClass="com.install4j.runtime.beans.screens.UninstallSuccessScreen" styleId="41" rollbackBarrierExitCode="0" finishScreen="true">
1068             <formComponents>
1069               <formComponent id="31" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent" insetBottom="10">
1070                 <serializedBean>
1071                   <property name="labelText" type="string">${form:successMessage}</property>
1072                 </serializedBean>
1073               </formComponent>
1074             </formComponents>
1075           </screen>
1076         </screens>
1077       </application>
1078       <application name="MacOS Setup" id="2746" beanClass="com.install4j.runtime.beans.applications.CustomApplication" fileset="734" macEntitlementsFile="${compiler:JALVIEW_DIR}/utils/osx_signing/entitlements.txt">
1079         <serializedBean>
1080           <property name="executableDirectory">
1081             <object class="java.io.File">
1082               <string>.</string>
1083             </object>
1084           </property>
1085           <property name="executableName" type="string">${compiler:WRAPPER_LINK}_setup</property>
1086           <property name="windowTitle" type="string">${compiler:sys.fullName}</property>
1087         </serializedBean>
1088         <startup>
1089           <screen id="2747" beanClass="com.install4j.runtime.beans.screens.StartupScreen" rollbackBarrierExitCode="0">
1090             <actions>
1091               <link id="2749" targetId="22" />
1092               <link id="2750" targetId="2738" />
1093               <link id="2751" targetId="2745" />
1094             </actions>
1095           </screen>
1096         </startup>
1097         <screens>
1098           <screen id="2772" beanClass="com.install4j.runtime.beans.screens.FormScreen" rollbackBarrierExitCode="0" backButton="hidden" finishScreen="true">
1099             <serializedBean>
1100               <property name="title" type="string">Running ${i18n:SetupAppTitle}</property>
1101             </serializedBean>
1102             <actions>
1103               <link id="2778" targetId="576" />
1104               <link id="2779" targetId="2743" />
1105             </actions>
1106             <formComponents>
1107               <formComponent id="2773" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent" insetBottom="10">
1108                 <serializedBean>
1109                   <property name="labelText" type="string">${i18n:FinishedLabel(${compiler:JALVIEW_APPLICATION_NAME})}</property>
1110                 </serializedBean>
1111               </formComponent>
1112               <formComponent name="Add an executable to the dock" id="2775" beanClass="com.install4j.runtime.beans.formcomponents.CheckboxComponent">
1113                 <serializedBean>
1114                   <property name="checkboxText" type="string">${i18n:AddToDock}</property>
1115                   <property name="initiallySelected" type="boolean" value="true" />
1116                   <property name="variableName" type="string">addToDockAction</property>
1117                 </serializedBean>
1118                 <visibilityScript>Util.isMacOS()</visibilityScript>
1119               </formComponent>
1120               <formComponent name="Make a symbolic link to jalview.sh bash script in the user's local bin (Linux or Unix)" id="2777" beanClass="com.install4j.runtime.beans.formcomponents.CheckboxComponent">
1121                 <serializedBean>
1122                   <property name="checkboxText" type="string">Make a ${compiler:WRAPPER_LINK} symbolic link in ${installer:unixUserBinDir}</property>
1123                   <property name="initiallySelected" type="boolean" value="true" />
1124                   <property name="variableName" type="string">makeSymbolicLinkAction</property>
1125                 </serializedBean>
1126                 <visibilityScript>( Util.isLinux() || Util.isUnixInstaller() || ( Util.isMacOS() &amp;&amp; ( context.getVariable("macWrapperLinkLocation") != null ) ) ) &amp;&amp; ( context.getVariable("unixUserBinDir") != null )</visibilityScript>
1127               </formComponent>
1128               <formComponent id="2780" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent">
1129                 <serializedBean>
1130                   <property name="labelText" type="string">
1131 ${i18n:ClickFinish}
1132
1133 ${compiler:JALVIEW_APPLICATION_NAME} will now launch.</property>
1134                 </serializedBean>
1135               </formComponent>
1136             </formComponents>
1137           </screen>
1138         </screens>
1139       </application>
1140     </applications>
1141     <styles defaultStyleId="35">
1142       <style name="Standard" id="35" beanClass="com.install4j.runtime.beans.styles.FormStyle">
1143         <formComponents>
1144           <formComponent name="Header" id="36" beanClass="com.install4j.runtime.beans.styles.NestedStyleComponent" insetTop="0" insetBottom="0">
1145             <serializedBean>
1146               <property name="styleId" type="string">48</property>
1147             </serializedBean>
1148           </formComponent>
1149           <group name="Main" id="37" beanClass="com.install4j.runtime.beans.groups.VerticalFormComponentGroup">
1150             <serializedBean>
1151               <property name="imageEdgeAxisType" type="enum" class="com.install4j.runtime.beans.formcomponents.AxisType" value="HORIZONTAL" />
1152               <property name="imageEdgeBackgroundColor">
1153                 <object class="java.awt.Color">
1154                   <int>255</int>
1155                   <int>255</int>
1156                   <int>255</int>
1157                   <int>255</int>
1158                 </object>
1159               </property>
1160               <property name="imageFile">
1161                 <object class="com.install4j.api.beans.ExternalFile">
1162                   <string>${compiler:JALVIEW_DIR}/${compiler:BACKGROUND}</string>
1163                 </object>
1164               </property>
1165               <property name="imageOverlap" type="boolean" value="true" />
1166             </serializedBean>
1167             <beans>
1168               <formComponent id="38" beanClass="com.install4j.runtime.beans.styles.ContentComponent" insetTop="10" insetLeft="20" insetBottom="10" insetRight="20" />
1169               <formComponent name="Watermark" id="39" beanClass="com.install4j.runtime.beans.formcomponents.SeparatorComponent" insetTop="0" insetLeft="5" insetBottom="0" useExternalParametrization="true" externalParametrizationName="${compiler:JALVIEW_APPLICATION_NAME}" externalParametrizationMode="include">
1170                 <serializedBean>
1171                   <property name="enabledTitleText" type="boolean" value="false" />
1172                 </serializedBean>
1173                 <externalParametrizationPropertyNames>
1174                   <propertyName>labelText</propertyName>
1175                 </externalParametrizationPropertyNames>
1176               </formComponent>
1177               <formComponent name="Footer" id="40" beanClass="com.install4j.runtime.beans.styles.NestedStyleComponent" insetTop="0" insetBottom="0">
1178                 <serializedBean>
1179                   <property name="styleId" type="string">52</property>
1180                 </serializedBean>
1181               </formComponent>
1182             </beans>
1183           </group>
1184         </formComponents>
1185       </style>
1186       <style name="Banner" id="41" beanClass="com.install4j.runtime.beans.styles.FormStyle">
1187         <formComponents>
1188           <group id="42" beanClass="com.install4j.runtime.beans.groups.VerticalFormComponentGroup" useExternalParametrization="true" externalParametrizationName="Customize banner image" externalParametrizationMode="include">
1189             <serializedBean>
1190               <property name="backgroundColor">
1191                 <object class="com.install4j.runtime.beans.LightOrDarkColor">
1192                   <object class="java.awt.Color">
1193                     <int>255</int>
1194                     <int>255</int>
1195                     <int>255</int>
1196                     <int>255</int>
1197                   </object>
1198                   <object class="java.awt.Color">
1199                     <int>49</int>
1200                     <int>52</int>
1201                     <int>53</int>
1202                     <int>255</int>
1203                   </object>
1204                 </object>
1205               </property>
1206               <property name="borderSides">
1207                 <object class="com.install4j.runtime.beans.formcomponents.BorderSides">
1208                   <property name="bottom" type="boolean" value="true" />
1209                 </object>
1210               </property>
1211               <property name="imageEdgeBackgroundColor">
1212                 <object class="com.install4j.runtime.beans.LightOrDarkColor">
1213                   <object class="java.awt.Color">
1214                     <int>25</int>
1215                     <int>143</int>
1216                     <int>220</int>
1217                     <int>255</int>
1218                   </object>
1219                   <object class="java.awt.Color">
1220                     <int>0</int>
1221                     <int>74</int>
1222                     <int>151</int>
1223                     <int>255</int>
1224                   </object>
1225                 </object>
1226               </property>
1227               <property name="imageEdgeBorder" type="boolean" value="true" />
1228               <property name="imageFile">
1229                 <object class="com.install4j.api.beans.ExternalFile">
1230                   <string>${compiler:sys.install4jHome}/resource/styles/wizard.png</string>
1231                 </object>
1232               </property>
1233               <property name="insets">
1234                 <object class="java.awt.Insets">
1235                   <int>5</int>
1236                   <int>10</int>
1237                   <int>10</int>
1238                   <int>10</int>
1239                 </object>
1240               </property>
1241             </serializedBean>
1242             <beans>
1243               <formComponent id="43" beanClass="com.install4j.runtime.beans.styles.ScreenTitleComponent" insetTop="0">
1244                 <serializedBean>
1245                   <property name="labelFontSizePercent" type="int" value="130" />
1246                   <property name="labelFontStyle" type="enum" class="com.install4j.runtime.beans.formcomponents.FontStyle" value="BOLD" />
1247                   <property name="labelFontType" type="enum" class="com.install4j.runtime.beans.formcomponents.FontType" value="DERIVED" />
1248                 </serializedBean>
1249               </formComponent>
1250               <formComponent id="44" beanClass="com.install4j.runtime.beans.formcomponents.SeparatorComponent" />
1251               <formComponent id="45" beanClass="com.install4j.runtime.beans.styles.ContentComponent" insetTop="10" insetBottom="0" />
1252             </beans>
1253             <externalParametrizationPropertyNames>
1254               <propertyName>imageAnchor</propertyName>
1255               <propertyName>imageEdgeBackgroundColor</propertyName>
1256               <propertyName>imageFile</propertyName>
1257             </externalParametrizationPropertyNames>
1258           </group>
1259           <formComponent id="46" beanClass="com.install4j.runtime.beans.styles.NestedStyleComponent" insetBottom="0">
1260             <serializedBean>
1261               <property name="styleId" type="string">52</property>
1262             </serializedBean>
1263           </formComponent>
1264         </formComponents>
1265       </style>
1266       <group name="Style components" id="47" beanClass="com.install4j.runtime.beans.groups.StyleGroup">
1267         <beans>
1268           <style name="Standard header" id="48" beanClass="com.install4j.runtime.beans.styles.FormStyle">
1269             <serializedBean>
1270               <property name="fillVertical" type="boolean" value="false" />
1271               <property name="standalone" type="boolean" value="false" />
1272               <property name="verticalAnchor" type="enum" class="com.install4j.api.beans.Anchor" value="NORTH" />
1273             </serializedBean>
1274             <formComponents>
1275               <group id="49" beanClass="com.install4j.runtime.beans.groups.VerticalFormComponentGroup" useExternalParametrization="true" externalParametrizationName="Customize title bar" externalParametrizationMode="include">
1276                 <serializedBean>
1277                   <property name="backgroundColor">
1278                     <object class="com.install4j.runtime.beans.LightOrDarkColor">
1279                       <object class="java.awt.Color">
1280                         <int>255</int>
1281                         <int>255</int>
1282                         <int>255</int>
1283                         <int>255</int>
1284                       </object>
1285                       <object class="java.awt.Color">
1286                         <int>49</int>
1287                         <int>52</int>
1288                         <int>53</int>
1289                         <int>255</int>
1290                       </object>
1291                     </object>
1292                   </property>
1293                   <property name="borderSides">
1294                     <object class="com.install4j.runtime.beans.formcomponents.BorderSides">
1295                       <property name="bottom" type="boolean" value="true" />
1296                     </object>
1297                   </property>
1298                   <property name="imageAnchor" type="enum" class="com.install4j.api.beans.Anchor" value="NORTHEAST" />
1299                   <property name="imageEdgeBorderWidth" type="int" value="2" />
1300                   <property name="imageFile">
1301                     <object class="com.install4j.api.beans.ExternalFile">
1302                       <string>icon:${installer:sys.installerApplicationMode}_header.png</string>
1303                     </object>
1304                   </property>
1305                   <property name="imageInsets">
1306                     <object class="java.awt.Insets">
1307                       <int>0</int>
1308                       <int>5</int>
1309                       <int>1</int>
1310                       <int>1</int>
1311                     </object>
1312                   </property>
1313                   <property name="insets">
1314                     <object class="java.awt.Insets">
1315                       <int>0</int>
1316                       <int>20</int>
1317                       <int>0</int>
1318                       <int>10</int>
1319                     </object>
1320                   </property>
1321                 </serializedBean>
1322                 <beans>
1323                   <formComponent name="Title" id="50" beanClass="com.install4j.runtime.beans.styles.ScreenTitleComponent">
1324                     <serializedBean>
1325                       <property name="labelFontStyle" type="enum" class="com.install4j.runtime.beans.formcomponents.FontStyle" value="BOLD" />
1326                       <property name="labelFontType" type="enum" class="com.install4j.runtime.beans.formcomponents.FontType" value="DERIVED" />
1327                     </serializedBean>
1328                   </formComponent>
1329                   <formComponent name="Subtitle" id="51" beanClass="com.install4j.runtime.beans.styles.ScreenTitleComponent" insetLeft="8">
1330                     <serializedBean>
1331                       <property name="titleType" type="enum" class="com.install4j.runtime.beans.styles.TitleType" value="SUB_TITLE" />
1332                     </serializedBean>
1333                   </formComponent>
1334                 </beans>
1335                 <externalParametrizationPropertyNames>
1336                   <propertyName>backgroundColor</propertyName>
1337                   <propertyName>foregroundColor</propertyName>
1338                   <propertyName>imageAnchor</propertyName>
1339                   <propertyName>imageFile</propertyName>
1340                   <propertyName>imageOverlap</propertyName>
1341                 </externalParametrizationPropertyNames>
1342               </group>
1343             </formComponents>
1344           </style>
1345           <style name="Standard footer" id="52" beanClass="com.install4j.runtime.beans.styles.FormStyle">
1346             <serializedBean>
1347               <property name="fillVertical" type="boolean" value="false" />
1348               <property name="standalone" type="boolean" value="false" />
1349               <property name="verticalAnchor" type="enum" class="com.install4j.api.beans.Anchor" value="SOUTH" />
1350             </serializedBean>
1351             <formComponents>
1352               <group id="53" beanClass="com.install4j.runtime.beans.groups.HorizontalFormComponentGroup">
1353                 <serializedBean>
1354                   <property name="alignFirstLabel" type="boolean" value="false" />
1355                   <property name="insets">
1356                     <object class="java.awt.Insets">
1357                       <int>3</int>
1358                       <int>5</int>
1359                       <int>8</int>
1360                       <int>5</int>
1361                     </object>
1362                   </property>
1363                 </serializedBean>
1364                 <beans>
1365                   <formComponent id="54" beanClass="com.install4j.runtime.beans.formcomponents.SpringComponent" />
1366                   <formComponent name="Back button" id="55" beanClass="com.install4j.runtime.beans.styles.StandardControlButtonComponent">
1367                     <serializedBean>
1368                       <property name="buttonText" type="string">&lt; ${i18n:ButtonBack}</property>
1369                       <property name="controlButtonType" type="enum" class="com.install4j.api.context.ControlButtonType" value="PREVIOUS" />
1370                     </serializedBean>
1371                   </formComponent>
1372                   <formComponent name="Next button" id="56" beanClass="com.install4j.runtime.beans.styles.StandardControlButtonComponent">
1373                     <serializedBean>
1374                       <property name="buttonText" type="string">${i18n:ButtonNext} &gt;</property>
1375                       <property name="controlButtonType" type="enum" class="com.install4j.api.context.ControlButtonType" value="NEXT" />
1376                     </serializedBean>
1377                   </formComponent>
1378                   <formComponent name="Cancel button" id="57" beanClass="com.install4j.runtime.beans.styles.StandardControlButtonComponent" insetLeft="5">
1379                     <serializedBean>
1380                       <property name="buttonText" type="string">${i18n:ButtonCancel}</property>
1381                       <property name="controlButtonType" type="enum" class="com.install4j.api.context.ControlButtonType" value="CANCEL" />
1382                     </serializedBean>
1383                   </formComponent>
1384                 </beans>
1385               </group>
1386             </formComponents>
1387           </style>
1388         </beans>
1389       </group>
1390     </styles>
1391   </installerGui>
1392   <mediaSets>
1393     <windows name="Windows x64 EXE Installer" id="743" customizedId="WINDOWS-X64-EXE" mediaFileName="${compiler:APPLICATION_FOLDER}-${compiler:JALVIEW_VERSION}-${compiler:sys.platform}-java_${compiler:JAVA_INTEGER_VERSION}" installDir="${compiler:APPLICATION_FOLDER}" runPostProcessor="true" postProcessor="${compiler:JSIGN_SH} $EXECUTABLE" customInstallBaseDir="~/AppData/Local">
1394       <excludedBeans>
1395         <bean refId="2746" />
1396       </excludedBeans>
1397       <exclude>
1398         <entry defaultFileset="true" />
1399       </exclude>
1400       <jreBundle jreBundleSource="preCreated" includedJre="${compiler:WINDOWS_X64_JAVA_VM_TGZ}" manualJreEntry="true" />
1401     </windows>
1402     <macosArchive name="macOS x64 Disk Image" id="878" customizedId="MACOS-X64-DMG" mediaFileName="${compiler:APPLICATION_FOLDER}-${compiler:JALVIEW_VERSION}-macOS_x64-${compiler:sys.platform}-java_${compiler:JAVA_INTEGER_VERSION}" volumeName="${compiler:INSTALLER_NAME}" launcherId="737" setupAppId="2746">
1403       <exclude>
1404         <entry defaultFileset="true" />
1405       </exclude>
1406       <jreBundle jreBundleSource="none" />
1407       <topLevelFiles>
1408         <symlink name="&quot; &quot;" target="/Applications" />
1409         <file name=".background/jalview_dmg_background.png" file="${compiler:JALVIEW_DIR}/utils/channels/default/images/${compiler:MACOS_DMG_BG_IMAGE}" />
1410         <file name=".DS_Store" file="${compiler:JALVIEW_DIR}/utils/channels/default/images/${compiler:MACOS_DMG_DS_STORE}" />
1411         <file name="${compiler:JALVIEW_APPLICATION_NAME}.app/Contents/Resources/Jalview-File.icns" file="${compiler:JALVIEW_DIR}/${compiler:INSTALL4J_UTILS_DIR}/Jalview-File.icns" />
1412         <file name="${compiler:JALVIEW_APPLICATION_NAME}.app/Contents/Resources/jvl_file.icns" file="${compiler:JALVIEW_DIR}/${compiler:INSTALL4J_UTILS_DIR}/jvl_file.icns" />
1413         <symlink name="${compiler:JALVIEW_APPLICATION_NAME}.app/Contents/MacOS/${compiler:WRAPPER_LINK}" target="../Resources/app/${compiler:WRAPPER_SCRIPT_BIN_DIR}/${compiler:BASH_WRAPPER_SCRIPT}" />
1414       </topLevelFiles>
1415     </macosArchive>
1416     <macosArchive name="macOS aarch64 Disk Image" id="2796" customizedId="MACOS-AARCH64-DMG" mediaFileName="${compiler:APPLICATION_FOLDER}-${compiler:JALVIEW_VERSION}-macOS_aarch64-${compiler:sys.platform}-java_${compiler:JAVA_INTEGER_VERSION}" volumeName="${compiler:INSTALLER_NAME}" architecture="aarch64" launcherId="737" setupAppId="2746">
1417       <exclude>
1418         <entry defaultFileset="true" />
1419       </exclude>
1420       <jreBundle jreBundleSource="none" />
1421       <topLevelFiles>
1422         <symlink name="&quot; &quot;" target="/Applications" />
1423         <file name=".background/jalview_dmg_background.png" file="${compiler:JALVIEW_DIR}/utils/channels/default/images/${compiler:MACOS_DMG_BG_IMAGE}" />
1424         <file name=".DS_Store" file="${compiler:JALVIEW_DIR}/utils/channels/default/images/${compiler:MACOS_DMG_DS_STORE}" />
1425         <file name="${compiler:JALVIEW_APPLICATION_NAME}.app/Contents/Resources/Jalview-File.icns" file="${compiler:JALVIEW_DIR}/${compiler:INSTALL4J_UTILS_DIR}/Jalview-File.icns" />
1426         <file name="${compiler:JALVIEW_APPLICATION_NAME}.app/Contents/Resources/jvl_file.icns" file="${compiler:JALVIEW_DIR}/${compiler:INSTALL4J_UTILS_DIR}/jvl_file.icns" />
1427         <symlink name="${compiler:JALVIEW_APPLICATION_NAME}.app/Contents/MacOS/${compiler:WRAPPER_LINK}" target="../Resources/app/${compiler:WRAPPER_SCRIPT_BIN_DIR}/${compiler:BASH_WRAPPER_SCRIPT}" />
1428       </topLevelFiles>
1429     </macosArchive>
1430     <unixInstaller name="Linux x64 Shell Installer" id="1595" customizedId="LINUX-X64-SH" mediaFileName="${compiler:UNIX_APPLICATION_FOLDER}-${compiler:JALVIEW_VERSION}-linux_x64-java_${compiler:JAVA_INTEGER_VERSION}" installDir="${compiler:UNIX_APPLICATION_FOLDER}" customInstallBaseDir="~/opt/">
1431       <excludedBeans>
1432         <bean refId="2746" />
1433       </excludedBeans>
1434       <exclude>
1435         <entry defaultFileset="true" />
1436       </exclude>
1437       <jreBundle jreBundleSource="preCreated" includedJre="${compiler:LINUX_X64_JAVA_VM_TGZ}" manualJreEntry="true" />
1438     </unixInstaller>
1439     <unixInstaller name="Linux aarch64 Shell Installer" id="2782" customizedId="LINUX-AARCH64-SH" mediaFileName="${compiler:UNIX_APPLICATION_FOLDER}-${compiler:JALVIEW_VERSION}-linux_aarch64-java_${compiler:JAVA_INTEGER_VERSION}" installDir="${compiler:UNIX_APPLICATION_FOLDER}" customInstallBaseDir="~/opt/">
1440       <excludedBeans>
1441         <bean refId="2746" />
1442       </excludedBeans>
1443       <exclude>
1444         <entry defaultFileset="true" />
1445       </exclude>
1446       <jreBundle jreBundleSource="preCreated" includedJre="${compiler:LINUX_AARCH64_JAVA_VM_TGZ}" manualJreEntry="true" />
1447     </unixInstaller>
1448     <unixArchive name="Unix .tar.gz Archive" id="1596" customizedId="UNIX--TGZ" mediaFileName="${compiler:UNIX_APPLICATION_FOLDER}-${compiler:JALVIEW_VERSION}-${compiler:sys.platform}-java_${compiler:JAVA_INTEGER_VERSION}" installDir="${compiler:UNIX_APPLICATION_FOLDER}">
1449       <excludedBeans>
1450         <bean refId="2746" />
1451       </excludedBeans>
1452       <exclude>
1453         <entry defaultFileset="true" />
1454       </exclude>
1455       <jreBundle jreBundleSource="none" includedJre="${compiler:LINUX_X64_JAVA_VM_TGZ}" manualJreEntry="true" />
1456     </unixArchive>
1457     <unixInstaller name="Unix Shell Installer" id="2639" customizedId="UNIX--SH" mediaFileName="${compiler:UNIX_APPLICATION_FOLDER}-${compiler:JALVIEW_VERSION}-${compiler:sys.platform}-java_${compiler:JAVA_INTEGER_VERSION}" installDir="${compiler:UNIX_APPLICATION_FOLDER}" customInstallBaseDir="~/opt/">
1458       <excludedBeans>
1459         <bean refId="2746" />
1460       </excludedBeans>
1461       <exclude>
1462         <entry defaultFileset="true" />
1463       </exclude>
1464       <jreBundle jreBundleSource="none" includedJre="${compiler:LINUX_X64_JAVA_VM_TGZ}" manualJreEntry="true" />
1465     </unixInstaller>
1466   </mediaSets>
1467   <buildIds>
1468     <mediaSet refId="743" />
1469     <mediaSet refId="878" />
1470     <mediaSet refId="1595" />
1471     <mediaSet refId="1596" />
1472     <mediaSet refId="2639" />
1473   </buildIds>
1474 </install4j>