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