JAL-3796 minimal steps for notarization and the entitlements.txt file needed for...
[jalview.git] / utils / install4j / install4j8_template.install4j
1 <?xml version="1.0" encoding="UTF-8"?>
2 <install4j version="8.0.10" transformSequenceNumber="8">
3   <directoryPresets config="../.." />
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="9999999999${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_JAVA_VM_DIR" value="~/buildtools/jre/jre-${compiler:JAVA_INTEGER_VERSION}-mac-x64/jre" />
27       <variable name="WINDOWS_JAVA_VM_DIR" value="~/buildtools/jre/jre-${compiler:JAVA_INTEGER_VERSION}-windows-x64/jre" />
28       <variable name="LINUX_JAVA_VM_DIR" value="~/buildtools/jre/jre-${compiler:JAVA_INTEGER_VERSION}-linux-x64/jre" />
29       <variable name="MACOS_JAVA_VM_TGZ" value="~/buildtools/jre/tgz/jre-${compiler:JAVA_INTEGER_VERSION}-mac-x64.tar.gz" />
30       <variable name="WINDOWS_JAVA_VM_TGZ" value="~/buildtools/jre/tgz/jre-${compiler:JAVA_INTEGER_VERSION}-windows-x64.tar.gz" />
31       <variable name="LINUX_JAVA_VM_TGZ" value="~/buildtools/jre/tgz/jre-${compiler:JAVA_INTEGER_VERSION}-linux-x64.tar.gz" />
32       <variable name="COPYRIGHT_MESSAGE" value="..." />
33       <variable name="BUNDLE_ID" value="org.jalview.jalview-desktop" />
34       <variable name="INTERNAL_ID" value="Jalview" />
35       <variable name="WINDOWS_APPLICATION_ID" value="6595-2347-1923-0725" />
36       <variable name="MACOS_DMG_DS_STORE" value="DS_Store" />
37       <variable name="MACOS_DMG_BG_IMAGE" />
38       <variable name="INSTALLER_NAME" value="Jalview Installer" />
39       <variable name="INSTALL4J_UTILS_DIR" value="utils/install4j" />
40       <variable name="GETDOWN_WEBSITE_DIR" value="getdown/website" />
41       <variable name="GETDOWN_FILES_DIR" value="getdown/files" />
42       <variable name="GETDOWN_RESOURCE_DIR" value="resource" />
43       <variable name="GETDOWN_DIST_DIR" value="dist" />
44       <variable name="GETDOWN_ALT_DIR" value="alt" />
45       <variable name="GETDOWN_INSTALL_DIR" value="install" />
46       <variable name="INFO_PLIST_FILE_ASSOCIATIONS_FILE" value="file_associations_auto-Info_plist.xml" />
47       <variable name="APPLICATION_CATEGORIES" value="Science;Biology;Java;" />
48       <variable name="APPLICATION_FOLDER" value="Jalview" />
49       <variable name="UNIX_APPLICATION_FOLDER" value="jalview" />
50       <variable name="EXECUTABLE_NAME" value="jalview" />
51       <variable name="EXTRA_SCHEME" value="jalviewx" />
52       <variable name="MAC_ICONS_FILE" value="utils/channels/release/images/jalview_logo.icns" />
53       <variable name="WINDOWS_ICONS_FILE" value="utils/channels/release/images/jalview_logo.ico" />
54       <variable name="PNG_ICON_FILE" value="utils/channels/release/images/jalview_logo.png" />
55       <variable name="BACKGROUND" value="utils/channels/release/images/jalview_logo_background_fade-640x480.png" />
56     </variables>
57     <codeSigning macEnabled="true" macPkcs12File="${compiler:OSX_KEYSTORE}" macNotarize="true" appleId="${compiler:OSX_APPLEID}">
58       <macAdditionalBinaries>
59         <entry>*.dylib</entry>
60         <entry>*.so</entry>
61         <entry>*.jnilib</entry>
62         <entry>unpack200</entry>
63         <entry>tnameserv</entry>
64         <entry>servertool</entry>
65         <entry>rmiregistry</entry>
66         <entry>rmid</entry>
67         <entry>policytool</entry>
68         <entry>pack200</entry>
69         <entry>orbd</entry>
70         <entry>keytool</entry>
71         <entry>jjs</entry>
72         <entry>java</entry>
73         <entry>jspawnhelper</entry>
74         <entry>libfreetype.dylib.6</entry>
75         <entry>applet</entry>
76         <entry>jaotc</entry>
77         <entry>jfr</entry>
78         <entry>jrunscript</entry>
79         <entry>libjli.dylib</entry>
80       </macAdditionalBinaries>
81     </codeSigning>
82   </application>
83   <files defaultUninstallMode="2">
84     <filesets>
85       <fileset name="Full file set" id="734" customizedId="FULL_FILE_SET" />
86       <fileset name="Mac OS X JRE" id="880" />
87       <fileset name="Windows JRE" id="882" />
88       <fileset name="Jalview application" id="1873" />
89       <fileset name="MacOS Old Jalview Uninstaller" id="2105" />
90     </filesets>
91     <roots>
92       <root id="735" fileset="734" />
93       <root id="881" fileset="880" />
94       <root id="883" fileset="882" />
95       <root id="1874" fileset="1873" />
96       <root id="2106" fileset="2105" />
97     </roots>
98     <mountPoints>
99       <mountPoint id="454" />
100       <mountPoint id="736" root="735" />
101       <mountPoint id="884" root="881" />
102       <mountPoint id="885" root="883" />
103       <mountPoint id="1875" root="1874" />
104       <mountPoint id="2107" root="2106" />
105     </mountPoints>
106     <entries>
107       <dirEntry mountPoint="454" file="${compiler:JALVIEW_DIR}/${compiler:GETDOWN_FILES_DIR}/${compiler:JAVA_VERSION}" uninstallMode="2" overrideOverwriteMode="true" overrideUninstallMode="true" subDirectory="files" />
108       <dirEntry mountPoint="736" file="${compiler:JALVIEW_DIR}/${compiler:GETDOWN_WEBSITE_DIR}/${compiler:JAVA_VERSION}" uninstallMode="2" overrideOverwriteMode="true" overrideUninstallMode="true" subDirectory="files" />
109       <dirEntry mountPoint="736" file="${compiler:JALVIEW_DIR}/examples" overwriteMode="1" uninstallMode="2" overrideFileMode="true" overrideOverwriteMode="true" overrideUninstallMode="true" entryMode="subdir" subDirectory="examples" />
110       <dirEntry mountPoint="884" file="${compiler:MACOS_JAVA_VM_DIR}" fileMode="755" overrideFileMode="true" overrideUninstallMode="true" entryMode="subdir" subDirectory="${compiler:JRE_DIR}" />
111       <dirEntry mountPoint="885" file="${compiler:WINDOWS_JAVA_VM_DIR}" fileMode="755" overrideFileMode="true" overrideUninstallMode="true" entryMode="subdir" subDirectory="${compiler:JRE_DIR}" />
112       <dirEntry mountPoint="1875" file="${compiler:JALVIEW_DIR}/${compiler:GETDOWN_WEBSITE_DIR}/${compiler:JAVA_VERSION}/${compiler:GETDOWN_DIST_DIR}" overwriteMode="1" uninstallMode="2" overrideFileMode="true" overrideOverwriteMode="true" overrideUninstallMode="true" entryMode="subdir" subDirectory="${compiler:GETDOWN_DIST_DIR}" overrideDirMode="true" />
113       <dirEntry mountPoint="2107" file="Uninstall Old Jalview.app" fileMode="755" overrideFileMode="true" entryMode="subdir" subDirectory="Uninstall Old Jalview.app" overrideDirMode="true" />
114     </entries>
115     <components>
116       <component name="jalview_getdown" id="1031">
117         <include>
118           <entry filesetId="734" />
119         </include>
120       </component>
121       <component name="macos_java_vm" id="1155">
122         <include>
123           <entry filesetId="880" />
124         </include>
125       </component>
126       <component name="windows_java_vm" id="1156">
127         <include>
128           <entry filesetId="882" />
129         </include>
130       </component>
131       <component name="getdown" id="1276">
132         <include>
133           <entry defaultFileset="true" />
134         </include>
135       </component>
136       <component name="jalview" id="1881">
137         <include>
138           <entry filesetId="1873" />
139         </include>
140       </component>
141       <component name="macos_old_jalview_uninstaller" id="2110">
142         <include>
143           <entry filesetId="2105" />
144         </include>
145       </component>
146     </components>
147   </files>
148   <launchers>
149     <launcher name="Jalview Launcher" id="737" 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}">
150       <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">
151         <versionInfo include="true" fileDescription="${compiler:sys.fullName}" legalCopyright="${compiler:COPYRIGHT_MESSAGE}" internalName="${compiler:INTERNAL_ID}" productName="${compiler:sys.fullName}" />
152       </executable>
153       <splashScreen width="640" height="480" bitmapFile="${compiler:JALVIEW_DIR}/${compiler:BACKGROUND}" textOverlay="true">
154         <text>
155           <statusLine x="85" y="81" text="${compiler:sys.shortName}" fontSize="18" />
156           <versionLine x="85" y="109" text="version ${compiler:sys.version}" />
157         </text>
158       </splashScreen>
159       <java mainClass="com.threerings.getdown.launcher.GetdownApp" vmParameters="-Dinstaller_template_version=${compiler:INSTALLER_TEMPLATE_VERSION}" arguments="&quot;${launcher:sys.launcherDirectory}&quot; jalview">
160         <classPath>
161           <archive location="getdown-launcher.jar" />
162           <archive location="${compiler:GETDOWN_INSTALL_DIR}/getdown-launcher.jar" failOnError="false" />
163         </classPath>
164       </java>
165       <macStaticAssociationActions mode="selected">
166         <id>2350</id>
167         <id>2450</id>
168         <id>2641</id>
169       </macStaticAssociationActions>
170       <infoPlist>${compiler:file("${compiler:INFO_PLIST_FILE_ASSOCIATIONS_FILE}")}</infoPlist>
171       <iconImageFiles>
172         <file path="${compiler:JALVIEW_DIR}/${compiler:PNG_ICON_FILE}" />
173       </iconImageFiles>
174     </launcher>
175   </launchers>
176   <installerGui autoUpdateDescriptorUrl="https://www.jalview.org/install4j/updates.xml">
177     <applications>
178       <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}">
179         <serializedBean>
180           <property name="useCustomIcon" type="boolean" value="true" />
181         </serializedBean>
182         <styleOverrides>
183           <styleOverride name="Customize banner image" enabled="true">
184             <group id="146" beanClass="com.install4j.runtime.beans.groups.VerticalFormComponentGroup" useExternalParametrization="true" externalParametrizationName="Customize banner image" externalParametrizationMode="include">
185               <serializedBean>
186                 <property name="backgroundColor">
187                   <object class="java.awt.Color">
188                     <int>255</int>
189                     <int>255</int>
190                     <int>255</int>
191                     <int>255</int>
192                   </object>
193                 </property>
194                 <property name="borderSides">
195                   <object class="com.install4j.runtime.beans.formcomponents.BorderSides">
196                     <property name="bottom" type="boolean" value="true" />
197                   </object>
198                 </property>
199                 <property name="imageEdgeBackgroundColor">
200                   <object class="java.awt.Color">
201                     <int>255</int>
202                     <int>255</int>
203                     <int>255</int>
204                     <int>255</int>
205                   </object>
206                 </property>
207                 <property name="imageEdgeBorder" type="boolean" value="true" />
208                 <property name="imageFile">
209                   <object class="com.install4j.api.beans.ExternalFile">
210                     <string>${compiler:JALVIEW_DIR}/${compiler:BACKGROUND}</string>
211                   </object>
212                 </property>
213                 <property name="insets">
214                   <object class="java.awt.Insets">
215                     <int>5</int>
216                     <int>10</int>
217                     <int>10</int>
218                     <int>10</int>
219                   </object>
220                 </property>
221               </serializedBean>
222               <externalParametrizationPropertyNames>
223                 <propertyName>imageAnchor</propertyName>
224                 <propertyName>imageEdgeBackgroundColor</propertyName>
225                 <propertyName>imageFile</propertyName>
226               </externalParametrizationPropertyNames>
227             </group>
228           </styleOverride>
229           <styleOverride name="Jalview" enabled="true">
230             <formComponent name="Watermark" id="352" beanClass="com.install4j.runtime.beans.formcomponents.SeparatorComponent" insetTop="0" insetLeft="5" insetBottom="0" useExternalParametrization="true" externalParametrizationName="Jalview" externalParametrizationMode="include">
231               <serializedBean>
232                 <property name="enabledTitleText" type="boolean" value="false" />
233               </serializedBean>
234               <externalParametrizationPropertyNames>
235                 <propertyName>labelText</propertyName>
236               </externalParametrizationPropertyNames>
237             </formComponent>
238           </styleOverride>
239         </styleOverrides>
240         <startup>
241           <screen id="1" beanClass="com.install4j.runtime.beans.screens.StartupScreen" rollbackBarrierExitCode="0">
242             <actions>
243               <action id="22" beanClass="com.install4j.runtime.beans.actions.misc.RequestPrivilegesAction" actionElevationType="none" rollbackBarrierExitCode="0">
244                 <serializedBean>
245                   <property name="obtainIfAdminWin" type="boolean" value="false" />
246                 </serializedBean>
247               </action>
248             </actions>
249           </screen>
250         </startup>
251         <screens>
252           <screen id="2" beanClass="com.install4j.runtime.beans.screens.WelcomeScreen" rollbackBarrierExitCode="0">
253             <styleOverrides>
254               <styleOverride name="Customize banner image" enabled="true">
255                 <group id="145" beanClass="com.install4j.runtime.beans.groups.VerticalFormComponentGroup" useExternalParametrization="true" externalParametrizationName="Customize banner image" externalParametrizationMode="include">
256                   <serializedBean>
257                     <property name="backgroundColor">
258                       <object class="java.awt.Color">
259                         <int>255</int>
260                         <int>255</int>
261                         <int>255</int>
262                         <int>255</int>
263                       </object>
264                     </property>
265                     <property name="borderSides">
266                       <object class="com.install4j.runtime.beans.formcomponents.BorderSides">
267                         <property name="bottom" type="boolean" value="true" />
268                       </object>
269                     </property>
270                     <property name="imageEdgeBackgroundColor">
271                       <object class="java.awt.Color">
272                         <int>25</int>
273                         <int>143</int>
274                         <int>220</int>
275                         <int>255</int>
276                       </object>
277                     </property>
278                     <property name="imageEdgeBorder" type="boolean" value="true" />
279                     <property name="imageFile">
280                       <object class="com.install4j.api.beans.ExternalFile">
281                         <string>${compiler:JALVIEW_DIR}/${compiler:BACKGROUND}</string>
282                       </object>
283                     </property>
284                     <property name="insets">
285                       <object class="java.awt.Insets">
286                         <int>5</int>
287                         <int>10</int>
288                         <int>10</int>
289                         <int>10</int>
290                       </object>
291                     </property>
292                   </serializedBean>
293                   <externalParametrizationPropertyNames>
294                     <propertyName>imageAnchor</propertyName>
295                     <propertyName>imageEdgeBackgroundColor</propertyName>
296                     <propertyName>imageFile</propertyName>
297                   </externalParametrizationPropertyNames>
298                 </group>
299               </styleOverride>
300             </styleOverrides>
301             <actions>
302               <action id="7" beanClass="com.install4j.runtime.beans.actions.misc.LoadResponseFileAction" rollbackBarrierExitCode="0" multiExec="true">
303                 <serializedBean>
304                   <property name="excludedVariables" type="array" elementType="string" length="1">
305                     <element index="0">sys.installationDir</element>
306                   </property>
307                 </serializedBean>
308                 <condition>context.getBooleanVariable("sys.confirmedUpdateInstallation")</condition>
309               </action>
310             </actions>
311             <formComponents>
312               <formComponent id="3" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent">
313                 <serializedBean>
314                   <property name="labelText" type="string">${form:welcomeMessage}</property>
315                 </serializedBean>
316                 <visibilityScript>!context.isConsole()</visibilityScript>
317               </formComponent>
318               <formComponent id="4" beanClass="com.install4j.runtime.beans.formcomponents.ConsoleHandlerFormComponent">
319                 <serializedBean>
320                   <property name="consoleScript">
321                     <object class="com.install4j.api.beans.ScriptProperty">
322                       <property name="value" type="string">String message = context.getMessage("ConsoleWelcomeLabel", context.getApplicationName());
323 return console.askOkCancel(message, true);
324 </property>
325                     </object>
326                   </property>
327                 </serializedBean>
328               </formComponent>
329               <formComponent id="5" beanClass="com.install4j.runtime.beans.formcomponents.UpdateAlertComponent" useExternalParametrization="true" externalParametrizationName="Update Alert" externalParametrizationMode="include">
330                 <externalParametrizationPropertyNames>
331                   <propertyName>updateCheck</propertyName>
332                 </externalParametrizationPropertyNames>
333               </formComponent>
334               <formComponent id="6" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent" insetTop="20">
335                 <serializedBean>
336                   <property name="labelText" type="string">${i18n:ClickNext}</property>
337                 </serializedBean>
338               </formComponent>
339             </formComponents>
340           </screen>
341           <screen id="8" beanClass="com.install4j.runtime.beans.screens.InstallationDirectoryScreen" rollbackBarrierExitCode="0">
342             <condition>!context.getBooleanVariable("sys.confirmedUpdateInstallation")</condition>
343             <actions>
344               <action id="11" beanClass="com.install4j.runtime.beans.actions.misc.LoadResponseFileAction" rollbackBarrierExitCode="0" multiExec="true">
345                 <serializedBean>
346                   <property name="excludedVariables" type="array" elementType="string" length="1">
347                     <element index="0">sys.installationDir</element>
348                   </property>
349                 </serializedBean>
350                 <condition>context.getVariable("sys.responseFile") == null</condition>
351               </action>
352             </actions>
353             <formComponents>
354               <formComponent id="9" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent" insetBottom="25">
355                 <serializedBean>
356                   <property name="labelText" type="string">${i18n:SelectDirLabel(${compiler:sys.fullName})}</property>
357                 </serializedBean>
358               </formComponent>
359               <formComponent id="10" beanClass="com.install4j.runtime.beans.formcomponents.InstallationDirectoryChooserComponent" useExternalParametrization="true" externalParametrizationName="Installation Directory Chooser" externalParametrizationMode="include">
360                 <serializedBean>
361                   <property name="requestFocus" type="boolean" value="true" />
362                 </serializedBean>
363                 <externalParametrizationPropertyNames>
364                   <propertyName>allowSpacesOnUnix</propertyName>
365                   <propertyName>checkFreeSpace</propertyName>
366                   <propertyName>checkWritable</propertyName>
367                   <propertyName>existingDirWarning</propertyName>
368                   <propertyName>manualEntryAllowed</propertyName>
369                   <propertyName>showFreeDiskSpace</propertyName>
370                   <propertyName>showRequiredDiskSpace</propertyName>
371                   <propertyName>standardValidation</propertyName>
372                   <propertyName>suggestAppDir</propertyName>
373                   <propertyName>validateApplicationId</propertyName>
374                   <propertyName>validationScript</propertyName>
375                 </externalParametrizationPropertyNames>
376               </formComponent>
377             </formComponents>
378           </screen>
379           <screen id="12" beanClass="com.install4j.runtime.beans.screens.ComponentsScreen" enabled="false" rollbackBarrierExitCode="0">
380             <formComponents>
381               <formComponent id="13" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent">
382                 <serializedBean>
383                   <property name="labelText" type="string">${i18n:SelectComponentsLabel2}</property>
384                 </serializedBean>
385                 <visibilityScript>!context.isConsole()</visibilityScript>
386               </formComponent>
387               <formComponent id="14" beanClass="com.install4j.runtime.beans.formcomponents.ComponentSelectorComponent" useExternalParametrization="true" externalParametrizationName="Installation Components" externalParametrizationMode="include">
388                 <serializedBean>
389                   <property name="fillVertical" type="boolean" value="true" />
390                 </serializedBean>
391                 <externalParametrizationPropertyNames>
392                   <propertyName>selectionChangedScript</propertyName>
393                 </externalParametrizationPropertyNames>
394               </formComponent>
395             </formComponents>
396           </screen>
397           <screen id="1692" beanClass="com.install4j.runtime.beans.screens.FileAssociationsScreen" rollbackBarrierExitCode="0">
398             <formComponents>
399               <formComponent id="1693" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent">
400                 <serializedBean>
401                   <property name="labelText" type="string">${i18n:SelectAssociationsLabel}</property>
402                 </serializedBean>
403               </formComponent>
404               <formComponent id="1694" beanClass="com.install4j.runtime.beans.formcomponents.FileAssociationsComponent" useExternalParametrization="true" externalParametrizationName="File Associations" externalParametrizationMode="include">
405                 <serializedBean>
406                   <property name="fillVertical" type="boolean" value="true" />
407                   <property name="selectionButtonPosition" type="enum" class="com.install4j.runtime.beans.formcomponents.VerticalDockingPosition" value="TOP" />
408                   <property name="showSelectionButtons" type="boolean" value="true" />
409                 </serializedBean>
410                 <externalParametrizationPropertyNames>
411                   <propertyName>showSelectionButtons</propertyName>
412                   <propertyName>selectionButtonPosition</propertyName>
413                 </externalParametrizationPropertyNames>
414               </formComponent>
415             </formComponents>
416           </screen>
417           <screen id="15" beanClass="com.install4j.runtime.beans.screens.InstallationScreen" rollbackBarrier="true" rollbackBarrierExitCode="0">
418             <actions>
419               <action id="17" beanClass="com.install4j.runtime.beans.actions.InstallFilesAction" actionElevationType="elevated" rollbackBarrierExitCode="0" failureStrategy="quit" errorMessage="${i18n:FileCorrupted}" />
420               <action name="Create program group (RELEASE)" id="18" customizedId="PROGRAM_GROUP_RELEASE" beanClass="com.install4j.runtime.beans.actions.desktop.CreateProgramGroupAction" actionElevationType="elevated" rollbackBarrierExitCode="0">
421                 <serializedBean>
422                   <property name="allUsers" type="boolean" value="false" />
423                   <property name="categories" type="string">${compiler:APPLICATION_CATEGORIES}</property>
424                   <property name="programGroupEntryConfigs">
425                     <add>
426                       <object class="com.install4j.runtime.beans.screens.components.ProgramGroupFileConfig">
427                         <property name="name" type="string">Examples</property>
428                         <property name="target">
429                           <object class="java.io.File">
430                             <string>examples</string>
431                           </object>
432                         </property>
433                       </object>
434                     </add>
435                   </property>
436                   <property name="programGroupName" type="string">${compiler:JALVIEW_NAME}</property>
437                   <property name="uninstallerMenuName" type="string">${i18n:UninstallerMenuEntry(${compiler:sys.fullName})}</property>
438                 </serializedBean>
439                 <condition>!context.getBooleanVariable("sys.programGroupDisabled")</condition>
440               </action>
441               <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">
442                 <serializedBean>
443                   <property name="allUsers" type="boolean" value="false" />
444                   <property name="categories" type="string">${compiler:APPLICATION_CATEGORIES}</property>
445                   <property name="programGroupName" type="string">${compiler:JALVIEW_NAME}</property>
446                   <property name="uninstallerMenuName" type="string">${i18n:UninstallerMenuEntry(${compiler:sys.fullName})}</property>
447                 </serializedBean>
448                 <condition>!context.getBooleanVariable("sys.programGroupDisabled")</condition>
449               </action>
450               <action id="19" beanClass="com.install4j.runtime.beans.actions.desktop.RegisterAddRemoveAction" actionElevationType="elevated" rollbackBarrierExitCode="0">
451                 <serializedBean>
452                   <property name="itemName" type="string">${compiler:sys.fullName} ${compiler:sys.version}</property>
453                 </serializedBean>
454               </action>
455               <action id="124" beanClass="com.install4j.runtime.beans.actions.control.SetVariableAction" enabled="false" rollbackBarrierExitCode="0">
456                 <serializedBean>
457                   <property name="script">
458                     <object class="com.install4j.api.beans.ScriptProperty">
459                       <property name="value" type="string" />
460                     </object>
461                   </property>
462                   <property name="variableName" type="string" />
463                 </serializedBean>
464                 <condition>true</condition>
465               </action>
466               <action id="134" beanClass="com.install4j.runtime.beans.actions.misc.AddVmOptionsAction" enabled="false" actionElevationType="elevated" rollbackBarrierExitCode="0">
467                 <serializedBean>
468                   <property name="launcherId" type="string">121</property>
469                   <property name="vmOptions" type="array" elementType="string" length="0" />
470                 </serializedBean>
471               </action>
472               <group name="File Associations" id="2251" beanClass="com.install4j.runtime.beans.groups.ActionGroup">
473                 <beans>
474                   <action id="2253" beanClass="com.install4j.runtime.beans.actions.control.SetMessageAction" actionElevationType="none" rollbackBarrierExitCode="0">
475                     <serializedBean>
476                       <property name="statusMessage" type="string">Creating file associations...</property>
477                       <property name="useDetail" type="boolean" value="true" />
478                       <property name="useStatus" type="boolean" value="true" />
479                     </serializedBean>
480                   </action>
481                   <action id="2254" beanClass="com.install4j.runtime.beans.actions.control.SetProgressAction" actionElevationType="none" rollbackBarrierExitCode="0">
482                     <serializedBean>
483                       <property name="progressChangeType" type="enum" class="com.install4j.runtime.beans.actions.control.ProgressChangeType" value="SET_INDETERMINATE" />
484                     </serializedBean>
485                   </action>
486                   <action name="EXTENSIONS_REPLACED_BY_GRADLE" id="1691" customizedId="EXTENSIONS" beanClass="com.install4j.runtime.beans.actions.desktop.CreateFileAssociationAction" actionElevationType="elevated" rollbackBarrierExitCode="0">
487                     <serializedBean>
488                       <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>
489                       <property name="extension" type="string">extensions_to_be_replaced_by_gradle</property>
490                     </serializedBean>
491                   </action>
492                   <action id="2542" beanClass="com.install4j.runtime.beans.actions.control.SetMessageAction" actionElevationType="none" rollbackBarrierExitCode="0">
493                     <serializedBean>
494                       <property name="statusMessage" type="string">Creating file associations</property>
495                       <property name="useDetail" type="boolean" value="true" />
496                       <property name="useStatus" type="boolean" value="true" />
497                     </serializedBean>
498                   </action>
499                   <action id="2541" beanClass="com.install4j.runtime.beans.actions.control.SetProgressAction" actionElevationType="none" rollbackBarrierExitCode="0">
500                     <serializedBean>
501                       <property name="percentValue" type="int" value="100" />
502                     </serializedBean>
503                   </action>
504                 </beans>
505               </group>
506               <action id="2350" beanClass="com.install4j.runtime.beans.actions.desktop.UrlHandlerAction" actionElevationType="elevated" rollbackBarrierExitCode="0">
507                 <serializedBean>
508                   <property name="launcherId" type="string">737</property>
509                   <property name="scheme" type="string">jalview</property>
510                 </serializedBean>
511               </action>
512               <action id="2450" beanClass="com.install4j.runtime.beans.actions.desktop.UrlHandlerAction" actionElevationType="elevated" rollbackBarrierExitCode="0">
513                 <serializedBean>
514                   <property name="launcherId" type="string">737</property>
515                   <property name="scheme" type="string">jalviews</property>
516                 </serializedBean>
517               </action>
518               <action id="2641" beanClass="com.install4j.runtime.beans.actions.desktop.UrlHandlerAction" actionElevationType="elevated" rollbackBarrierExitCode="0">
519                 <serializedBean>
520                   <property name="launcherId" type="string">737</property>
521                   <property name="scheme" type="string">${compiler:EXTRA_SCHEME}</property>
522                 </serializedBean>
523               </action>
524             </actions>
525             <formComponents>
526               <formComponent id="16" beanClass="com.install4j.runtime.beans.formcomponents.ProgressComponent">
527                 <serializedBean>
528                   <property name="initialStatusMessage" type="string">${i18n:WizardPreparing}</property>
529                 </serializedBean>
530               </formComponent>
531             </formComponents>
532           </screen>
533           <screen id="20" beanClass="com.install4j.runtime.beans.screens.FinishedScreen" rollbackBarrierExitCode="0" finishScreen="true">
534             <actions>
535               <action id="2012" beanClass="com.install4j.runtime.beans.actions.desktop.CreateStartMenuEntryAction" actionElevationType="elevated" rollbackBarrierExitCode="0">
536                 <serializedBean>
537                   <property name="allUsers" type="boolean" value="false" />
538                   <property name="categories" type="string">${compiler:APPLICATION_CATEGORIES}</property>
539                   <property name="entryName" type="string">${compiler:JALVIEW_APPLICATION_NAME}</property>
540                   <property name="file">
541                     <object class="java.io.File">
542                       <string>${installer:sys.contentDir}/${compiler:EXECUTABLE_NAME}</string>
543                     </object>
544                   </property>
545                   <property name="icon">
546                     <object class="com.install4j.api.beans.ExternalFile">
547                       <string>${compiler:JALVIEW_DIR}/${compiler:WINDOWS_ICONS_FILE}</string>
548                     </object>
549                   </property>
550                   <property name="programGroupName" type="string">${compiler:JALVIEW_NAME}</property>
551                   <property name="unixIconFile">
552                     <object class="com.install4j.api.beans.ExternalFile">
553                       <string>${compiler:JALVIEW_DIR}/${compiler:PNG_ICON_FILE}</string>
554                     </object>
555                   </property>
556                 </serializedBean>
557                 <condition>!context.getBooleanVariable("sys.programGroupDisabled")</condition>
558               </action>
559               <action id="573" beanClass="com.install4j.runtime.beans.actions.desktop.CreateDesktopLinkAction" actionElevationType="elevated" rollbackBarrierExitCode="0" errorMessage="Could not make desktop link">
560                 <serializedBean>
561                   <property name="allUsers" type="boolean" value="false" />
562                   <property name="description" type="string">${compiler:JALVIEW_APPLICATION_NAME}</property>
563                   <property name="file">
564                     <object class="java.io.File">
565                       <string>${installer:sys.contentDir}/${compiler:EXECUTABLE_NAME}</string>
566                     </object>
567                   </property>
568                   <property name="name" type="string">${compiler:JALVIEW_APPLICATION_NAME}</property>
569                   <property name="unixIconFile">
570                     <object class="com.install4j.api.beans.ExternalFile">
571                       <string>${compiler:JALVIEW_DIR}/${compiler:PNG_ICON_FILE}</string>
572                     </object>
573                   </property>
574                   <property name="winIconFile">
575                     <object class="com.install4j.api.beans.ExternalFile">
576                       <string>${compiler:JALVIEW_DIR}/${compiler:WINDOWS_ICONS_FILE}</string>
577                     </object>
578                   </property>
579                 </serializedBean>
580                 <condition>context.getBooleanVariable("createDesktopLinkAction")</condition>
581               </action>
582               <action id="576" beanClass="com.install4j.runtime.beans.actions.desktop.AddToDockAction" actionElevationType="none" rollbackBarrierExitCode="0">
583                 <serializedBean>
584                   <property name="executable">
585                     <object class="java.io.File">
586                       <string>${compiler:JALVIEW_APPLICATION_NAME}.app</string>
587                     </object>
588                   </property>
589                 </serializedBean>
590                 <condition>context.getBooleanVariable("addToDockAction")</condition>
591               </action>
592             </actions>
593             <formComponents>
594               <formComponent id="21" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent" insetBottom="10">
595                 <serializedBean>
596                   <property name="labelText" type="string">${form:finishedMessage}</property>
597                 </serializedBean>
598               </formComponent>
599               <formComponent name="Add a desktop link" id="574" beanClass="com.install4j.runtime.beans.formcomponents.CheckboxComponent">
600                 <serializedBean>
601                   <property name="checkboxText" type="string">${i18n:CreateDesktopIcon}</property>
602                   <property name="initiallySelected" type="boolean" value="true" />
603                   <property name="variableName" type="string">createDesktopLinkAction</property>
604                 </serializedBean>
605               </formComponent>
606               <formComponent name="Add an executable to the dock" id="577" beanClass="com.install4j.runtime.beans.formcomponents.CheckboxComponent">
607                 <serializedBean>
608                   <property name="checkboxText" type="string">${i18n:AddToDock}</property>
609                   <property name="initiallySelected" type="boolean" value="true" />
610                   <property name="variableName" type="string">addToDockAction</property>
611                 </serializedBean>
612                 <visibilityScript>Util.isMacOS()</visibilityScript>
613               </formComponent>
614             </formComponents>
615           </screen>
616         </screens>
617       </application>
618       <application id="uninstaller" beanClass="com.install4j.runtime.beans.applications.UninstallerApplication" styleId="35">
619         <serializedBean>
620           <property name="customMacosExecutableName" type="string">${i18n:UninstallerMenuEntry(${compiler:sys.fullName})}</property>
621           <property name="useCustomMacosExecutableName" type="boolean" value="true" />
622         </serializedBean>
623         <styleOverrides>
624           <styleOverride name="Customize banner image" enabled="true">
625             <group id="147" beanClass="com.install4j.runtime.beans.groups.VerticalFormComponentGroup" useExternalParametrization="true" externalParametrizationName="Customize banner image" externalParametrizationMode="include">
626               <serializedBean>
627                 <property name="backgroundColor">
628                   <object class="java.awt.Color">
629                     <int>255</int>
630                     <int>255</int>
631                     <int>255</int>
632                     <int>255</int>
633                   </object>
634                 </property>
635                 <property name="borderSides">
636                   <object class="com.install4j.runtime.beans.formcomponents.BorderSides">
637                     <property name="bottom" type="boolean" value="true" />
638                   </object>
639                 </property>
640                 <property name="imageEdgeBackgroundColor">
641                   <object class="java.awt.Color">
642                     <int>192</int>
643                     <int>192</int>
644                     <int>192</int>
645                     <int>255</int>
646                   </object>
647                 </property>
648                 <property name="imageEdgeBorder" type="boolean" value="true" />
649                 <property name="imageFile">
650                   <object class="com.install4j.api.beans.ExternalFile">
651                     <string>${compiler:JALVIEW_DIR}/${compiler:BACKGROUND}</string>
652                   </object>
653                 </property>
654                 <property name="insets">
655                   <object class="java.awt.Insets">
656                     <int>5</int>
657                     <int>10</int>
658                     <int>10</int>
659                     <int>10</int>
660                   </object>
661                 </property>
662               </serializedBean>
663               <externalParametrizationPropertyNames>
664                 <propertyName>imageAnchor</propertyName>
665                 <propertyName>imageEdgeBackgroundColor</propertyName>
666                 <propertyName>imageFile</propertyName>
667               </externalParametrizationPropertyNames>
668             </group>
669           </styleOverride>
670         </styleOverrides>
671         <startup>
672           <screen id="23" beanClass="com.install4j.runtime.beans.screens.StartupScreen" rollbackBarrierExitCode="0">
673             <actions>
674               <action id="33" beanClass="com.install4j.runtime.beans.actions.misc.LoadResponseFileAction" rollbackBarrierExitCode="0" />
675               <action id="34" beanClass="com.install4j.runtime.beans.actions.misc.RequireInstallerPrivilegesAction" actionElevationType="none" rollbackBarrierExitCode="0" />
676             </actions>
677           </screen>
678         </startup>
679         <screens>
680           <screen id="24" beanClass="com.install4j.runtime.beans.screens.UninstallWelcomeScreen" rollbackBarrierExitCode="0">
681             <formComponents>
682               <formComponent id="25" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent" insetBottom="10">
683                 <serializedBean>
684                   <property name="labelText" type="string">${form:welcomeMessage}</property>
685                 </serializedBean>
686                 <visibilityScript>!context.isConsole()</visibilityScript>
687               </formComponent>
688               <formComponent id="26" beanClass="com.install4j.runtime.beans.formcomponents.ConsoleHandlerFormComponent">
689                 <serializedBean>
690                   <property name="consoleScript">
691                     <object class="com.install4j.api.beans.ScriptProperty">
692                       <property name="value" type="string">String message = context.getMessage("ConfirmUninstall", context.getApplicationName());
693 return console.askYesNo(message, true);
694 </property>
695                     </object>
696                   </property>
697                 </serializedBean>
698               </formComponent>
699             </formComponents>
700           </screen>
701           <screen id="27" beanClass="com.install4j.runtime.beans.screens.UninstallationScreen" rollbackBarrierExitCode="0">
702             <actions>
703               <action id="659" beanClass="com.install4j.runtime.beans.actions.control.SetProgressAction" actionElevationType="none" rollbackBarrierExitCode="0">
704                 <serializedBean>
705                   <property name="progressChangeType" type="enum" class="com.install4j.runtime.beans.actions.control.ProgressChangeType" value="SET_INDETERMINATE" />
706                 </serializedBean>
707               </action>
708               <action id="29" beanClass="com.install4j.runtime.beans.actions.UninstallFilesAction" actionElevationType="elevated" rollbackBarrierExitCode="0" />
709               <action id="660" beanClass="com.install4j.runtime.beans.actions.control.SetProgressAction" enabled="false" actionElevationType="none" rollbackBarrierExitCode="0">
710                 <serializedBean>
711                   <property name="percentValue" type="int" value="95" />
712                 </serializedBean>
713               </action>
714               <action id="1525" beanClass="com.install4j.runtime.beans.actions.files.DeleteFileAction" actionElevationType="elevated" rollbackBarrierExitCode="0">
715                 <serializedBean>
716                   <property name="files" type="array" class="java.io.File" length="36">
717                     <element index="0">
718                       <object class="java.io.File">
719                         <string>jre</string>
720                       </object>
721                     </element>
722                     <element index="1">
723                       <object class="java.io.File">
724                         <string>jre.jar</string>
725                       </object>
726                     </element>
727                     <element index="2">
728                       <object class="java.io.File">
729                         <string>.install4j</string>
730                       </object>
731                     </element>
732                     <element index="3">
733                       <object class="java.io.File">
734                         <string>getdown-launcher.jar</string>
735                       </object>
736                     </element>
737                     <element index="4">
738                       <object class="java.io.File">
739                         <string>getdown-launcher-old.jar</string>
740                       </object>
741                     </element>
742                     <element index="5">
743                       <object class="java.io.File">
744                         <string>getdown-launcher-new.jar</string>
745                       </object>
746                     </element>
747                     <element index="6">
748                       <object class="java.io.File">
749                         <string>gettingdown.lock</string>
750                       </object>
751                     </element>
752                     <element index="7">
753                       <object class="java.io.File">
754                         <string>jre.zip</string>
755                       </object>
756                     </element>
757                     <element index="8">
758                       <object class="java.io.File">
759                         <string>digest.txt</string>
760                       </object>
761                     </element>
762                     <element index="9">
763                       <object class="java.io.File">
764                         <string>digest2.txt</string>
765                       </object>
766                     </element>
767                     <element index="10">
768                       <object class="java.io.File">
769                         <string>getdown-launcher.jarv</string>
770                       </object>
771                     </element>
772                     <element index="11">
773                       <object class="java.io.File">
774                         <string>getdown-launcher-new.jarv</string>
775                       </object>
776                     </element>
777                     <element index="12">
778                       <object class="java.io.File">
779                         <string>launcher.log</string>
780                       </object>
781                     </element>
782                     <element index="13">
783                       <object class="java.io.File">
784                         <string>proxy.txt</string>
785                       </object>
786                     </element>
787                     <element index="14">
788                       <object class="java.io.File">
789                         <string>build_properties</string>
790                       </object>
791                     </element>
792                     <element index="15">
793                       <object class="java.io.File">
794                         <string>channel_launch*.jvl</string>
795                       </object>
796                     </element>
797                     <element index="16">
798                       <object class="java.io.File">
799                         <string>jalview*.jvl</string>
800                       </object>
801                     </element>
802                     <element index="17">
803                       <object class="java.io.File">
804                         <string>*.jarv</string>
805                       </object>
806                     </element>
807                     <element index="18">
808                       <object class="java.io.File">
809                         <string>*.log</string>
810                       </object>
811                     </element>
812                     <element index="19">
813                       <object class="java.io.File">
814                         <string>*.txt</string>
815                       </object>
816                     </element>
817                     <element index="20">
818                       <object class="java.io.File">
819                         <string>*_new</string>
820                       </object>
821                     </element>
822                     <element index="21">
823                       <object class="java.io.File">
824                         <string>hs_err_*.*</string>
825                       </object>
826                     </element>
827                     <element index="22">
828                       <object class="java.io.File">
829                         <string>${compiler:GETDOWN_DIST_DIR}</string>
830                       </object>
831                     </element>
832                     <element index="23">
833                       <object class="java.io.File">
834                         <string>${compiler:GETDOWN_ALT_DIR}</string>
835                       </object>
836                     </element>
837                     <element index="24">
838                       <object class="java.io.File">
839                         <string>${compiler:GETDOWN_RESOURCE_DIR}</string>
840                       </object>
841                     </element>
842                     <element index="25">
843                       <object class="java.io.File">
844                         <string>META-INF</string>
845                       </object>
846                     </element>
847                     <element index="26">
848                       <object class="java.io.File">
849                         <string>install</string>
850                       </object>
851                     </element>
852                     <element index="27">
853                       <object class="java.io.File">
854                         <string>resource</string>
855                       </object>
856                     </element>
857                     <element index="28">
858                       <object class="java.io.File">
859                         <string>dist</string>
860                       </object>
861                     </element>
862                     <element index="29">
863                       <object class="java.io.File">
864                         <string>release</string>
865                       </object>
866                     </element>
867                     <element index="30">
868                       <object class="java.io.File">
869                         <string>alt</string>
870                       </object>
871                     </element>
872                     <element index="31">
873                       <object class="java.io.File">
874                         <string>dev</string>
875                       </object>
876                     </element>
877                     <element index="32">
878                       <object class="java.io.File">
879                         <string>build</string>
880                       </object>
881                     </element>
882                     <element index="33">
883                       <object class="java.io.File">
884                         <string>alt_*</string>
885                       </object>
886                     </element>
887                     <element index="34">
888                       <object class="java.io.File">
889                         <string>dev_*</string>
890                       </object>
891                     </element>
892                     <element index="35">
893                       <object class="java.io.File">
894                         <string>build_*</string>
895                       </object>
896                     </element>
897                   </property>
898                   <property name="recursive" type="boolean" value="true" />
899                 </serializedBean>
900               </action>
901               <action id="1791" beanClass="com.install4j.runtime.beans.actions.control.SetProgressAction" actionElevationType="none" rollbackBarrierExitCode="0">
902                 <serializedBean>
903                   <property name="percentValue" type="int" value="100" />
904                 </serializedBean>
905               </action>
906             </actions>
907             <formComponents>
908               <formComponent id="28" beanClass="com.install4j.runtime.beans.formcomponents.ProgressComponent">
909                 <serializedBean>
910                   <property name="initialStatusMessage" type="string">${i18n:UninstallerPreparing}</property>
911                 </serializedBean>
912               </formComponent>
913             </formComponents>
914           </screen>
915           <screen id="32" beanClass="com.install4j.runtime.beans.screens.UninstallFailureScreen" rollbackBarrierExitCode="0" finishScreen="true" />
916           <screen id="30" beanClass="com.install4j.runtime.beans.screens.UninstallSuccessScreen" styleId="41" rollbackBarrierExitCode="0" finishScreen="true">
917             <formComponents>
918               <formComponent id="31" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent" insetBottom="10">
919                 <serializedBean>
920                   <property name="labelText" type="string">${form:successMessage}</property>
921                 </serializedBean>
922               </formComponent>
923             </formComponents>
924           </screen>
925         </screens>
926       </application>
927     </applications>
928     <styles defaultStyleId="35">
929       <style name="Standard" id="35" beanClass="com.install4j.runtime.beans.styles.FormStyle">
930         <formComponents>
931           <formComponent name="Header" id="36" beanClass="com.install4j.runtime.beans.styles.NestedStyleComponent" insetTop="0" insetBottom="0">
932             <serializedBean>
933               <property name="styleId" type="string">48</property>
934             </serializedBean>
935           </formComponent>
936           <group name="Main" id="37" beanClass="com.install4j.runtime.beans.groups.VerticalFormComponentGroup">
937             <serializedBean>
938               <property name="imageEdgeAxisType" type="enum" class="com.install4j.runtime.beans.formcomponents.AxisType" value="HORIZONTAL" />
939               <property name="imageEdgeBackgroundColor">
940                 <object class="java.awt.Color">
941                   <int>255</int>
942                   <int>255</int>
943                   <int>255</int>
944                   <int>255</int>
945                 </object>
946               </property>
947               <property name="imageFile">
948                 <object class="com.install4j.api.beans.ExternalFile">
949                   <string>${compiler:JALVIEW_DIR}/${compiler:BACKGROUND}</string>
950                 </object>
951               </property>
952               <property name="imageOverlap" type="boolean" value="true" />
953             </serializedBean>
954             <beans>
955               <formComponent id="38" beanClass="com.install4j.runtime.beans.styles.ContentComponent" insetTop="10" insetLeft="20" insetBottom="10" insetRight="20" />
956               <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">
957                 <serializedBean>
958                   <property name="enabledTitleText" type="boolean" value="false" />
959                 </serializedBean>
960                 <externalParametrizationPropertyNames>
961                   <propertyName>labelText</propertyName>
962                 </externalParametrizationPropertyNames>
963               </formComponent>
964               <formComponent name="Footer" id="40" beanClass="com.install4j.runtime.beans.styles.NestedStyleComponent" insetTop="0" insetBottom="0">
965                 <serializedBean>
966                   <property name="styleId" type="string">52</property>
967                 </serializedBean>
968               </formComponent>
969             </beans>
970           </group>
971         </formComponents>
972       </style>
973       <style name="Banner" id="41" beanClass="com.install4j.runtime.beans.styles.FormStyle">
974         <formComponents>
975           <group id="42" beanClass="com.install4j.runtime.beans.groups.VerticalFormComponentGroup" useExternalParametrization="true" externalParametrizationName="Customize banner image" externalParametrizationMode="include">
976             <serializedBean>
977               <property name="backgroundColor">
978                 <object class="java.awt.Color">
979                   <int>255</int>
980                   <int>255</int>
981                   <int>255</int>
982                   <int>255</int>
983                 </object>
984               </property>
985               <property name="borderSides">
986                 <object class="com.install4j.runtime.beans.formcomponents.BorderSides">
987                   <property name="bottom" type="boolean" value="true" />
988                 </object>
989               </property>
990               <property name="imageEdgeBackgroundColor">
991                 <object class="java.awt.Color">
992                   <int>25</int>
993                   <int>143</int>
994                   <int>220</int>
995                   <int>255</int>
996                 </object>
997               </property>
998               <property name="imageEdgeBorder" type="boolean" value="true" />
999               <property name="imageFile">
1000                 <object class="com.install4j.api.beans.ExternalFile">
1001                   <string>${compiler:sys.install4jHome}/resource/styles/wizard.png</string>
1002                 </object>
1003               </property>
1004               <property name="insets">
1005                 <object class="java.awt.Insets">
1006                   <int>5</int>
1007                   <int>10</int>
1008                   <int>10</int>
1009                   <int>10</int>
1010                 </object>
1011               </property>
1012             </serializedBean>
1013             <beans>
1014               <formComponent id="43" beanClass="com.install4j.runtime.beans.styles.ScreenTitleComponent" insetTop="0">
1015                 <serializedBean>
1016                   <property name="labelFontSizePercent" type="int" value="130" />
1017                   <property name="labelFontStyle" type="enum" class="com.install4j.runtime.beans.formcomponents.FontStyle" value="BOLD" />
1018                   <property name="labelFontType" type="enum" class="com.install4j.runtime.beans.formcomponents.FontType" value="DERIVED" />
1019                 </serializedBean>
1020               </formComponent>
1021               <formComponent id="44" beanClass="com.install4j.runtime.beans.formcomponents.SeparatorComponent" />
1022               <formComponent id="45" beanClass="com.install4j.runtime.beans.styles.ContentComponent" insetTop="10" insetBottom="0" />
1023             </beans>
1024             <externalParametrizationPropertyNames>
1025               <propertyName>imageAnchor</propertyName>
1026               <propertyName>imageEdgeBackgroundColor</propertyName>
1027               <propertyName>imageFile</propertyName>
1028             </externalParametrizationPropertyNames>
1029           </group>
1030           <formComponent id="46" beanClass="com.install4j.runtime.beans.styles.NestedStyleComponent" insetBottom="0">
1031             <serializedBean>
1032               <property name="styleId" type="string">52</property>
1033             </serializedBean>
1034           </formComponent>
1035         </formComponents>
1036       </style>
1037       <group name="Style components" id="47" beanClass="com.install4j.runtime.beans.groups.StyleGroup">
1038         <beans>
1039           <style name="Standard header" id="48" beanClass="com.install4j.runtime.beans.styles.FormStyle">
1040             <serializedBean>
1041               <property name="fillVertical" type="boolean" value="false" />
1042               <property name="standalone" type="boolean" value="false" />
1043               <property name="verticalAnchor" type="enum" class="com.install4j.api.beans.Anchor" value="NORTH" />
1044             </serializedBean>
1045             <formComponents>
1046               <group id="49" beanClass="com.install4j.runtime.beans.groups.VerticalFormComponentGroup" useExternalParametrization="true" externalParametrizationName="Customize title bar" externalParametrizationMode="include">
1047                 <serializedBean>
1048                   <property name="backgroundColor">
1049                     <object class="java.awt.Color">
1050                       <int>255</int>
1051                       <int>255</int>
1052                       <int>255</int>
1053                       <int>255</int>
1054                     </object>
1055                   </property>
1056                   <property name="borderSides">
1057                     <object class="com.install4j.runtime.beans.formcomponents.BorderSides">
1058                       <property name="bottom" type="boolean" value="true" />
1059                     </object>
1060                   </property>
1061                   <property name="imageAnchor" type="enum" class="com.install4j.api.beans.Anchor" value="NORTHEAST" />
1062                   <property name="imageEdgeBorderWidth" type="int" value="2" />
1063                   <property name="imageFile">
1064                     <object class="com.install4j.api.beans.ExternalFile">
1065                       <string>icon:${installer:sys.installerApplicationMode}_header.png</string>
1066                     </object>
1067                   </property>
1068                   <property name="imageInsets">
1069                     <object class="java.awt.Insets">
1070                       <int>0</int>
1071                       <int>5</int>
1072                       <int>1</int>
1073                       <int>1</int>
1074                     </object>
1075                   </property>
1076                   <property name="insets">
1077                     <object class="java.awt.Insets">
1078                       <int>0</int>
1079                       <int>20</int>
1080                       <int>0</int>
1081                       <int>10</int>
1082                     </object>
1083                   </property>
1084                 </serializedBean>
1085                 <beans>
1086                   <formComponent name="Title" id="50" beanClass="com.install4j.runtime.beans.styles.ScreenTitleComponent">
1087                     <serializedBean>
1088                       <property name="labelFontStyle" type="enum" class="com.install4j.runtime.beans.formcomponents.FontStyle" value="BOLD" />
1089                       <property name="labelFontType" type="enum" class="com.install4j.runtime.beans.formcomponents.FontType" value="DERIVED" />
1090                     </serializedBean>
1091                   </formComponent>
1092                   <formComponent name="Subtitle" id="51" beanClass="com.install4j.runtime.beans.styles.ScreenTitleComponent" insetLeft="8">
1093                     <serializedBean>
1094                       <property name="titleType" type="enum" class="com.install4j.runtime.beans.styles.TitleType" value="SUB_TITLE" />
1095                     </serializedBean>
1096                   </formComponent>
1097                 </beans>
1098                 <externalParametrizationPropertyNames>
1099                   <propertyName>backgroundColor</propertyName>
1100                   <propertyName>foregroundColor</propertyName>
1101                   <propertyName>imageAnchor</propertyName>
1102                   <propertyName>imageFile</propertyName>
1103                   <propertyName>imageOverlap</propertyName>
1104                 </externalParametrizationPropertyNames>
1105               </group>
1106             </formComponents>
1107           </style>
1108           <style name="Standard footer" id="52" beanClass="com.install4j.runtime.beans.styles.FormStyle">
1109             <serializedBean>
1110               <property name="fillVertical" type="boolean" value="false" />
1111               <property name="standalone" type="boolean" value="false" />
1112               <property name="verticalAnchor" type="enum" class="com.install4j.api.beans.Anchor" value="SOUTH" />
1113             </serializedBean>
1114             <formComponents>
1115               <group id="53" beanClass="com.install4j.runtime.beans.groups.HorizontalFormComponentGroup">
1116                 <serializedBean>
1117                   <property name="alignFirstLabel" type="boolean" value="false" />
1118                   <property name="insets">
1119                     <object class="java.awt.Insets">
1120                       <int>3</int>
1121                       <int>5</int>
1122                       <int>8</int>
1123                       <int>5</int>
1124                     </object>
1125                   </property>
1126                 </serializedBean>
1127                 <beans>
1128                   <formComponent id="54" beanClass="com.install4j.runtime.beans.formcomponents.SpringComponent" />
1129                   <formComponent name="Back button" id="55" beanClass="com.install4j.runtime.beans.styles.StandardControlButtonComponent">
1130                     <serializedBean>
1131                       <property name="buttonText" type="string">&lt; ${i18n:ButtonBack}</property>
1132                       <property name="controlButtonType" type="enum" class="com.install4j.api.context.ControlButtonType" value="PREVIOUS" />
1133                     </serializedBean>
1134                   </formComponent>
1135                   <formComponent name="Next button" id="56" beanClass="com.install4j.runtime.beans.styles.StandardControlButtonComponent">
1136                     <serializedBean>
1137                       <property name="buttonText" type="string">${i18n:ButtonNext} &gt;</property>
1138                       <property name="controlButtonType" type="enum" class="com.install4j.api.context.ControlButtonType" value="NEXT" />
1139                     </serializedBean>
1140                   </formComponent>
1141                   <formComponent name="Cancel button" id="57" beanClass="com.install4j.runtime.beans.styles.StandardControlButtonComponent" insetLeft="5">
1142                     <serializedBean>
1143                       <property name="buttonText" type="string">${i18n:ButtonCancel}</property>
1144                       <property name="controlButtonType" type="enum" class="com.install4j.api.context.ControlButtonType" value="CANCEL" />
1145                     </serializedBean>
1146                   </formComponent>
1147                 </beans>
1148               </group>
1149             </formComponents>
1150           </style>
1151         </beans>
1152       </group>
1153     </styles>
1154   </installerGui>
1155   <mediaSets>
1156     <windows name="Windows x64 EXE Installer" id="743" 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">
1157       <excludedComponents>
1158         <component id="1155" />
1159         <component id="1156" />
1160         <component id="1276" />
1161         <component id="1881" />
1162         <component id="2110" />
1163       </excludedComponents>
1164       <exclude>
1165         <entry defaultFileset="true" />
1166         <entry filesetId="880" />
1167         <entry filesetId="882" />
1168         <entry filesetId="1873" />
1169         <entry filesetId="2105" />
1170       </exclude>
1171       <jreBundle jreBundleSource="preCreated" includedJre="${compiler:WINDOWS_JAVA_VM_TGZ}" manualJreEntry="true" />
1172     </windows>
1173     <macosArchive name="macOS Disk Image" id="878" customizedId="MACOS_DISK_IMAGE" mediaFileName="${compiler:APPLICATION_FOLDER}-${compiler:JALVIEW_VERSION}-${compiler:sys.platform}-java_${compiler:JAVA_INTEGER_VERSION}" volumeName="${compiler:INSTALLER_NAME}" launcherId="737">
1174       <excludedComponents>
1175         <component id="1156" />
1176         <component id="1276" />
1177         <component id="1881" />
1178       </excludedComponents>
1179       <exclude>
1180         <entry defaultFileset="true" />
1181         <entry filesetId="882" />
1182         <entry filesetId="1873" />
1183       </exclude>
1184       <topLevelFiles>
1185         <symlink name="&quot; &quot;" target="/Applications" />
1186         <file name=".background/jalview_dmg_background.png" file="${compiler:JALVIEW_DIR}/${compiler:MACOS_DMG_BG_IMAGE}" />
1187         <file name=".DS_Store" file="${compiler:JALVIEW_DIR}/${compiler:MACOS_DMG_DS_STORE}" />
1188         <file name="${compiler:JALVIEW_APPLICATION_NAME}.app/Contents/Resources/Jalview-File.icns" file="${compiler:JALVIEW_DIR}/${compiler:INSTALL4J_UTILS_DIR}/Jalview-File.icns" />
1189         <file name="${compiler:JALVIEW_APPLICATION_NAME}.app/Contents/Resources/Jalview-Launch.icns" file="${compiler:JALVIEW_DIR}/${compiler:INSTALL4J_UTILS_DIR}/Jalview-Launch.icns" />
1190         <symlink name="Uninstall Old Jalview (optional).app" target="${compiler:JALVIEW_APPLICATION_NAME}.app/Contents/Resources/app/Uninstall Old Jalview.app" />
1191       </topLevelFiles>
1192     </macosArchive>
1193     <unixInstaller name="Linux x64 Shell Installer" id="1595" mediaFileName="${compiler:UNIX_APPLICATION_FOLDER}-${compiler:JALVIEW_VERSION}-linux_x64-java_${compiler:JAVA_INTEGER_VERSION}" installDir="${compiler:UNIX_APPLICATION_FOLDER}" customInstallBaseDir="~/opt/">
1194       <excludedComponents>
1195         <component id="1155" />
1196         <component id="1156" />
1197         <component id="1276" />
1198         <component id="1881" />
1199         <component id="2110" />
1200       </excludedComponents>
1201       <exclude>
1202         <entry defaultFileset="true" />
1203         <entry filesetId="880" />
1204         <entry filesetId="882" />
1205         <entry filesetId="1873" />
1206         <entry filesetId="2105" />
1207       </exclude>
1208       <jreBundle jreBundleSource="preCreated" includedJre="${compiler:LINUX_JAVA_VM_TGZ}" manualJreEntry="true" />
1209     </unixInstaller>
1210     <unixArchive name="Unix .tar.gz Archive" id="1596" mediaFileName="${compiler:UNIX_APPLICATION_FOLDER}-${compiler:JALVIEW_VERSION}-${compiler:sys.platform}-java_${compiler:JAVA_INTEGER_VERSION}" installDir="${compiler:UNIX_APPLICATION_FOLDER}">
1211       <excludedComponents>
1212         <component id="1155" />
1213         <component id="1156" />
1214         <component id="1276" />
1215         <component id="1881" />
1216         <component id="2110" />
1217       </excludedComponents>
1218       <exclude>
1219         <entry defaultFileset="true" />
1220         <entry filesetId="880" />
1221         <entry filesetId="882" />
1222         <entry filesetId="1873" />
1223         <entry filesetId="2105" />
1224       </exclude>
1225       <jreBundle includedJre="${compiler:LINUX_JAVA_VM_TGZ}" manualJreEntry="true" />
1226     </unixArchive>
1227     <unixInstaller name="Unix Shell Installer" id="2639" mediaFileName="${compiler:UNIX_APPLICATION_FOLDER}-${compiler:JALVIEW_VERSION}-${compiler:sys.platform}-java_${compiler:JAVA_INTEGER_VERSION}" installDir="${compiler:UNIX_APPLICATION_FOLDER}" customInstallBaseDir="~/opt/">
1228       <excludedComponents>
1229         <component id="1155" />
1230         <component id="1156" />
1231         <component id="1276" />
1232         <component id="1881" />
1233         <component id="2110" />
1234       </excludedComponents>
1235       <exclude>
1236         <entry defaultFileset="true" />
1237         <entry filesetId="880" />
1238         <entry filesetId="882" />
1239         <entry filesetId="1873" />
1240         <entry filesetId="2105" />
1241       </exclude>
1242       <jreBundle includedJre="${compiler:LINUX_JAVA_VM_TGZ}" manualJreEntry="true" />
1243     </unixInstaller>
1244   </mediaSets>
1245   <buildIds>
1246     <mediaSet refId="153" />
1247     <mediaSet refId="570" />
1248     <mediaSet refId="743" />
1249     <mediaSet refId="2446" />
1250     <mediaSet refId="878" />
1251     <mediaSet refId="1595" />
1252     <mediaSet refId="1596" />
1253     <mediaSet refId="2639" />
1254   </buildIds>
1255 </install4j>