outputs.files(install4jConf)
doLast {
+ // include file associations in installer
def installerFileAssociationsXml = file("$install4jDir/$install4jInstallerFileAssociations").text
ant.replaceregexp(
byline: false,
flags: "s",
match: '<action name="EXTENSIONS_REPLACED_BY_GRADLE".*?</action>',
- //match: '<action.*?EXTENSIONS_REPLACED_BY_GRADLE.*?</action>',
replace: installerFileAssociationsXml,
file: install4jConf
)
+ /*
+ // include uninstaller applescript app files in dmg
+ def installerDMGUninstallerXml = file("$install4jDir/$install4jDMGUninstallerAppFiles").text
+ ant.replaceregexp(
+ byline: false,
+ flags: "s",
+ match: '<file name="UNINSTALL_OLD_JALVIEW_APP_REPLACED_IN_GRADLE" file=.*?>',
+ replace: installerDMGUninstallerXml,
+ file: install4jConf
+ )
+ */
}
}
import com.sun.management.OperatingSystemMXBean;
import java.lang.management.ManagementFactory;
+import jalview.bin.MemorySetting;
import com.threerings.getdown.util.*;
// avoid ambiguity with java.util.Base64 which we can't use as it's 1.8+
jvmmempc = config.getInt(appPrefix + "jvmmempc", jvmmempc);
}
if (0 <= jvmmempc && jvmmempc <= 100) {
- final Object o = ManagementFactory.getOperatingSystemMXBean();
-
- try {
- if (o instanceof OperatingSystemMXBean) {
- final OperatingSystemMXBean osb = (OperatingSystemMXBean) o;
- long physicalMem = osb.getTotalPhysicalMemorySize();
- long requestedMem = physicalMem*jvmmempc/100;
- String[] maxMemHeapArg = new String[]{"-Xmx"+Long.toString(requestedMem)};
- // remove other max heap size arg
- ARG: for (int i = 0; i < _jvmargs.size(); i++) {
- if (_jvmargs.get(i) instanceof java.lang.String && _jvmargs.get(i).startsWith("-Xmx")) {
- _jvmargs.remove(i);
- }
- }
- addAll(maxMemHeapArg, _jvmargs);
+
+ long maxMemLong = -1;
+
+ try
+ {
+ maxMemLong = MemorySetting.memPercent(jvmmempc);
+ } catch (Exception e)
+ {
+ e.printStackTrace();
+ } catch (Throwable t)
+ {
+ t.printStackTrace();
+ }
- }
- }
- catch (NoClassDefFoundError e) {
- // com.sun.management.OperatingSystemMXBean doesn't exist in this JVM
- System.out.println("No com.sun.management.OperatingSystemMXBean. Cannot use 'jvmmempc'.");
+ if (maxMemLong > 0)
+ {
+
+ String[] maxMemHeapArg = new String[]{"-Xmx"+Long.toString(maxMemLong)};
+ // remove other max heap size arg
+ ARG: for (int i = 0; i < _jvmargs.size(); i++) {
+ if (_jvmargs.get(i) instanceof java.lang.String && _jvmargs.get(i).startsWith("-Xmx")) {
+ _jvmargs.remove(i);
+ }
}
+ addAll(maxMemHeapArg, _jvmargs);
+
+ }
+
} else if (jvmmempc != -1) {
System.out.println("'jvmmempc' value must be in range 0 to 100 (read as '"+Integer.toString(jvmmempc)+"')");
}
--- /dev/null
+package jalview.bin;
+
+import java.lang.management.ManagementFactory;
+import java.lang.management.OperatingSystemMXBean;
+
+public class MemorySetting
+{
+ public static final long leaveFreeMinMemory = 536870912; // 0.5 GB
+
+ public static final long applicationMinMemory = 536870912; // 0.5 GB
+
+ protected static long getPhysicalMemory()
+ {
+ final OperatingSystemMXBean o = ManagementFactory
+ .getOperatingSystemMXBean();
+
+ try
+ {
+ if (o instanceof com.sun.management.OperatingSystemMXBean)
+ {
+ final com.sun.management.OperatingSystemMXBean osb = (com.sun.management.OperatingSystemMXBean) o;
+ return osb.getTotalPhysicalMemorySize();
+ }
+ } catch (NoClassDefFoundError e)
+ {
+ // com.sun.management.OperatingSystemMXBean doesn't exist in this JVM
+ System.out.println("No com.sun.management.OperatingSystemMXBean");
+ }
+
+ // We didn't get a com.sun.management.OperatingSystemMXBean.
+ return -1;
+ }
+
+ public static long memPercent(int percent)
+ {
+ long memPercent = -1;
+
+ long physicalMem = getPhysicalMemory();
+ if (physicalMem > applicationMinMemory)
+ {
+ // try and set at least applicationMinMemory and thereafter ensure
+ // leaveFreeMinMemory is left for the OS
+ memPercent = Math.max(applicationMinMemory,
+ physicalMem - Math.max(physicalMem * (100 - percent) / 100,
+ leaveFreeMinMemory));
+ }
+
+ return memPercent;
+ }
+
+}
getdown_channel_base = http://www.jalview.org/getdown/jalview
getdown_channel_name = TEST
getdown_txt_allow_offline = true
-getdown_txt_jvmmempc = 95
+getdown_txt_jalview.jvmmempc = 90
getdown_txt_multi_jvmarg = -Dgetdownappdir="%APPDIR%"
getdown_txt_strict_comments = true
getdown_txt_title = Jalview
install4jTemplate = install4j_template.install4j
install4jInfoPlistFileAssociations = file_associations_auto-Info_plist.xml
install4jInstallerFileAssociations = file_associations_auto-install4j.xml
+install4jDMGUninstallerAppFiles = uninstall_old_jalview_files.xml
install4jBuildDir = build/install4j
-install4jMediaTypes = windows,macosArchive,linuxRPM,linuxDeb,unixArchive
install4jMediaTypes = windows,macosArchive,linuxRPM,linuxDeb,unixArchive,unixInstaller
install4jFaster = false
JalviewTaskbar.setTaskbar(this);
} catch (Exception e)
{
- e.printStackTrace();
+ System.out.println("Cannot set Taskbar");
+ // e.printStackTrace();
} catch (Throwable t)
{
- t.printStackTrace();
+ System.out.println("Cannot set Taskbar");
+ // t.printStackTrace();
}
desktop.setVisible(true);
}
} catch (Exception e)
{
- e.printStackTrace();
+ System.out.println("Unable to setIconImage()");
}
}
}
package jalview.bin;
import java.io.File;
+import java.io.IOException;
import java.lang.management.ManagementFactory;
-import java.lang.management.OperatingSystemMXBean;
import java.util.ArrayList;
public class Launcher
private final static String startClass = "jalview.bin.Jalview";
- private final static int maxHeapSizePerCent = 95;
+ private final static int maxHeapSizePerCent = 90;
+
+ private final static String maxHeapSizePerCentProperty = "jvmmempc";
private final static String dockIconPath = "JalviewLogo_Huge.png";
ArrayList<String> command = new ArrayList<>();
command.add(javaBin);
+ String memSetting = null;
+
boolean isAMac = System.getProperty("os.name").indexOf("Mac") > -1;
for (String jvmArg : ManagementFactory.getRuntimeMXBean()
// add memory setting if not specified
boolean memSet = false;
boolean dockIcon = false;
+ boolean dockName = false;
ARG: for (int i = 0; i < command.size(); i++)
{
String arg = command.get(i);
if (arg.startsWith("-Xmx"))
{
+ memSetting = arg;
memSet = true;
}
else if (arg.startsWith("-Xdock:icon"))
{
dockIcon = true;
}
+ else if (arg.startsWith("-Xdock:name"))
+ {
+ dockName = true;
+ }
}
if (!memSet)
{
long maxMemLong = -1;
- long physicalMem = getPhysicalMemory();
- if (physicalMem > 0)
+ int percent = maxHeapSizePerCent;
+ String jvmmempc = System.getProperty(maxHeapSizePerCentProperty);
+ try
+ {
+ if (jvmmempc != null)
+ {
+ int trypercent = Integer.parseInt(jvmmempc);
+ if (0 < trypercent && trypercent <= 100)
+ {
+ percent = trypercent;
+ }
+ else
+ {
+ System.out.println("Property '" + maxHeapSizePerCentProperty
+ + "' should be in range 1..100");
+ }
+ }
+ } catch (Exception e)
+ {
+ System.out.println("Error parsing " + maxHeapSizePerCentProperty
+ + " '" + jvmmempc + "'");
+ }
+
+ try
{
- maxMemLong = physicalMem * maxHeapSizePerCent / 100;
+ maxMemLong = MemorySetting.memPercent(percent);
+ } catch (Exception e)
+ {
+ e.printStackTrace();
+ } catch (Throwable t)
+ {
+ t.printStackTrace();
}
+
if (maxMemLong > 0)
{
- command.add("-Xmx" + Long.toString(maxMemLong));
+ memSetting = "-Xmx" + Long.toString(maxMemLong);
+ command.add(memSetting);
}
}
- if (!dockIcon && isAMac)
+ if (isAMac)
{
- command.add("-Xdock:icon=" + dockIconPath);
- // -Xdock:name=... doesn't actually work :(
- // Leaving it in in case it gets fixed
- command.add("-Xdock:name=" + "Jalview");
+ if (!dockIcon)
+ {
+ command.add("-Xdock:icon=" + dockIconPath);
+ }
+ if (!dockName)
+ {
+ // -Xdock:name=... doesn't actually work :(
+ // Leaving it in in case it gets fixed
+ command.add("-Xdock:name=" + "Jalview");
+ }
}
command.add(startClass);
final ProcessBuilder builder = new ProcessBuilder(command);
- System.out.println("COMMAND: " + String.join(" ", builder.command()));
+ // System.out.println("COMMAND: " + String.join(" ", builder.command()));
+ System.out.println("Running " + startClass + " with "
+ + (memSetting == null ? "no memSetting" : memSetting));
try
{
builder.inheritIO();
Process process = builder.start();
process.waitFor();
- } catch (Exception e)
+ } catch (IOException e)
{
- e.printStackTrace();
- }
- // System.exit(0);
-
- }
-
- public static long getPhysicalMemory()
- {
- final OperatingSystemMXBean o = ManagementFactory
- .getOperatingSystemMXBean();
-
- try
- {
- if (o instanceof com.sun.management.OperatingSystemMXBean)
+ if (e.getMessage().toLowerCase().contains("memory"))
+ {
+ System.out.println("Caught a memory exception: " + e.getMessage());
+ // Probably the "Cannot allocate memory" error, try without the memory setting
+ ArrayList<String> commandNoMem = new ArrayList<>();
+ for (int i = 0; i < command.size(); i++)
+ {
+ if (!command.get(i).startsWith("-Xmx"))
+ {
+ commandNoMem.add(command.get(i));
+ }
+ }
+ final ProcessBuilder builderNoMem = new ProcessBuilder(
+ commandNoMem);
+ System.out.println("NO MEM COMMAND: "
+ + String.join(" ", builderNoMem.command()));
+ try
+ {
+ builderNoMem.inheritIO();
+ Process processNoMem = builderNoMem.start();
+ processNoMem.waitFor();
+ } catch (Exception ex)
+ {
+ ex.printStackTrace();
+ }
+ }
+ else
{
- final com.sun.management.OperatingSystemMXBean osb = (com.sun.management.OperatingSystemMXBean) o;
- return osb.getTotalPhysicalMemorySize();
+ e.printStackTrace();
}
- } catch (NoClassDefFoundError e)
+ } catch (Exception e)
{
- // com.sun.management.OperatingSystemMXBean doesn't exist in this JVM
- System.out.println("No com.sun.management.OperatingSystemMXBean");
+ e.printStackTrace();
}
+ // System.exit(0);
- // We didn't get a com.sun.management.OperatingSystemMXBean.
- return -1;
}
}
--- /dev/null
+package jalview.bin;
+
+import java.lang.management.ManagementFactory;
+import java.lang.management.OperatingSystemMXBean;
+
+public class MemorySetting
+{
+ public static final long leaveFreeMinMemory = 536870912; // 0.5 GB
+
+ public static final long applicationMinMemory = 536870912; // 0.5 GB
+
+ protected static long getPhysicalMemory()
+ {
+ final OperatingSystemMXBean o = ManagementFactory
+ .getOperatingSystemMXBean();
+
+ try
+ {
+ if (o instanceof com.sun.management.OperatingSystemMXBean)
+ {
+ final com.sun.management.OperatingSystemMXBean osb = (com.sun.management.OperatingSystemMXBean) o;
+ return osb.getTotalPhysicalMemorySize();
+ }
+ } catch (NoClassDefFoundError e)
+ {
+ // com.sun.management.OperatingSystemMXBean doesn't exist in this JVM
+ System.out.println("No com.sun.management.OperatingSystemMXBean");
+ }
+
+ // We didn't get a com.sun.management.OperatingSystemMXBean.
+ return -1;
+ }
+
+ public static long memPercent(int percent)
+ {
+ long memPercent = -1;
+
+ long physicalMem = getPhysicalMemory();
+ if (physicalMem > applicationMinMemory)
+ {
+ // try and set at least applicationMinMemory and thereafter ensure
+ // leaveFreeMinMemory is left for the OS
+ memPercent = Math.max(applicationMinMemory,
+ physicalMem - Math.max(physicalMem * (100 - percent) / 100,
+ leaveFreeMinMemory));
+ }
+
+ return memPercent;
+ }
+
+}
{
System.out.println(
"Exception when looking for About, Preferences, Quit Handlers");
- e.printStackTrace();
+ // e.printStackTrace();
} catch (Throwable t)
{
System.out.println(
"Throwable when looking for About, Preferences, Quit Handlers");
- t.printStackTrace();
+ // t.printStackTrace();
}
}
APQHandlers.setAPQHandlers(this);
} catch (Exception e)
{
- System.out.println("Exception when trying to set APQHandlers");
- e.printStackTrace();
+ System.out.println("Cannot set APQHandlers");
+ // e.printStackTrace();
} catch (Throwable t)
{
- System.out.println("Throwable when trying to set APQHandlers");
- t.printStackTrace();
+ System.out.println("Cannot set APQHandlers");
+ // t.printStackTrace();
}
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>CFBundleAllowMixedLocalizations</key>
+ <true/>
+ <key>CFBundleDevelopmentRegion</key>
+ <string>English</string>
+ <key>CFBundleExecutable</key>
+ <string>applet</string>
+ <key>CFBundleIconFile</key>
+ <string>applet</string>
+ <key>CFBundleIdentifier</key>
+ <string>com.apple.ScriptEditor.id.Uninstall-Old-Jalview</string>
+ <key>CFBundleInfoDictionaryVersion</key>
+ <string>6.0</string>
+ <key>CFBundleName</key>
+ <string>Uninstall Old Jalview</string>
+ <key>CFBundlePackageType</key>
+ <string>APPL</string>
+ <key>CFBundleShortVersionString</key>
+ <string>1.0</string>
+ <key>CFBundleSignature</key>
+ <string>aplt</string>
+ <key>LSMinimumSystemVersionByArchitecture</key>
+ <dict>
+ <key>x86_64</key>
+ <string>10.6</string>
+ </dict>
+ <key>LSRequiresCarbon</key>
+ <true/>
+ <key>WindowState</key>
+ <dict>
+ <key>bundleDividerCollapsed</key>
+ <true/>
+ <key>bundlePositionOfDivider</key>
+ <real>0.0</real>
+ <key>dividerCollapsed</key>
+ <false/>
+ <key>eventLogLevel</key>
+ <integer>2</integer>
+ <key>name</key>
+ <string>ScriptWindowState</string>
+ <key>positionOfDivider</key>
+ <real>223</real>
+ <key>savedFrame</key>
+ <string>329 957 700 672 0 0 3360 1867 </string>
+ <key>selectedTab</key>
+ <string>description</string>
+ </dict>
+</dict>
+</plist>
--- /dev/null
+APPLaplt
\ No newline at end of file
--- /dev/null
+{\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf600
+{\fonttbl}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+}
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<install4j version="7.0.9" transformSequenceNumber="7">
- <directoryPresets config="../../../../../buildtools/jre/openjdk-java_vm/macos-jdk8u202-b08-jre" />
+ <directoryPresets config="." />
<application name="Jalview" distributionSourceDir="" applicationId="6595-2347-1923-0725" mediaDir="../../build/install4j" mediaFilePattern="${compiler:sys.shortName}_${compiler:sys.platform}_${compiler:sys.version}" compression="6" lzmaCompression="true" pack200Compression="false" excludeSignedFromPacking="true" commonExternalFiles="false" createMd5Sums="true" shrinkRuntime="true" shortName="Jalview" publisher="University of Dundee" publisherWeb="http://www.jalview.org/" version="$$VERSION$$" allPathsRelative="true" backupOnSave="false" autoSave="false" convertDotsToUnderscores="true" macSignature="????" macVolumeId="5aac4968c304f65" javaMinVersion="9999999999" javaMaxVersion="" allowBetaVM="true" jdkMode="jdk" jdkName="JDK 11.0">
<languages skipLanguageSelection="false" languageSelectionInPrincipalLanguage="false">
<principalLanguage id="en" customLocalizationFile="" />
</languages>
<searchSequence>
<directory location="${compiler:JRE_DIR}" />
+ <registry />
+ <envVar name="JAVA_HOME" />
</searchSequence>
<variables>
<variable name="OSX_KEYSTORE" value="" description="" category="" />
<fileset name="Full file set" id="734" customizedId="" />
<fileset name="Mac OS X JRE" id="880" customizedId="" />
<fileset name="Windows JRE" id="882" customizedId="" />
+ <fileset name="Jalview application" id="1873" customizedId="" />
+ <fileset name="MacOS Old Jalview Uninstaller" id="2105" customizedId="" />
</filesets>
<roots>
<root id="735" fileset="734" location="" />
<root id="881" fileset="880" location="" />
<root id="883" fileset="882" location="" />
+ <root id="1874" fileset="1873" location="" />
+ <root id="2106" fileset="2105" location="" />
</roots>
<mountPoints>
<mountPoint id="454" root="" location="" mode="755" />
<mountPoint id="736" root="735" location="" mode="755" />
<mountPoint id="884" root="881" location="" mode="755" />
<mountPoint id="885" root="883" location="" mode="755" />
+ <mountPoint id="1875" root="1874" location="" mode="755" />
+ <mountPoint id="2107" root="2106" location="" mode="755" />
</mountPoints>
<entries>
<dirEntry mountPoint="454" file="../../getdown/files/$$JAVA_VERSION$$" overwriteMode="4" shared="false" fileMode="644" uninstallMode="2" overrideFileMode="false" overrideOverwriteMode="true" overrideUninstallMode="true" entryMode="direct" subDirectory="files" excludeSuffixes="" dirMode="755" overrideDirMode="false">
<dirEntry mountPoint="885" file="$$WINDOWS_JAVA_VM_DIR$$" overwriteMode="4" shared="false" fileMode="755" uninstallMode="0" overrideFileMode="true" overrideOverwriteMode="false" overrideUninstallMode="true" entryMode="subdir" subDirectory="${compiler:JRE_DIR}" excludeSuffixes="" dirMode="755" overrideDirMode="false">
<exclude />
</dirEntry>
+ <dirEntry mountPoint="1875" file="../../getdown/website/$$JAVA_VERSION$$/dist" overwriteMode="1" shared="false" fileMode="644" uninstallMode="2" overrideFileMode="true" overrideOverwriteMode="true" overrideUninstallMode="true" entryMode="subdir" subDirectory="dist" excludeSuffixes="" dirMode="755" overrideDirMode="true">
+ <exclude />
+ </dirEntry>
+ <dirEntry mountPoint="2107" file="Uninstall Old Jalview.app" overwriteMode="4" shared="false" fileMode="755" uninstallMode="0" overrideFileMode="true" overrideOverwriteMode="false" overrideUninstallMode="false" entryMode="subdir" subDirectory="Uninstall Old Jalview.app" excludeSuffixes="" dirMode="755" overrideDirMode="true">
+ <exclude />
+ </dirEntry>
</entries>
<components>
<component name="jalview_getdown" id="1031" customizedId="" displayDescription="false" hideHelpButton="false" selected="true" changeable="true" downloadable="false" hidden="false">
</include>
<dependencies />
</component>
+ <component name="jalview" id="1881" customizedId="" displayDescription="false" hideHelpButton="false" selected="true" changeable="true" downloadable="false" hidden="false">
+ <description />
+ <include all="false">
+ <entry location=".i4j_fileset_1873" fileType="regular" />
+ </include>
+ <dependencies />
+ </component>
+ <component name="macos_old_jalview_uninstaller" id="2110" customizedId="" displayDescription="false" hideHelpButton="false" selected="true" changeable="true" downloadable="false" hidden="false">
+ <description />
+ <include all="false">
+ <entry location=".i4j_fileset_2105" fileType="regular" />
+ </include>
+ <dependencies />
+ </component>
</components>
</files>
<launchers>
<file path="../../resources/images/JalviewLogo_Huge.png" />
</iconImageFiles>
</launcher>
+ <launcher name="Jalview package" id="1876" customizedId="" external="false" excludeFromMenu="false" unixMode="755" unixAutoStart="true" menuName="${compiler:sys.shortName} $$VERSION$$" icnsFile="" customMacBundleIdentifier="false" macBundleIdentifier="" swtApp="false" fileset="1873" macBundleBinary="JavaApplicationStub" addMacEntitlements="false" macEntitlementsFile="" useCustomMacosExecutableName="false" customMacosExecutableName="" useJavaMinVersionOverride="false" javaMinVersionOverride="" useJavaMaxVersionOverride="false" javaMaxVersionOverride="" checkUpdater="false" updateExecutionMode="unattendedProgress" unattendedUpdateTitle="${i18n:updater.WindowTitle("${compiler:sys.fullName}")}">
+ <executable name="${compiler:sys.shortName}" type="1" iconSet="true" iconFile="" executableDir="" redirectStderr="false" stderrFile="error.log" stderrMode="overwrite" redirectStdout="false" stdoutFile="output.log" stdoutMode="overwrite" failOnStderrOutput="false" executableMode="1" changeWorkingDirectory="false" workingDirectory="." singleInstance="true" serviceStartType="2" serviceDependencies="" serviceDescription="" jreLocation="" executionLevel="asInvoker" checkConsoleParameter="false" globalSingleInstance="false" singleInstanceActivate="true" dpiAware="java9+">
+ <versionInfo include="false" fileVersion="" fileDescription="" legalCopyright="" internalName="" productName="" />
+ </executable>
+ <splashScreen show="false" width="0" height="0" bitmapFile="" textOverlay="false">
+ <text>
+ <statusLine x="20" y="20" text="" fontSize="8" fontColor="0,0,0" bold="false" />
+ <versionLine x="20" y="40" text="version ${compiler:sys.version}" fontSize="8" fontColor="0,0,0" bold="false" />
+ </text>
+ </splashScreen>
+ <java mainClass="jalview.bin.Launcher" mainMode="1" vmParameters="" arguments="" allowVMPassthroughParameters="true" preferredVM="" bundleRuntime="true">
+ <classPath>
+ <scanDirectory location="dist" failOnError="false" />
+ </classPath>
+ <modulePath />
+ <nativeLibraryDirectories />
+ <vmOptions />
+ </java>
+ <includedFiles />
+ <unextractableFiles />
+ <vmOptionsFile mode="template" overwriteMode="0" fileMode="644">
+ <content />
+ </vmOptionsFile>
+ <customScript mode="1" file="">
+ <content />
+ </customScript>
+ <infoPlist mode="1" file="">
+ <content />
+ </infoPlist>
+ <iconImageFiles>
+ <file path="../../resources/images/JalviewLogo_Huge.png" />
+ </iconImageFiles>
+ </launcher>
</launchers>
<installerGui installerType="1" addOnAppId="" suggestPreviousLocations="true" autoUpdateDescriptorUrl="https://www.jalview.org/install4j/updates.xml" useAutoUpdateBaseUrl="false" autoUpdateBaseUrl="">
<staticMembers script="" />
<preActivation />
<postActivation />
<actions>
+ <action name="" id="2012" customizedId="" beanClass="com.install4j.runtime.beans.actions.desktop.CreateStartMenuEntryAction" enabled="true" commentSet="false" comment="" actionElevationType="elevated" rollbackBarrier="false" rollbackBarrierExitCode="0" multiExec="false" failureStrategy="1" errorMessage="">
+ <serializedBean>
+ <java class="java.beans.XMLDecoder">
+ <object class="com.install4j.runtime.beans.actions.desktop.CreateStartMenuEntryAction">
+ <void property="allUsers">
+ <boolean>false</boolean>
+ </void>
+ <void property="entryName">
+ <string>${compiler:sys.shortName}</string>
+ </void>
+ <void property="file">
+ <object class="java.io.File">
+ <string>${compiler:sys.shortName}</string>
+ </object>
+ </void>
+ <void property="icon">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>../../resources/images/jalview_logos.ico</string>
+ </object>
+ </void>
+ <void property="unixIconFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>../../resources/images/JalviewLogo_Huge.png</string>
+ </object>
+ </void>
+ </object>
+ </java>
+ </serializedBean>
+ <condition>!context.getBooleanVariable("sys.programGroupDisabled")</condition>
+ </action>
<action name="" id="573" customizedId="" beanClass="com.install4j.runtime.beans.actions.desktop.CreateDesktopLinkAction" enabled="true" commentSet="false" comment="" actionElevationType="elevated" rollbackBarrier="false" rollbackBarrierExitCode="0" multiExec="false" failureStrategy="1" errorMessage="Could not make desktop link">
<serializedBean>
<java class="java.beans.XMLDecoder">
</styles>
</installerGui>
<mediaSets>
- <linuxDeb name="Linux Deb Archive" id="153" customizedId="" mediaFileName="" installDir="/opt/${compiler:sys.shortName}" overridePrincipalLanguage="false" jreBitType="all" runPostProcessor="false" postProcessor="" failOnPostProcessorError="false" useLegacyMediaFileIds="false" legacyMediaFileIds="" downloadURL="" includeAllDownloadableComponents="true" includedJRE="" manualJREEntry="false" overwriteNeverAsConfigFiles="false" dependencies="" bzip="true" description="Jalview Desktop" maintainerEmail="help@jalview.org" architectureSet="false" architecture="">
+ <linuxDeb name="Jalview .deb Package" id="153" customizedId="" mediaFileName="jalview-$$VERSION$$" installDir="/opt/${compiler:sys.shortName}" overridePrincipalLanguage="false" jreBitType="all" runPostProcessor="false" postProcessor="" failOnPostProcessorError="false" useLegacyMediaFileIds="false" legacyMediaFileIds="" downloadURL="" includeAllDownloadableComponents="true" includedJRE="" manualJREEntry="false" overwriteNeverAsConfigFiles="false" dependencies="openjdk-8-jre" bzip="true" description="Jalview Desktop" maintainerEmail="help@jalview.org" architectureSet="false" architecture="">
<excludedComponents>
+ <component id="1031" />
<component id="1155" />
<component id="1156" />
<component id="1276" />
+ <component id="2110" />
</excludedComponents>
<includedDownloadableComponents />
<excludedLaunchers>
+ <launcher id="737" />
<launcher id="1402" />
</excludedLaunchers>
<excludedBeans />
<overriddenPrincipalLanguage id="en" customLocalizationFile="" />
<exclude>
<entry location=".i4j_fileset_" fileType="regular" />
+ <entry location=".i4j_fileset_734" fileType="regular" />
<entry location=".i4j_fileset_880" fileType="regular" />
<entry location=".i4j_fileset_882" fileType="regular" />
</exclude>
<content />
</postUninstallScript>
</linuxDeb>
- <linuxRPM name="Linux RPM" id="570" customizedId="" mediaFileName="" installDir="/opt/${compiler:sys.shortName}" overridePrincipalLanguage="false" jreBitType="all" runPostProcessor="false" postProcessor="" failOnPostProcessorError="false" useLegacyMediaFileIds="false" legacyMediaFileIds="" downloadURL="" includeAllDownloadableComponents="true" includedJRE="" manualJREEntry="false" overwriteNeverAsConfigFiles="false" dependencies="" os="linux" arch="i386">
+ <linuxRPM name="Jalview RPM Package" id="570" customizedId="" mediaFileName="jalview-$$VERSION$$" installDir="/opt/${compiler:sys.shortName}" overridePrincipalLanguage="false" jreBitType="all" runPostProcessor="false" postProcessor="" failOnPostProcessorError="false" useLegacyMediaFileIds="false" legacyMediaFileIds="" downloadURL="" includeAllDownloadableComponents="true" includedJRE="" manualJREEntry="false" overwriteNeverAsConfigFiles="false" dependencies="java-1.8.0-openjdk" os="linux" arch="noarch">
<excludedComponents>
+ <component id="1031" />
<component id="1155" />
<component id="1156" />
<component id="1276" />
+ <component id="2110" />
</excludedComponents>
<includedDownloadableComponents />
<excludedLaunchers>
+ <launcher id="737" />
<launcher id="1402" />
</excludedLaunchers>
<excludedBeans />
<overriddenPrincipalLanguage id="en" customLocalizationFile="" />
<exclude>
<entry location=".i4j_fileset_" fileType="regular" />
+ <entry location=".i4j_fileset_734" fileType="regular" />
<entry location=".i4j_fileset_880" fileType="regular" />
<entry location=".i4j_fileset_882" fileType="regular" />
</exclude>
<content />
</postUninstallScript>
</linuxRPM>
- <windows name="Offline Windows" id="743" customizedId="" mediaFileName="${compiler:sys.shortName}-OFFLINE_${compiler:sys.platform}_${compiler:sys.version}-j$$JAVA_INTEGER_VERSION$$" installDir="${compiler:sys.shortName}" overridePrincipalLanguage="false" jreBitType="64" runPostProcessor="true" postProcessor="${compiler:JSIGN_SH} $EXECUTABLE" failOnPostProcessorError="false" useLegacyMediaFileIds="false" legacyMediaFileIds="" downloadURL="" includeAllDownloadableComponents="false" includedJRE="$$WINDOWS_JAVA_VM_TGZ$$" manualJREEntry="true" bundleType="1" jreURL="" jreShared="false" directDownload="false" installOnlyIfNecessary="false" customInstallBaseDir="~/AppData/Local" contentFilesType="1" verifyIntegrity="true">
+ <windows name="Offline Windows x64 Installer" id="743" customizedId="" mediaFileName="${compiler:sys.shortName}-OFFLINE_${compiler:sys.platform}_${compiler:sys.version}-j$$JAVA_INTEGER_VERSION$$" installDir="${compiler:sys.shortName}" overridePrincipalLanguage="false" jreBitType="64" runPostProcessor="true" postProcessor="${compiler:JSIGN_SH} $EXECUTABLE" failOnPostProcessorError="false" useLegacyMediaFileIds="false" legacyMediaFileIds="" downloadURL="" includeAllDownloadableComponents="false" includedJRE="$$WINDOWS_JAVA_VM_TGZ$$" manualJREEntry="true" bundleType="1" jreURL="" jreShared="false" directDownload="false" installOnlyIfNecessary="false" customInstallBaseDir="~/AppData/Local" contentFilesType="1" verifyIntegrity="true">
<excludedComponents>
<component id="1155" />
<component id="1156" />
<component id="1276" />
+ <component id="1881" />
+ <component id="2110" />
</excludedComponents>
<includedDownloadableComponents />
<excludedLaunchers>
<exclude>
<entry location=".i4j_fileset_" fileType="regular" />
<entry location=".i4j_fileset_880" fileType="regular" />
+ <entry location=".i4j_fileset_882" fileType="regular" />
+ <entry location=".i4j_fileset_1873" fileType="regular" />
+ </exclude>
+ <variables />
+ <autoUpdate useMinUpdatableVersion="false" minUpdatableVersion="" useMaxUpdatableVersion="false" maxUpdatableVersion="">
+ <commentFiles />
+ <customAttributes />
+ </autoUpdate>
+ </windows>
+ <windows name="Network Windows x64 Installer" id="1862" customizedId="" mediaFileName="${compiler:sys.shortName}-NETWORK_${compiler:sys.platform}_${compiler:sys.version}-j$$JAVA_INTEGER_VERSION$$" installDir="${compiler:sys.shortName}" overridePrincipalLanguage="false" jreBitType="64" runPostProcessor="true" postProcessor="${compiler:JSIGN_SH} $EXECUTABLE" failOnPostProcessorError="false" useLegacyMediaFileIds="false" legacyMediaFileIds="" downloadURL="" includeAllDownloadableComponents="false" includedJRE="$$WINDOWS_JAVA_VM_TGZ$$" manualJREEntry="true" bundleType="1" jreURL="" jreShared="false" directDownload="false" installOnlyIfNecessary="false" customInstallBaseDir="~/AppData/Local" contentFilesType="1" verifyIntegrity="true">
+ <excludedComponents>
+ <component id="1031" />
+ <component id="1155" />
+ <component id="1156" />
+ <component id="1881" />
+ <component id="2110" />
+ </excludedComponents>
+ <includedDownloadableComponents />
+ <excludedLaunchers />
+ <excludedBeans />
+ <overriddenPrincipalLanguage id="en" customLocalizationFile="" />
+ <exclude>
+ <entry location=".i4j_fileset_734" fileType="regular" />
+ <entry location=".i4j_fileset_880" fileType="regular" />
+ <entry location=".i4j_fileset_1873" fileType="regular" />
</exclude>
<variables />
<autoUpdate useMinUpdatableVersion="false" minUpdatableVersion="" useMaxUpdatableVersion="false" maxUpdatableVersion="">
<customAttributes />
</autoUpdate>
</windows>
- <macosArchive name="Offline macOS Single Bundle Archive" id="878" customizedId="" mediaFileName="${compiler:sys.shortName}-OFFLINE_${compiler:sys.platform}-app_${compiler:sys.version}-j$$JAVA_INTEGER_VERSION$$" installDir="${compiler:sys.shortName}" overridePrincipalLanguage="false" jreBitType="all" runPostProcessor="false" postProcessor="" failOnPostProcessorError="false" useLegacyMediaFileIds="false" legacyMediaFileIds="" downloadURL="" includeAllDownloadableComponents="true" includedJRE="" manualJREEntry="false" archiveType="dmg" volumeName="${compiler:sys.shortName} Installer" launcherId="737">
+ <macosArchive name="Offline macOS Disk Image" id="878" customizedId="" mediaFileName="${compiler:sys.shortName}-OFFLINE_${compiler:sys.platform}-app_${compiler:sys.version}-j$$JAVA_INTEGER_VERSION$$" installDir="${compiler:sys.shortName}" overridePrincipalLanguage="false" jreBitType="all" runPostProcessor="false" postProcessor="" failOnPostProcessorError="false" useLegacyMediaFileIds="false" legacyMediaFileIds="" downloadURL="" includeAllDownloadableComponents="true" includedJRE="" manualJREEntry="false" archiveType="dmg" volumeName="${compiler:sys.shortName} Installer" launcherId="737">
<excludedComponents>
<component id="1156" />
<component id="1276" />
+ <component id="1881" />
</excludedComponents>
<includedDownloadableComponents />
<excludedBeans />
<exclude>
<entry location=".i4j_fileset_" fileType="regular" />
<entry location=".i4j_fileset_882" fileType="regular" />
+ <entry location=".i4j_fileset_1873" fileType="regular" />
</exclude>
<variables />
<autoUpdate useMinUpdatableVersion="false" minUpdatableVersion="" useMaxUpdatableVersion="false" maxUpdatableVersion="">
<symlink name="Jalview.app/Contents/Resources/app/${compiler:JRE_DIR}/Contents/MacOS/libjli.dylib" target="../Home/lib/jli/libjli.dylib" />
<file name="Jalview.app/Contents/Resources/Jalview-File.icns" file="./Jalview-File.icns" />
<file name="Jalview.app/Contents/Resources/Jalview-Version-Locator.icns" file="Jalview-Version-Locator.icns" />
+ <symlink name="Uninstall Old Jalview.app" target="Jalview.app/Contents/Resources/app/Uninstall Old Jalview.app" />
</topLevelFiles>
</macosArchive>
- <macosArchive name="Network macOS Single Bundle Archive" id="1274" customizedId="" mediaFileName="${compiler:sys.shortName}-NETWORK_${compiler:sys.platform}-app_${compiler:sys.version}-j$$JAVA_INTEGER_VERSION$$" installDir="${compiler:sys.shortName}" overridePrincipalLanguage="false" jreBitType="all" runPostProcessor="false" postProcessor="" failOnPostProcessorError="false" useLegacyMediaFileIds="false" legacyMediaFileIds="" downloadURL="" includeAllDownloadableComponents="true" includedJRE="" manualJREEntry="false" archiveType="dmg" volumeName="${compiler:sys.shortName} Installer" launcherId="1402">
+ <macosArchive name="Network macOS Disk Image" id="1274" customizedId="" mediaFileName="${compiler:sys.shortName}-NETWORK_${compiler:sys.platform}-app_${compiler:sys.version}-j$$JAVA_INTEGER_VERSION$$" installDir="${compiler:sys.shortName}" overridePrincipalLanguage="false" jreBitType="all" runPostProcessor="false" postProcessor="" failOnPostProcessorError="false" useLegacyMediaFileIds="false" legacyMediaFileIds="" downloadURL="" includeAllDownloadableComponents="true" includedJRE="" manualJREEntry="false" archiveType="dmg" volumeName="${compiler:sys.shortName} Installer" launcherId="1402">
<excludedComponents>
<component id="1031" />
<component id="1156" />
+ <component id="1881" />
</excludedComponents>
<includedDownloadableComponents />
<excludedBeans />
<exclude>
<entry location=".i4j_fileset_734" fileType="regular" />
<entry location=".i4j_fileset_882" fileType="regular" />
+ <entry location=".i4j_fileset_1873" fileType="regular" />
</exclude>
<variables />
<autoUpdate useMinUpdatableVersion="false" minUpdatableVersion="" useMaxUpdatableVersion="false" maxUpdatableVersion="">
<symlink name="Jalview.app/Contents/Resources/app/${compiler:JRE_DIR}/Contents/MacOS/libjli.dylib" target="../Home/lib/jli/libjli.dylib" />
<file name="Jalview.app/Contents/Resources/Jalview-Version-Locator.icns" file="Jalview-Version-Locator.icns" />
<file name="Jalview.app/Contents/Resources/Jalview-File.icns" file="Jalview-File.icns" />
+ <symlink name="Uninstall Old Jalview.app" target="Jalview.app/Contents/Resources/app/Uninstall Old Jalview.app" />
</topLevelFiles>
</macosArchive>
- <unixInstaller name="Unix Installer" id="1595" customizedId="" mediaFileName="${compiler:sys.shortName}-OFFLINE_${compiler:sys.platform}_installer_${compiler:sys.version}-j$$JAVA_INTEGER_VERSION$$" installDir="${compiler:sys.shortName}" overridePrincipalLanguage="false" jreBitType="all" runPostProcessor="false" postProcessor="" failOnPostProcessorError="false" useLegacyMediaFileIds="false" legacyMediaFileIds="" downloadURL="" includeAllDownloadableComponents="false" includedJRE="" manualJREEntry="false" bundleType="1" jreURL="" jreShared="false" directDownload="false" installOnlyIfNecessary="false" customInstallBaseDir="" contentFilesType="1">
- <excludedComponents />
+ <unixInstaller name="Offline Unix Shell Installer" id="1595" customizedId="" mediaFileName="${compiler:sys.shortName}-OFFLINE_${compiler:sys.platform}_installer_${compiler:sys.version}-j$$JAVA_INTEGER_VERSION$$" installDir="${compiler:sys.shortName}" overridePrincipalLanguage="false" jreBitType="all" runPostProcessor="false" postProcessor="" failOnPostProcessorError="false" useLegacyMediaFileIds="false" legacyMediaFileIds="" downloadURL="" includeAllDownloadableComponents="false" includedJRE="" manualJREEntry="false" bundleType="1" jreURL="" jreShared="false" directDownload="false" installOnlyIfNecessary="false" customInstallBaseDir="~/opt/" contentFilesType="1">
+ <excludedComponents>
+ <component id="1155" />
+ <component id="1156" />
+ <component id="1276" />
+ <component id="1881" />
+ <component id="2110" />
+ </excludedComponents>
<includedDownloadableComponents />
<excludedLaunchers>
<launcher id="1402" />
<excludedBeans />
<overriddenPrincipalLanguage id="en" customLocalizationFile="" />
<exclude>
- <entry location=".i4j_fileset_734" fileType="regular" />
+ <entry location=".i4j_fileset_" fileType="regular" />
<entry location=".i4j_fileset_880" fileType="regular" />
<entry location=".i4j_fileset_882" fileType="regular" />
+ <entry location=".i4j_fileset_1873" fileType="regular" />
</exclude>
<variables />
<autoUpdate useMinUpdatableVersion="false" minUpdatableVersion="" useMaxUpdatableVersion="false" maxUpdatableVersion="">
<content />
</installerScript>
</unixInstaller>
- <unixArchive name="Unix Archive" id="1596" customizedId="" mediaFileName="${compiler:sys.shortName}-OFFLINE_${compiler:sys.platform}_archive_${compiler:sys.version}-j$$JAVA_INTEGER_VERSION$$" installDir="${compiler:sys.shortName}" overridePrincipalLanguage="false" jreBitType="all" runPostProcessor="false" postProcessor="" failOnPostProcessorError="false" useLegacyMediaFileIds="false" legacyMediaFileIds="" downloadURL="" includeAllDownloadableComponents="true" includedJRE="" manualJREEntry="false">
+ <unixInstaller name="Network Unix Shell Installer" id="1867" customizedId="" mediaFileName="${compiler:sys.shortName}-NETWORK_${compiler:sys.platform}_installer_${compiler:sys.version}-j$$JAVA_INTEGER_VERSION$$" installDir="${compiler:sys.shortName}" overridePrincipalLanguage="false" jreBitType="all" runPostProcessor="false" postProcessor="" failOnPostProcessorError="false" useLegacyMediaFileIds="false" legacyMediaFileIds="" downloadURL="" includeAllDownloadableComponents="false" includedJRE="" manualJREEntry="false" bundleType="1" jreURL="" jreShared="false" directDownload="false" installOnlyIfNecessary="false" customInstallBaseDir="~/opt/" contentFilesType="1">
<excludedComponents>
<component id="1031" />
<component id="1155" />
<component id="1156" />
+ <component id="1881" />
+ <component id="2110" />
+ </excludedComponents>
+ <includedDownloadableComponents />
+ <excludedLaunchers />
+ <excludedBeans />
+ <overriddenPrincipalLanguage id="en" customLocalizationFile="" />
+ <exclude>
+ <entry location=".i4j_fileset_734" fileType="regular" />
+ <entry location=".i4j_fileset_880" fileType="regular" />
+ <entry location=".i4j_fileset_882" fileType="regular" />
+ <entry location=".i4j_fileset_1873" fileType="regular" />
+ </exclude>
+ <variables />
+ <autoUpdate useMinUpdatableVersion="false" minUpdatableVersion="" useMaxUpdatableVersion="false" maxUpdatableVersion="">
+ <commentFiles />
+ <customAttributes />
+ </autoUpdate>
+ <installerScript mode="1" file="">
+ <content />
+ </installerScript>
+ </unixInstaller>
+ <unixArchive name="Offline Unix .tar.gz Archive" id="1596" customizedId="" mediaFileName="${compiler:sys.shortName}-OFFLINE_${compiler:sys.platform}_archive_${compiler:sys.version}-j$$JAVA_INTEGER_VERSION$$" installDir="${compiler:sys.shortName}" overridePrincipalLanguage="false" jreBitType="all" runPostProcessor="false" postProcessor="" failOnPostProcessorError="false" useLegacyMediaFileIds="false" legacyMediaFileIds="" downloadURL="" includeAllDownloadableComponents="true" includedJRE="" manualJREEntry="false">
+ <excludedComponents>
+ <component id="1155" />
+ <component id="1156" />
+ <component id="1276" />
+ <component id="1881" />
+ <component id="2110" />
</excludedComponents>
<includedDownloadableComponents />
<excludedLaunchers>
</excludedLaunchers>
<excludedBeans />
<overriddenPrincipalLanguage id="en" customLocalizationFile="" />
- <exclude />
+ <exclude>
+ <entry location=".i4j_fileset_" fileType="regular" />
+ <entry location=".i4j_fileset_880" fileType="regular" />
+ <entry location=".i4j_fileset_882" fileType="regular" />
+ <entry location=".i4j_fileset_1873" fileType="regular" />
+ </exclude>
<variables />
<autoUpdate useMinUpdatableVersion="false" minUpdatableVersion="" useMaxUpdatableVersion="false" maxUpdatableVersion="">
<commentFiles />
<customAttributes />
</autoUpdate>
</unixArchive>
- <windows name="Network Windows" id="1862" customizedId="" mediaFileName="${compiler:sys.shortName}-NETWORK_${compiler:sys.platform}_${compiler:sys.version}-j$$JAVA_INTEGER_VERSION$$" installDir="${compiler:sys.shortName}" overridePrincipalLanguage="false" jreBitType="64" runPostProcessor="true" postProcessor="${compiler:JSIGN_SH} $EXECUTABLE" failOnPostProcessorError="false" useLegacyMediaFileIds="false" legacyMediaFileIds="" downloadURL="" includeAllDownloadableComponents="false" includedJRE="$$WINDOWS_JAVA_VM_TGZ$$" manualJREEntry="true" bundleType="1" jreURL="" jreShared="false" directDownload="false" installOnlyIfNecessary="false" customInstallBaseDir="~/AppData/Local" contentFilesType="1" verifyIntegrity="true">
+ <unixArchive name="Network Unix .tar.gz Archive" id="1871" customizedId="" mediaFileName="${compiler:sys.shortName}-NETWORK_${compiler:sys.platform}_archive_${compiler:sys.version}-j$$JAVA_INTEGER_VERSION$$" installDir="${compiler:sys.shortName}" overridePrincipalLanguage="false" jreBitType="all" runPostProcessor="false" postProcessor="" failOnPostProcessorError="false" useLegacyMediaFileIds="false" legacyMediaFileIds="" downloadURL="" includeAllDownloadableComponents="true" includedJRE="" manualJREEntry="false">
<excludedComponents>
<component id="1031" />
<component id="1155" />
<component id="1156" />
+ <component id="1881" />
+ <component id="2110" />
</excludedComponents>
<includedDownloadableComponents />
<excludedLaunchers />
<exclude>
<entry location=".i4j_fileset_734" fileType="regular" />
<entry location=".i4j_fileset_880" fileType="regular" />
+ <entry location=".i4j_fileset_882" fileType="regular" />
+ <entry location=".i4j_fileset_1873" fileType="regular" />
</exclude>
<variables />
<autoUpdate useMinUpdatableVersion="false" minUpdatableVersion="" useMaxUpdatableVersion="false" maxUpdatableVersion="">
<commentFiles />
<customAttributes />
</autoUpdate>
- </windows>
+ </unixArchive>
</mediaSets>
<buildIds buildAll="true">
<mediaSet refId="153" />
<mediaSet refId="1595" />
<mediaSet refId="1596" />
<mediaSet refId="1862" />
+ <mediaSet refId="1867" />
+ <mediaSet refId="1871" />
</buildIds>
<buildOptions verbose="false" faster="false" disableSigning="false" disableJreBundling="false" debug="false" />
</install4j>
--- /dev/null
+#!/usr/bin/env bash
+
+find Uninstall\ Old\ Jalview.app | perl -p -e 'chomp;$_=qq( <file name=").$_.qq(" file="./).$_.qq(" />\n);' > uninstall_old_jalview_files.xml
+
+# makes the file used to replace the line
+# <file name="UNINSTALL_OLD_JALVIEW_APP_REPLACED_IN_GRADLE" file="./Uninstall Old Jalview.app" />
+# (replacement happens in gradle)
--- /dev/null
+ <file name="Uninstall Old Jalview.app" file="./Uninstall Old Jalview.app" />
+ <file name="Uninstall Old Jalview.app/Contents" file="./Uninstall Old Jalview.app/Contents" />
+ <file name="Uninstall Old Jalview.app/Contents/MacOS" file="./Uninstall Old Jalview.app/Contents/MacOS" />
+ <file name="Uninstall Old Jalview.app/Contents/MacOS/applet" file="./Uninstall Old Jalview.app/Contents/MacOS/applet" />
+ <file name="Uninstall Old Jalview.app/Contents/Resources" file="./Uninstall Old Jalview.app/Contents/Resources" />
+ <file name="Uninstall Old Jalview.app/Contents/Resources/applet.rsrc" file="./Uninstall Old Jalview.app/Contents/Resources/applet.rsrc" />
+ <file name="Uninstall Old Jalview.app/Contents/Resources/description.rtfd" file="./Uninstall Old Jalview.app/Contents/Resources/description.rtfd" />
+ <file name="Uninstall Old Jalview.app/Contents/Resources/description.rtfd/TXT.rtf" file="./Uninstall Old Jalview.app/Contents/Resources/description.rtfd/TXT.rtf" />
+ <file name="Uninstall Old Jalview.app/Contents/Resources/Scripts" file="./Uninstall Old Jalview.app/Contents/Resources/Scripts" />
+ <file name="Uninstall Old Jalview.app/Contents/Resources/Scripts/main.scpt" file="./Uninstall Old Jalview.app/Contents/Resources/Scripts/main.scpt" />
+ <file name="Uninstall Old Jalview.app/Contents/Resources/applet.icns" file="./Uninstall Old Jalview.app/Contents/Resources/applet.icns" />
+ <file name="Uninstall Old Jalview.app/Contents/Info.plist" file="./Uninstall Old Jalview.app/Contents/Info.plist" />
+ <file name="Uninstall Old Jalview.app/Contents/PkgInfo" file="./Uninstall Old Jalview.app/Contents/PkgInfo" />