id 'eclipse'
id "com.diffplug.gradle.spotless" version "3.28.0"
id 'com.github.johnrengelman.shadow' version '4.0.3'
- id 'com.install4j.gradle' version '8.0.10'
+ id 'com.install4j.gradle' version '9.0.6'
id 'com.dorongold.task-tree' version '1.5' // only needed to display task dependency tree with gradle task1 [task2 ...] taskTree
id 'com.palantir.git-version' version '0.12.3'
}
jreInstallsDir = System.getProperty("user.home") + jreInstallsDir.substring(1)
}
macosJavaVMDir = string("${jreInstallsDir}/jre-${JAVA_INTEGER_VERSION}-mac-x64/jre")
- macosJavaVMTgz = string("${jreInstallsDir}/tgz/jre-${JAVA_INTEGER_VERSION}-mac-x64.tar.gz")
windowsJavaVMDir = string("${jreInstallsDir}/jre-${JAVA_INTEGER_VERSION}-windows-x64/jre")
- windowsJavaVMTgz = string("${jreInstallsDir}/tgz/jre-${JAVA_INTEGER_VERSION}-windows-x64.tar.gz")
linuxJavaVMDir = string("${jreInstallsDir}/jre-${JAVA_INTEGER_VERSION}-linux-x64/jre")
- linuxJavaVMTgz = string("${jreInstallsDir}/tgz/jre-${JAVA_INTEGER_VERSION}-linux-x64.tar.gz")
+ macosJavaVMTgz = string("${jreInstallsDir}/tgz/jre_${JAVA_INTEGER_VERSION}_mac_x64.tar.gz")
+ windowsJavaVMTgz = string("${jreInstallsDir}/tgz/jre_${JAVA_INTEGER_VERSION}_windows_x64.tar.gz")
+ linuxJavaVMTgz = string("${jreInstallsDir}/tgz/jre_${JAVA_INTEGER_VERSION}_linux_x64.tar.gz")
install4jDir = string("${jalviewDir}/${install4j_utils_dir}")
install4jConfFileName = string("jalview-install4j-conf.install4j")
install4jConfFile = file("${install4jDir}/${install4jConfFileName}")
}
}
+ // disable install screen for OSX dmg (for 2.11.2.0)
+ install4jConfigXml.'**'.macosArchive.each { macosArchive ->
+ macosArchive.'@executeSetupApp' = "false"
+ }
+
// turn off checksum creation for LOCAL channel
def e = install4jConfigXml.application[0]
if (CHANNEL == "LOCAL") {
-1.8.3-1.2.11_FJVL
+1.8.3-1.2.12_FJVL
-1.8.3-1.2.11_JVL
+1.8.3-1.2.12_JVL
<parent>
<groupId>com.threerings.getdown</groupId>
<artifactId>getdown</artifactId>
- <version>1.8.3-1.2.11_FJVL</version>
+ <version>1.8.3-1.2.12_FJVL</version>
</parent>
<artifactId>getdown-ant</artifactId>
<parent>
<groupId>com.threerings.getdown</groupId>
<artifactId>getdown</artifactId>
- <version>1.8.3-1.2.11_FJVL</version>
+ <version>1.8.3-1.2.12_FJVL</version>
</parent>
<artifactId>getdown-core</artifactId>
if (j > -1) {
ext = filename.substring(j+1);
}
- if (ext != null && LOCATOR_FILE_EXTENSION.equals(ext.toLowerCase())) {
+ if (ext != null && LOCATOR_FILE_EXTENSION.equals(ext.toLowerCase(Locale.ROOT))) {
// this file extension should have been dealt with in Getdown class
} else {
_appargs.add(0, "-open");
String locatorFilename = filenames.length >= 1 ? filenames[0] : null;
if (
!StringUtil.isBlank(locatorFilename)
- && locatorFilename.toLowerCase().endsWith("."+Application.LOCATOR_FILE_EXTENSION)
+ && locatorFilename.toLowerCase(Locale.ROOT).endsWith("."+Application.LOCATOR_FILE_EXTENSION)
) {
setLocatorFile(locatorFilename);
// remove the locator filename from the filenames array
// skip any other locator files in a multiple file list
if (filename.startsWith("jalview://") || filename.startsWith("jalviews://")) {
setJalviewUri(filename);
- } else if (! filename.toLowerCase().endsWith("."+Application.LOCATOR_FILE_EXTENSION)) {
+ } else if (! filename.toLowerCase(Locale.ROOT).endsWith("."+Application.LOCATOR_FILE_EXTENSION)) {
addStartupFile(filename);
}
}
String argvLocatorFilename = argv.length > 2 ? argv[2] : null;
if (
!StringUtil.isBlank(argvLocatorFilename)
- && argvLocatorFilename.toLowerCase().endsWith("."+Application.LOCATOR_FILE_EXTENSION)
+ && argvLocatorFilename.toLowerCase(Locale.ROOT).endsWith("."+Application.LOCATOR_FILE_EXTENSION)
) {
notes.add(Note.info("locatorFilename in args: '"+argv[2]+"'"));
Application.setLocatorFile(argvLocatorFilename);
MessageDigest md = MessageDigest.getInstance(algo);
md.update(Files.readAllBytes(Paths.get(file.getAbsolutePath())));
byte[] digest = md.digest();
- checksum = DatatypeConverter.printHexBinary(digest).toUpperCase();
+ checksum = DatatypeConverter.printHexBinary(digest).toUpperCase(Locale.ROOT);
} catch (Exception e) {
System.out.println("Couldn't create "+algo+" digest of "+file.getPath());
}
package jalview.bin;
import java.awt.HeadlessException;
+import java.util.Locale;
+
public class HiDPISetting
{
static
{
String system = System.getProperty("os.name") == null ? null
- : System.getProperty("os.name").toLowerCase();
+ : System.getProperty("os.name").toLowerCase(Locale.ROOT);
if (system != null)
{
isLinux = system.indexOf("linux") > -1;
* @author bsoares
*
*/
+import java.util.Locale;
public class MemorySetting
{
+ "_CUSTOMISED_SETTINGS";
public static final String MEMORY_JVMMEMPC = NS + "_"
- + MAX_HEAPSIZE_PERCENT_PROPERTY_NAME.toUpperCase();
+ + MAX_HEAPSIZE_PERCENT_PROPERTY_NAME.toUpperCase(Locale.ROOT);
public static final String MEMORY_JVMMEMMAX = NS + "_"
- + MAX_HEAPSIZE_PROPERTY_NAME.toUpperCase();
+ + MAX_HEAPSIZE_PROPERTY_NAME.toUpperCase(Locale.ROOT);
protected static boolean logToClassChecked = false;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.List;
+import java.util.Locale;
import java.util.regex.Pattern;
public class StringUtils
}
if (s.length() <= 1)
{
- return s.toUpperCase();
+ return s.toUpperCase(Locale.ROOT);
}
- return s.substring(0, 1).toUpperCase() + s.substring(1).toLowerCase();
+ return s.substring(0, 1).toUpperCase(Locale.ROOT) + s.substring(1).toLowerCase(Locale.ROOT);
}
/**
{
return null;
}
- String tmp2up = text.toUpperCase();
+ String tmp2up = text.toUpperCase(Locale.ROOT);
int startTag = tmp2up.indexOf("<HTML>");
if (startTag > -1)
{
public static int firstCharPosIgnoreCase(String text, String chars)
{
int min = text.length() + 1;
- for (char c : chars.toLowerCase().toCharArray())
+ for (char c : chars.toLowerCase(Locale.ROOT).toCharArray())
{
- int i = text.toLowerCase().indexOf(c);
+ int i = text.toLowerCase(Locale.ROOT).indexOf(c);
if (0 <= i && i < min)
{
min = i;
<parent>
<groupId>com.threerings.getdown</groupId>
<artifactId>getdown</artifactId>
- <version>1.8.3-1.2.11_FJVL</version>
+ <version>1.8.3-1.2.12_FJVL</version>
</parent>
<artifactId>getdown-launcher</artifactId>
if [ x$JVLVERSION != x ]; then
export VERSION=$JVLVERSION
else
- export VERSION=1.8.3-1.2.11_JVL
+ export VERSION=1.8.3-1.2.12_JVL
fi
if [ x${VERSION%_JVL} = x$VERSION ]; then
<groupId>com.threerings.getdown</groupId>
<artifactId>getdown</artifactId>
<packaging>pom</packaging>
- <version>1.8.3-1.2.11_FJVL</version>
+ <version>1.8.3-1.2.12_FJVL</version>
<name>getdown</name>
<description>An application installer and updater.</description>
channel_properties_dir = utils/channels
channel_props = channel.props
-install4j_home_dir = ~/buildtools/install4j8
+install4j_home_dir = ~/buildtools/install4j9
install4j_copyright_message = ...
install4j_bundle_id = org.jalview.jalview-desktop
install4j_utils_dir = utils/install4j
install4j_images_dir = utils/install4j
-install4j_template = install4j8_template.install4j
+install4j_template = install4j9_template.install4j
install4j_info_plist_file_associations = file_associations_auto-Info_plist.xml
install4j_installer_file_associations = file_associations_auto-install4j8.xml
#install4j_DMG_uninstaller_app_files = uninstall_old_jalview_files.xml
<mapID target="varna" url="html/features/varna.html"/>
<mapID target="xsspannotation" url="html/features/xsspannotation.html"/>
<mapID target="preferences" url="html/features/preferences.html"/>
+ <mapID target="startupprefs" url="html/features/preferences.html#startup"/>
<mapID target="strucprefs" url="html/features/preferences.html#structure"/>
<mapID target="commandline" url="html/features/commandline.html"/>
<mapID target="clarguments" url="html/features/clarguments.html"/>
<mapID target="pdbfts" url="html/features/pdbsequencefetcher.html#pdbfts" />
<mapID target="siftsmapping" url="html/features/siftsmapping.html" />
<mapID target="pdbchooser" url="html/features/structurechooser.html" />
+ <mapID target="structuresvia3dbeacons" url="html/features/structurechooser.html#3dbeaconssearch" />
<mapID target="selectcolbyannot" url="html/features/columnFilterByAnnotation.html" />
<mapID target="biojsmsa" url="html/features/biojsmsa.html" />
<tocitem text="Jalview Documentation" target="home" expand="true">
<tocitem text="What's new" target="new" expand="true">
<tocitem text="Latest Release Notes" target="release"/>
- <tocitem text="Virtual Features in CDS/Protein Views" target="splitframe.virtualfeats"/>
- <tocitem text="VCF Variant Attributes" target="importvcf.attribs"/>
- <tocitem text="Feature Filters and Attribute Colourschemes" target="features.featureschemes" />
+ <tocitem text="Support for ChimeraX" target="chimera"/>
+ <tocitem text="Support for Pymol" target="pymol"/>
+ <tocitem text="Structures via 3D Beacons" target="structuresvia3dbeacons" />
+ <tocitem text="Startup Memory Settings" target="startupprefs" />
<tocitem text="The Java Console, Logging and Reporting Bugs" target="logging" />
</tocitem>
<tocitem text="PDB Sequence Fetcher" target="pdbfetcher" />
<tocitem text="PDB & 3D-Beacons Structure Chooser" target="pdbchooser" />
<tocitem text="Jmol Viewer" target="pdbjmol" />
- <tocitem text="Chimera Viewer" target="chimera" />
+ <tocitem text="Chimera/X Viewer" target="chimera" />
<tocitem text="Pymol Viewer" target="pymol" />
</tocitem>
<tocitem text="Viewing RNA structures" target="varna" expand="false"/>
(http://www.cgl.ucsf.edu/chimera/) can be used for viewing
structures opened via the <a href="structurechooser.html"><strong>"View
Structure Data.."</strong> dialog</a>. In Jalview 2.11.2, support
- was also added for ChimeraX.
+ was also added for ChimeraX, and <a href="pymol.html">Pymol</a>.
</p>
<p>
You can set a default choice of Jmol or Chimera structure viewer in
and usage stats checks)</div></td>
</tr>
<tr>
+ <td><div align="center">-nowebservicediscovery</div></td>
+ <td><div align="left">Do not query configured servers to
+ discover web services (<em>Since 2.11.2.0</em>)</div></td>
+ </tr>
+ <tr>
<td><div align="center">-open FILE/URL</div></td>
<td><div align="left">Specify the alignment file to
open or process by providing additional arguments.</div></td>
file instead of users default.</div></td>
</tr>
<tr>
+ <td><div align="center">-setprop PROPERTY=value</div></td>
+ <td><div align="left">(JalviewJS ONLY) sets the given
+ property to the given value</div></td>
+ </tr>
+ <tr>
<td><div align="center">-features FILE/URL</div></td>
<td><div align="left">
<p>
File</a> description.
</td>
</tr>
+ <tr>
+ <td>
+ <div align="center">-no-annotation</div>
+ </td>
+ <td>Do not display annotation below the alignment.
+ </td>
+ </tr>
+
<tr>
<td>
<div align="center">-tree FILE/URL</div>
<li>The <a href="#editing"><strong>"Editing"</strong>
Preferences</a> tab contains settings affecting behaviour when editing alignments.
</li>
+ <li>The <a href="#startup"><strong>"Startup"</strong>
+ Preferences</a> tab allows you to adjust how much memory is
+ allocated to Jalview when it is launched.
+ </li>
<li>The <a href="../webServices/webServicesPrefs.html"><strong>"Web
Service"</strong> Preferences</a> tab allows you to configure the <a
href="http://www.compbio.dundee.ac.uk/jabaws">JABAWS</a>
loaded onto the alignment will automatically sort the alignment.
</p>
<p> </p>
+ <p>
+ <a name="startup"><strong>Startup</strong></a>
+ </p>
+ <p>
+ When Jalview is launched it by default examines the available memory
+ and requests up to 90% to be allocated to the application, or 32G,
+ which ever is smaller. The <em>Startup</em> tab allows you to adjust
+ the maximum percentage and hard limits for Jalview memory allocation
+ stored in your .jalview_properties file.
+ </p>
+ <p> </p>
<em>Web Services Preferences</em> - documentation for this tab is
given in the
<a href="../webServices/webServicesPrefs.html">Web Services
<p>
<strong>Jalview requires Pymol V 2.5.0 (community edition)
or later</strong> <br />Jalview requires Pymol's RPC interface, which is
- not available in older versions of the Pymol community edition.
+ not available in older versions of the Pymol community edition.
</p>
<p>
<strong>Known Limitations</strong><br />
example project).</li>
<li>Pymol to Jalview communication does not support transfer of
properties or highlighting sequence regions corresponding to
- structure selections or mouse-overs in Pymol.</li>
- <li>Jalview to Pymol communication currently doesn't highlight
- the positions on structures corresponging to moused over residues
- in Jalview.</li>
+ structure selections or mouse-overs in Pymol.</li>
</ul>
<p>
Basic screen operations (see <a
<strong>Automated discovery of structure data</strong>
</p>
<p>
- After selecting "3D Structure Data ..", Jalview queries the PDB via
+ After selecting "3D Structure Data ..", Jalview queries its available structure data providers. When Uniprot identifiers are available, it queries the <a href="#3dbeaconssearch">3D-Beacons network</a> (since Jalview 2.11.2), otherwise it searches the PDB via
the PDBe SOLR Rest API provided by EMBL-EBI to discover PDB IDs
associated with the sequence. It does this based on the sequence's
ID string, and any other associated database IDs. <br />
- <br />
- Since Jalview 2.11.2, you can also <a href="#3dbeaconssearch">initiate a search
- of the 3D-Beacons Network</a>.
</p>
<p>
<strong><a name="cachedstructview">Viewing existing
<strong>Selection of the best structure for each sequence</strong>
</p>
<p>Jalview can automatically select the best structures according
- to meta-data provided by the PDB. For alignments with no existing
- structure data, the 'PDBe Best Quality' structure for each sequence will
- by default be selected, but clicking on the drop down menu allows
- other criteria to be chosen, including Resolution (only defined for
- X-Ray structures), Highest Protein Chain etc. When 'Invert' is
+ to meta-data provided by the search service. The 'PDBe Best Quality' structure for each sequence will
+ by default be selected when no other structure data is available. If 3D-models from other sources are also available, then 'Best 3D Beacons coverage' will be show.
+ <br/><br/>Clicking on the drop down menu allows
+ other criteria to be chosen. For the PDBe, these include including Resolution (only defined for
+ X-Ray structures), Highest Protein Chain etc. When 3D-Beacons results are available, structures can be selected based on their specific provider, or by their coverage of the aligned sequences.<br/>
+ <br/>When 'Invert' is
selected, structures are selected in reverse order for the current
criteria (e.g. worst quality rather than best).</p>
<p>
- <img src="schooser_main.png" style="width: 499px; height: 437px;">
+ <img src="schooser_main.png" style="width: 820px; height: 458px;">
<!-- <p><img src="schooser_config.png" style="width: 463px; height: 369px; ">
<p><img src="schooser_drop-down.png" style="width: 464px; height: 368px; ">
<p><img src="schooser_enter-id.png" style="width: 467px; height: 373px; ">
<strong><a name="3dbeaconssearch">3D-Beacons Network Search</a></strong>
</p>
<p>
- To initiate a search of the 3D-Beacons Network—which searches
- across experimentally determined and predicted structure models from
- several resources including PDBe, AlphaFold DB, SWISS-MODEL, PED, SASDB, Genome3D and
- PDBe-KB—click on the <strong>3D-Beacons Search</strong> button at the top of the
- Structure Chooser window.
- <br/>
- <img src="3dbeacons_button.png"/>
- <br/>
- The 3D-Beacons Network search requires UniProt references and Jalview will ask
- to attempt to fetch these references for the selected sequences.
- UniProt references might not always be found in which case you can revert to the PDB
- search.
- <br/>
- <img src="3dbeacons_structurechooser.png"/>
- <br/>
- If structures are found through the 3D-Beacons network you can filter which structures
- are shown using the drop-down filter at the top of the Structure Chooser window.
- <br/>
- You can view information about each related model, such as the resource providing
- each model, in the columns displayed. You can sort the list of models by clicking on
- column headings.
- <br/>
- Select and view the structures in the usual way using the <a href="viewingpdbs.html#afterviewbutton">open structure options</a> at
- the bottom of the Structure Chooser window.
+ 3D beacons searches across experimentally determined and predicted
+ structure models from several resources including PDBe, AlphaFold
+ DB, SWISS-MODEL, PED, SASDB, Genome3D and PDBe-KB.<br /> If your
+ sequences have Uniprot identifiers, Jalview will query the
+ 3D-Beacons network to discover relevant 3D structures and models.
+ When no uniprot identifiers are available you can initiate Uniprot
+ identifier discovery and a subsequent search of the 3D-Beacons
+ Network by pressing the <strong>3D-Beacons Search</strong> button at
+ the top of the Structure Chooser window. <br /> <img
+ src="3dbeacons_button.png" /> <br />When the search button is
+ pressed, Jalview will ask to attempt to fetch any additional uniprot
+ references for the selected sequences - we do this because fetching
+ large numbers of Uniprot references can take some time. For
+ sequences without Uniprot accessions, Jalview will still search the
+ PDB for potential matches for the sequence's ID string. <br />
+ <br /> <img src="3dbeacons_structurechooser.png" /> <br /> <br />
+ 3D Beacons provides some additional information for each model,
+ including what positions on the Uniprot sequence have structure
+ data. These metadata (described below) are shown in the columns of
+ the table and used to provide additional filter options.<br />Use
+ the drop-down filter menu and table to browse and select structures,
+ and finally view them using the
+ <a href="viewingpdbs.html#afterviewbutton">open structure
+ options</a> at the bottom of the Structure Chooser window.
</p>
+ <strong>Options for selecting structures from 3D Beacons</strong><br />
+ Structures found through the 3D-Beacons network can be filtered
+ using the drop-down filter at the top of the Structure Chooser
+ window. The options usually available are:
+
+ <ul>
+ <li><strong>Best 3D Beacons Coverage</strong> - selects one
+ structure for each sequence from available structures those that
+ are the highest quality (ie experimental structures, or highly
+ accurate predictions) and cover the most number of residues in the
+ alignment.</li>
+ <li><strong>3DB Provider - ...</strong> selects the best
+ quality structure for each sequence provided by a specific source
+ (e.g. PDB, EBI-AlphaFold, SwissModel).</li>
+ <li><strong>Multiple 3D-Beacons Coverage</strong> - employs a
+ heuristic to identify structures providing the best quality
+ structure data for every position in each sequence.<br /> <em>Note:
+ structure superpositions may fail when this option is used
+ because the best covering structure set for a sequence often do
+ not overlap.</em></li>
+ </ul>
+
<p>
<strong>Exploration of meta-data for available structures</strong>
</p>
<p>Information on each structure available is displayed in columns
in the dialog box. By default, only the title, resolution and PDB
- identifier are shown, but many more are provided by the PDBe. To
- configure which ones are displayed, select the 'Configure Displayed
- Columns' tab and tick the columns which you want to see.</p>
+ identifier are shown, but many more are provided by the PDBe.
+ 3D-Beacons structures have different data, including a quality score
+ (such as Qmeans_DISCO). To configure which ones are displayed,
+ select the 'Configure Displayed Columns' tab and tick the columns
+ which you want to see.</p>
<p>
<img src="schooser_enter-id.png"
- style="width: 464px; height: 173px;">
- <br/>
- <strong>Manual selection/association of PDB files with
- Sequences</strong>
+ style="width: 464px; height: 173px;"> <br /> <strong>Manual
+ selection/association of PDB files with Sequences</strong>
</p>
<p>To manually associate PDB files with a sequence, select 'From
File', or 'Enter PDB Id' from the drop-down menu:
<td width="23%">.phy</td>
</tr>
<tr>
+ <td width="17%">EMBL</td>
+ <td width="60%">Line starts with ID, followed by a space, and
+ is followed by a 7 character identifier terminated with a
+ semicolon.</td>
+ <td width="23%">.txt</td>
+ </tr>
+ <tr>
+ <td width="17%">GenBank</td>
+ <td width="60%">Line starts with LOCUS
+ </td>
+ <td width="23%">.gb,.gbk</td>
+ </tr>
+ <tr>
<td width="17%">JSON</td>
<td width="60%">Data starts with '{' <br>Data ends with
'}' <br> <br>See <a
</h2>
<p>When launched as an Application, Jalview will automatically
configure the amount of memory allocated to the program to be 90% of
- physical memory. You may wish to change this behaviour -
- particularly if you are working on a machine that runs other memory
- intensive processes.
+ physical memory, or 32GB - which ever is smaller.</p>
+ <p>
+ This behaviour might not be ideal if you are working on a machine
+ that runs other memory intensive processes, and (<em>since
+ Jalview 2.11.2</em>) can be changed via the <a
+ ref="preferences.html#startup">Startup Preferences</a> panel.
+ </p>
<p>
<em>Signs that Jalview is Running out of Memory</em><br /> If
Jalview has not explicitly told you that it has run out of memory,
</p>
<ul>
- <li><em><font size="3">JVL file</font></em> <br /> The easiest
- way to launch Jalview with a different percentage of physical
- memory available is to create a text file with extension <em>.jvl</em>
+ <li><em><font size="3">Jalview's Startup
+ Preferences panel</font></em> <br /> The easiest way to launch Jalview
+ with a different percentage of physical memory available is to
+ adjust your user preferences via the <a
+ ref="preferences.html#startup">Startup Preferences</a> panel.</li>
+ <li><em><font size="3">JVL file</font></em> <br />Another way
+ to adjust launch settings is with a text file with extension <em>.jvl</em>
and a single line to specify the percentage of memory you wish
Jalview to request: <pre>
- jalview.jvmmempc=50</pre> In Windows and in macOS you can then launch Jalview by
- double clicking on this file, and your memory setting will be used
- instead of the default value. <br /> <br /> In Linux or other
- unix variants you can launch Jalview on the command line and
- provide your JVL file as an argument with <pre>
- /PATH_TO_JALVIEW/Jalview /path/to/file/mymemorysetting.jvl</pre> If you want to use a memory setting like this and open a
- file you can use both the jvl and alignment files as command line
- arguments, but you must put the <em>jvl</em> file first, e.g. <pre>
- /PATH_TO_JALVIEW/Jalview /path/to/file/mymemorysetting.jvl /path/to/alignments/myalignment.fa</pre> Alternatively, you can use the standard Jalview command line
+ jalview.jvmmempc=50</pre> In Windows and in macOS you can then launch
+ Jalview by double clicking on this file, and your memory setting
+ will be used instead of the default value. <br /> <br /> In
+ Linux or other unix variants you can launch Jalview on the command
+ line and provide your JVL file as an argument with <pre>
+ /PATH_TO_JALVIEW/Jalview /path/to/file/mymemorysetting.jvl</pre> If you
+ want to use a memory setting like this and open a file you can use
+ both the jvl and alignment files as command line arguments, but
+ you must put the <em>jvl</em> file first, e.g. <pre>
+ /PATH_TO_JALVIEW/Jalview /path/to/file/mymemorysetting.jvl /path/to/alignments/myalignment.fa</pre>
+ Alternatively, you can use the standard Jalview command line
arguments with or without the jvl file (first), e.g. <pre>
- /PATH_TO_JALVIEW/Jalview /path/to/file/mymemorysetting.jvl -open https://www.jalview.org/examples/jpred_msa.fasta -annotations https://www.jalview.org/examples/jpred_msa.seq.concise -colour Clustal</pre> You can use command line arguments to control memory
- settings in Windows and macOS too: <br /> In Windows you must
- use, e.g. <pre>
- \PATH_TO_JALVIEW\Jalview.exe %HOMEPATH%\mymemorysetting.jvl -open %HOMEPATH%\myalignment.fa</pre> In macOS you can use the macOS <em>open</em> command like this: <pre>
- open /Applications/Jalview.app --args ~/mymemorysetting.jvl -open ~/myalignment.fa</pre><em>(put all the Jalview arguments <em>after</em> the --args
- parameter)
- </em><br/><br/></li>
+ /PATH_TO_JALVIEW/Jalview /path/to/file/mymemorysetting.jvl -open https://www.jalview.org/examples/jpred_msa.fasta -annotations https://www.jalview.org/examples/jpred_msa.seq.concise -colour Clustal</pre>
+ You can use command line arguments to control memory settings in
+ Windows and macOS too: <br /> In Windows you must use, e.g. <pre>
+ \PATH_TO_JALVIEW\Jalview.exe %HOMEPATH%\mymemorysetting.jvl -open %HOMEPATH%\myalignment.fa</pre>
+ In macOS you can use the macOS <em>open</em> command like this: <pre>
+ open /Applications/Jalview.app --args ~/mymemorysetting.jvl -open ~/myalignment.fa</pre><em>(put
+ all the Jalview arguments <em>after</em> the --args parameter)
+ </em><br />
+ <br /></li>
<li><em><font size="3">Maximum memory limit</em><br/>
Since 2.11.1.0, Jalview's configuration includes a 'maximum memory limit':
<pre>jalview.jvmmemmax = 32G</pre>
<title>Release History</title>
<style>
ul {
- /* remove bullets, narrower indent */
- list-style-type: none;
- margin: 0;
- padding-left: 10px;
- padding-bottom: 4px;
+ /* remove bullets, narrower indent */
+ list-style-type: none;
+ margin: 0;
+ padding-left: 10px;
+ padding-bottom: 4px;
}
li {
- /* separate the items from eachother */
- margin-left: -3px;
- padding-bottom: 3px;
- padding-left: 6px;
+ /* separate the items from eachother */
+ margin-left: -3px;
+ padding-bottom: 3px;
+ padding-left: 6px;
}
li:before {
- /* doesnt get processed in javahelp */
- content: '\00b7 ';
- padding: 3px;
- margin-left: -14px;
+ /* doesnt get processed in javahelp */
+ content: '\00b7 ';
+ padding: 3px;
+ margin-left: -14px;
}
</style>
</head>
<tr>
<td width="60" align="center" nowrap><strong><a
id="Jalview.2.11.2">2.11.2</a><a id="Jalview.2.11.2.0">.0</a><br />
- <em>24/02/2022</em></strong></td>
+ <em>3/03/2022</em></strong></td>
<td align="left" valign="top">
<ul>
<li>
- <!-- -->
+ <!-- JAL-3616 JAL-3551 JAL-2322 -->Support for viewing 3D
+ structures with ChimeraX and Pymol in addition to Jmol and
+ Chimera.
+ </li>
+ <li>
+ <!-- JAL-3829 -->Discover 3D structure data for sequences
+ with Uniprot references via 3D-Beacons
+ </li>
+ <li>
+ <!-- JAL-3391 -->Rank and select available structures for
+ Uniprot sequences according to number of residues in
+ structure mapped to positions involved in the alignment
+ </li>
+ <li>
+ <!-- JAL-3503 -->New Preferences tab for adjusting Jalview's
+ memory settings at launch
+ </li>
+ <li>
+ <!-- JAL-3144 -->Reverted to Jalview 'classic' drop-down
+ menu for selecting which database to fetch from in sequence
+ fetcher dialog.
</li>
- </ul> <!-- <em>Development</em>
+ <li>
+ <!-- JAL-2226 -->Structure annotation rows for all mapped
+ chains in 3D structures are included in the 'Reference
+ Annotation' for a sequence
+ </li>
+ <li>
+ <!-- JAL-1260 -->Import Genbank and EMBL format flatfiles
+ </li>
+ <li>
+ <!-- JAL-3821 -->ENA record's mol_type honoured so RNA
+ molecules imported from ENA records are shown as RNA
+ <li>
+ <!-- JAL-3863 -->Support for Canonical Uniprot IDs
+ </li>
+ <li>
+ <!-- JAL-3204 -->Updated Jalview bindings for Uniprot XML
+ schema
+ </li>
+ <li>
+ <!-- JAL-3926 -->Uniprot and PDBe autosearch option is
+ disabled by default
+ </li>
+ <li>
+ <!-- JAL-3530 -->-nowebservicediscovery command line
+ argument to prevent automatic discovery of analysis
+ webservices on launch
+ </li>
+ <li>
+ <!-- JAL-3618 -->Allow 'App' directories to be opened when
+ locating Chimera, ChimeraX or Pymol binaries via filechooser
+ opened by double clicking the Structure Preferences' path
+ textbox
+ </li>
+ <li>
+ <!-- JAL-3837 -->GPL license info on splash screen and About
+ text
+ </li>
+ </ul>
+ <em>Jalview Native App</em>
<ul>
+ <li>
+ <!-- JAL- -->New Jalview Develop app - making it even easier
+ to get at Jalview's development builds
+ </li>
+ <li>
+ <!-- JAL-3594 -->New splashscreens for Jalview, Jalview Test
+ and Jalview Develop applications.
+ </li>
+ <li>
+ <!-- JAL-3728 -->Jalview logos shown for Jalview Java
+ Console and other window widgets in taskbar and dock rather
+ than anonymous 'Java' icons
+ </li>
+ </ul> <em>JalviewJS</em>
+ <ul>
+ <li>
+ <!-- JAL-3624 -->PDB structures mapped to Uniprot Sequences with
+ SIFTS
+ </li>
+ <li>
+ <!-- JAL-3208 -->setprop commandline argument reinstated for JalviewJS only
+ </li>
+ <li>
+ <!-- JAL-3163 -->Missing message bundle keys are only
+ reported once per key (avoids excessive log output in js
+ console)
+ </li>
+ <li>
+ <!-- JAL-3168 -->Feature type is included in the title of
+ the Feature Settings' Colour Chooser dialog
+ </li>
+ <li></li>
+ </ul> <em>Development</em>
+ <ul>
+ <li>
+ <!-- -->First integrated JalviewJS and Jalview release
+ </li>
<li>Updated building instructions</li>
- </ul> -->
+ <li>
+ <!-- JAL-3789, JAL-3679 -->Improved JalviewJS/Jalview build
+ process, added support for system package provided eclipse
+ installs on linux
+ </li>
+ <li>Install4j 9.0.x used for installer packaging</li>
+ <li>Notarized MacOS installer for compatibility with Big
+ Sur and Monterey</li>
+ <li>
+ <!-- JAL-3805 -->Uninstaller application for old
+ (InstallAnywhere based) Jalview installations removed from
+ the DMG
+ </li>
+ <li>
+ <!-- JAL-3930 -->Improved use of installers for unattended
+ installation with a customizedId of "JALVIEW" in install4j's
+ Jalview Launcher
+ </li>
+ <li>
+ <!-- JAL-3907 -->Improved compatibility of Jalview build
+ with Java 17 (next LTS target)
+ </li>
+
+ </ul>
</td>
<td>
<ul>
<li>
- TO DOCUMENT: JAL-3700,JAL-3751,JAL-3763
+ <!-- JAL-3674 -->Slow structure commands can block Jalview
+ execution
+ </li>
+ <li>
+ <!-- JAL-3904 -->Structure window's viewer-specific menu
+ disappears when only one structure is shown (and many
+ sequences:one chain mappings are present)
+ </li>
+ <li>
+ <!-- JAL-3779 -->Annotation file: PROPERTIES apply only to
+ the first SEQUENCE_GROUP defined
+
+ </li>
+
+ <li>
+ <!-- JAL-3700,JAL-3751,JAL-3763, JAL-3725 -->Selections not
+ propagated between Linked CDS - Protein alignments and their
+ trees (known defect from 2.11.1.3)
+ </li>
+ <li>
+ <!-- JAL-3761 -->Not all codon positions highlighted for
+ overlapping exon splice sites (e.g due to RNA slippage)
+ </li>
+ <li>
+ <!-- JAL-3794 -->X was not being recognised as the unknown
+ base in DNA sequences
</li>
<li>
<!-- JAL-3915 -->Removed RNAview checkbox and logic from
Structure Preferences
</li>
+ <li>
+ <!-- JAL-3583 -->Tooltip behaviour improved (slightly)
+ </li>
+ <li>
+ <!-- JAL-3162 -->Can edit a feature so that start > end
+ </li>
+ <li>
+ <!-- JAL-2848 -->Cancel from Amend Features doesn't reset a
+ modified graduated colour
+ </li>
+ <li>
+ <!-- JAL-3788 -->New View with automatic 'Show Overview'
+ preference enabled results in Null Pointer Exceptions when
+ clustal colouring is enabled
+ </li>
+ <li>
+ <!-- JAL-3275 -->Can open multiple Preferences panels
+ </li>
+ <li>
+ <!-- JAL-3949 -->Standard out logging broken: messages only
+ routing to stderr and appear as a raw template
+ </li>
+ </ul> <em>JalviewJS</em>
+ <ul>
+ <li>
+ <!-- JAL-3202 -->Consensus profile may include zero (rounded
+ down) percentage values causing a divide by zero
+ </li>
+ <li>
+ <!-- -->
+ </li>
+ <li>
+ <!-- -->
+ </li>
+ <li>
+ <!-- -->
+ </li>
+ <li>
+ <!-- -->
+ </li>
+ <li>
+ <!-- JAL-3762 -->JalviewJS doesn't honour arguments passed
+ via Info.args when there are arguments on the URL
+ </li>
+ <li>
+ <!-- JAL-3602 -->gradle closure-compiler not using UTF-8
+ </li>
+ <li>
+ <!-- JAL-3603 -->Annotation file fails to load from URL in
+ JalviewJS
+ </li>
</ul> <em>Development</em>
<ul>
- <li>Fixed non-fatal gradle errors during build</li>
+ <li>Gradle
+ <ul>
+ <li>Fixed non-fatal gradle errors during build</li>
+ <li>
+ <!-- JAL-3745 -->Updated build.gradle for use with
+ Gradle v.6.6+
+ </li>
+ </ul>
+ </li>
+
</ul>
</td>
</tr>
<td align="left" valign="top"><em>Security</em>
<ul>
<li>
- <!-- JAL-3934 -->Version bump library dependency: Log4j 2.16.0 to 2.17.0.
- </li>
+ <!-- JAL-3934 -->Version bump library dependency: Log4j
+ 2.16.0 to 2.17.0.
+ </li>
</ul></td>
- <td>
- </td>
+ <td></td>
</tr>
<tr>
<td width="60" align="center" nowrap><strong><a
<li>
<!-- JAL-3477 -->Improved built-in documentation and command
line help for configuring Jalview's memory
- </li>
+ </li>
</ul>
</td>
<td align="left" valign="top">
<li>
<!-- JAL-3748 -->CDS shown in result of submitting proteins
in a CDS/Protein alignment to a web service is wrong when
- proteins share a common transcript sequence (e.g.
- genome of RNA viruses)
+ proteins share a common transcript sequence (e.g. genome of
+ RNA viruses)
</li>
<li>
- <!-- JAL-3576 -->Co-located features exported and re-imported
- are ordered differently when shown on alignment and in
- tooltips. (Also affects v2.11.1.0)
+ <!-- JAL-3576 -->Co-located features exported and
+ re-imported are ordered differently when shown on alignment
+ and in tooltips. (Also affects v2.11.1.0)
</li>
<li>
<!-- JAL-3702 -->Drag and drop of alignment file onto
</li>
<li>
<!-- JAL-3127 -->Sequence ID colourscheme not re-applied
- when alignment view restored from project (since Jalview 2.11.0)
+ when alignment view restored from project (since Jalview
+ 2.11.0)
</li>
<li>
<!-- JAL-3749 -->Duplicate CDS sequences are generated when
with no feature types visible
</li>
<li>
- <!-- JAL-3574 -->Improved support for filtering feature attributes with large integer values
+ <!-- JAL-3574 -->Improved support for filtering feature
+ attributes with large integer values
+ </li>
+ </ul>
+ <em>Jalview Installer</em>
+ <ul>
+ <li>
+ <!-- JAL-3449 -->Versions for install4j and getdown and
+ installer template version reported in console (may be null
+ when Jalview launched as executable jar or via conda)
+ </li>
+ <li>
+ <!-- JAL-3393 -->Layout improvements for OSX .dmg Finder and
+ higher quality background images
</li>
- </ul><em>Jalview Installer</em>
- <ul>
<li>
- <!-- JAL-3449 -->Versions for install4j and getdown and installer template version reported
- in console (may be null when Jalview launched as executable jar or via conda)
+ <!-- JAL-3394 -->New installer/application launcher
+ generated with install4j 8.0.4
</li>
<li>
- <!-- JAL-3393 -->Layout improvements for OSX .dmg Finder and higher quality background images
+ <!-- JAL-3420 -->Jalview File Associations shown for Unix
+ Platforms
</li>
<li>
- <!-- JAL-3394 -->New installer/application launcher generated with install4j 8.0.4
+ <!-- JAL-3477 -->Improved defaults for maximum memory
+ setting when running on large memory machines
</li>
- <li>
- <!-- JAL-3420 -->Jalview File Associations shown for Unix Platforms</li>
- <li>
- <!-- JAL-3477 -->Improved defaults for maximum memory setting when running on large memory machines</li>
</ul> <em>Release processes</em>
<ul>
<li>
<!-- JAL-3508 -->New point release version scheme - 2.11.1.0
</li>
<li>
- <!-- JAL-3577 -->'Jalview Test' installers/apps for easier access to test-release channel builds
- </li>
+ <!-- JAL-3577 -->'Jalview Test' installers/apps for easier
+ access to test-release channel builds
+ </li>
</ul> <em>Build System</em>
<ul>
<li>
<!-- JAL-3513 -->Test code included in Clover coverage
report
</li>
- </ul>
- <em>Groovy Scripts</em>
- <ul>
+ </ul> <em>Groovy Scripts</em>
+ <ul>
<li>
<!-- JAL-3547 -->exportconsensus.groovy prints a FASTA file
to stdout containing the consensus sequence for each
'Source' in console output
</li>
<li>
- <!-- JAL-3562 -->Test Suite: Certain Functional tests fail on jalview's
- bamboo server but run fine locally.
+ <!-- JAL-3562 -->Test Suite: Certain Functional tests fail
+ on jalview's bamboo server but run fine locally.
</li>
</ul>
</td>
</tr>
<tr>
- <td width="60" align="center" nowrap>
- <strong><a name="Jalview.2.11.0">2.11.0</a><br />
- <em>04/07/2019</em></strong>
- </td>
+ <td width="60" align="center" nowrap><strong><a
+ name="Jalview.2.11.0">2.11.0</a><br /> <em>04/07/2019</em></strong></td>
<td align="left" valign="top">
<ul>
<li>
- <!-- JAL-1059, JAL-3196,JAL-3007,JAL-3236 -->Jalview Native Application and
- Installers built with <a href="https://www.ej-technologies.com/products/install4j/overview.html">install4j</a> (licensed to the Jalview open
- source project) rather than InstallAnywhere
+ <!-- JAL-1059, JAL-3196,JAL-3007,JAL-3236 -->Jalview Native
+ Application and Installers built with <a
+ href="https://www.ej-technologies.com/products/install4j/overview.html">install4j</a>
+ (licensed to the Jalview open source project) rather than
+ InstallAnywhere
</li>
<li>
- <!-- JAL-1929 -->Jalview Launcher System to auto-configure memory
- settings, receive over the air updates and launch specific
- versions via (<a href="https://github.com/threerings/getdown">Three
+ <!-- JAL-1929 -->Jalview Launcher System to auto-configure
+ memory settings, receive over the air updates and launch
+ specific versions via (<a
+ href="https://github.com/threerings/getdown">Three
Rings' GetDown</a>)
</li>
<li>
- <!-- JAL-1839,JAL-3254,JAL-3260 -->File type associations for
- formats supported by Jalview (including .jvp project files)
+ <!-- JAL-1839,JAL-3254,JAL-3260 -->File type associations
+ for formats supported by Jalview (including .jvp project
+ files)
</li>
<li>
- <!-- JAL-3260 -->Jalview launch files (.jvl) to pass command line
- arguments and switch between different getdown channels
+ <!-- JAL-3260 -->Jalview launch files (.jvl) to pass command
+ line arguments and switch between different getdown channels
</li>
<li>
- <!-- JAL-3141 -->Backup files created when saving Jalview project
- or alignment files
+ <!-- JAL-3141 -->Backup files created when saving Jalview
+ project or alignment files
</li>
<li>
- <!-- JAL-1793 -->Annotate nucleotide alignments from VCF data files</li>
- <li><!-- JAL-2753 -->Version of HTSJDK shipped with Jalview updated to version 2.12.0</li>
+ <!-- JAL-1793 -->Annotate nucleotide alignments from VCF
+ data files
+ </li>
+ <li>
+ <!-- JAL-2753 -->Version of HTSJDK shipped with Jalview
+ updated to version 2.12.0
+ </li>
<li>
<!-- JAL-2620 -->Alternative genetic code tables for
- 'Translate as cDNA'</li>
+ 'Translate as cDNA'
+ </li>
<li>
- <!-- JAL-3018 -->Update of Ensembl Rest Client to API v10.0</li>
- <li><strong>Enhanced visualisation and analysis of Sequence Features</strong>
+ <!-- JAL-3018 -->Update of Ensembl Rest Client to API v10.0
+ </li>
+ <li><strong>Enhanced visualisation and analysis
+ of Sequence Features</strong>
<ul>
- <li>
- <!-- JAL-3140 JAL-2446 -->IntervalStoreJ (NCList
- implementation that allows updates) used for Sequence Feature collections</li>
- <li>
+ <li>
+ <!-- JAL-3140 JAL-2446 -->IntervalStoreJ (NCList
+ implementation that allows updates) used for Sequence
+ Feature collections
+ </li>
+ <li>
<!-- JAL-2744, JAL-2808,JAL-2069,JAL-2820 -->Sequence
features can be filtered and shaded according to any
associated attributes (e.g. variant attributes from VCF
stored and restored from Jalview Projects
</li>
<li>
- <!-- JAL-3334 -->Use full Sequence Ontology (via BioJava) to
- recognise variant features
+ <!-- JAL-3334 -->Use full Sequence Ontology (via
+ BioJava) to recognise variant features
</li>
<li>
- <!-- JAL-2897,JAL-3330 -->Show synonymous codon variants on peptide
- sequences (also coloured red by default)
+ <!-- JAL-2897,JAL-3330 -->Show synonymous codon variants
+ on peptide sequences (also coloured red by default)
</li>
<li>
- <!-- JAL-2792 -->Popup window to show full report for a selected sequence feature's
- details
+ <!-- JAL-2792 -->Popup window to show full report for a
+ selected sequence feature's details
</li>
<li>
- <!-- JAL-3139,JAL-2816,JAL-1117 -->More efficient sequence feature render
- algorithm (Z-sort/transparency and filter aware)
+ <!-- JAL-3139,JAL-2816,JAL-1117 -->More efficient
+ sequence feature render algorithm (Z-sort/transparency
+ and filter aware)
</li>
<li>
- <!-- JAL-3049,JAL-3054 -->Improved tooltips in Feature Settings
- dialog
+ <!-- JAL-3049,JAL-3054 -->Improved tooltips in Feature
+ Settings dialog
</li>
- </ul>
- </li>
+ </ul></li>
<li>
- <!-- JAL-3205 -->Symmetric score matrices for faster
- tree and PCA calculations
+ <!-- JAL-3205 -->Symmetric score matrices for faster tree
+ and PCA calculations
</li>
<li><strong>Principal Components Analysis Viewer</strong>
<ul>
<li>
- <!-- JAL-1767,JAL-2647 -->Principal Components Analysis results
- and Viewer state saved in Jalview Project
+ <!-- JAL-1767,JAL-2647 -->Principal Components Analysis
+ results and Viewer state saved in Jalview Project
+ </li>
+ <li>
+ <!-- JAL-2962 -->'Change parameters' option removed from
+ viewer's drop-down menus
</li>
- <li><!-- JAL-2962 -->'Change parameters' option removed from viewer's
- drop-down menus</li>
<li>
- <!-- JAL-2975 -->Can use shift + arrow keys to rotate PCA image
- incrementally
+ <!-- JAL-2975 -->Can use shift + arrow keys to rotate
+ PCA image incrementally
</li>
<li>
<!-- JAL-2965, JAL-1285 -->PCA plot is depth cued
</li>
- </ul>
- </li>
+ </ul></li>
<li>
<!-- JAL-3127 -->New 'Colour by Sequence ID' option
</li>
<li><strong>Speed and Efficiency</strong>
- <ul>
+ <ul>
<li>
- <!-- JAL-2185,JAL-3198 -->More efficient creation of selections and
- multiple groups when working with large alignments
+ <!-- JAL-2185,JAL-3198 -->More efficient creation of
+ selections and multiple groups when working with large
+ alignments
</li>
<li>
- <!-- JAL-3200 -->Speedier import of annotation rows when parsing
- Stockholm files
+ <!-- JAL-3200 -->Speedier import of annotation rows when
+ parsing Stockholm files
</li>
</ul>
<li><strong>User Interface</strong>
- <ul>
+ <ul>
<li>
- <!-- JAL-2933 -->Finder panel remembers last position in each
- view
+ <!-- JAL-2933 -->Finder panel remembers last position in
+ each view
</li>
<li>
- <!-- JAL-2527 JAL-3203 -->Alignment Overview now WYSIWIS (What you see is
- what is shown)<br />Only visible regions of alignment are shown by
- default (can be changed in user preferences)
+ <!-- JAL-2527 JAL-3203 -->Alignment Overview now WYSIWIS
+ (What you see is what is shown)<br />Only visible
+ regions of alignment are shown by default (can be
+ changed in user preferences)
</li>
<li>
- <!-- JAL-3169 -->File Chooser stays open after responding Cancel
- to the Overwrite Dialog
+ <!-- JAL-3169 -->File Chooser stays open after
+ responding Cancel to the Overwrite Dialog
</li>
<li>
- <!-- JAL-2420,JAL-3166 -->Better popup menu behaviour when all
- sequences are hidden
+ <!-- JAL-2420,JAL-3166 -->Better popup menu behaviour
+ when all sequences are hidden
</li>
<li>
<!-- JAL-1244 -->Status bar shows bounds when dragging a
- selection region, and gap count when inserting or deleting gaps
+ selection region, and gap count when inserting or
+ deleting gaps
</li>
<li>
- <!-- JAL-3132 -->Status bar updates over sequence and annotation
- labels
+ <!-- JAL-3132 -->Status bar updates over sequence and
+ annotation labels
</li>
<li>
- <!-- JAL-3093 -->Annotation tooltips and popup menus are shown
- when in wrapped mode
+ <!-- JAL-3093 -->Annotation tooltips and popup menus are
+ shown when in wrapped mode
</li>
<li>
- <!-- JAL-3073 -->Can select columns by dragging left/right in a graph or histogram
- annotation
+ <!-- JAL-3073 -->Can select columns by dragging
+ left/right in a graph or histogram annotation
</li>
<li>
- <!-- JAL-2814,JAL-437 -->Help button on Uniprot and PDB search panels
+ <!-- JAL-2814,JAL-437 -->Help button on Uniprot and PDB
+ search panels
</li>
<li>
- <!-- JAL-2621 -->Cursor changes over draggable box in Overview
- panel
+ <!-- JAL-2621 -->Cursor changes over draggable box in
+ Overview panel
</li>
<li>
- <!-- JAL-3181 -->Consistent ordering of links in sequence id
- popup menu
+ <!-- JAL-3181 -->Consistent ordering of links in
+ sequence id popup menu
</li>
<li>
- <!-- JAL-3080 -->Red line indicating tree-cut position not shown if no subgroups are created</li>
+ <!-- JAL-3080 -->Red line indicating tree-cut position
+ not shown if no subgroups are created
+ </li>
<li>
- <!-- JAL-3042 -->Removed ability to configure length of search history by right-clicking search box</li>
-
-
+ <!-- JAL-3042 -->Removed ability to configure length of
+ search history by right-clicking search box
+ </li>
+
+
</ul></li>
- <li><!-- JAL-3232 -->Jalview Groovy Scripting Console updated to Groovy v2.5</li>
- <li><strong>Java 11 Support (not yet on general release)</strong>
+ <li>
+ <!-- JAL-3232 -->Jalview Groovy Scripting Console updated to
+ Groovy v2.5
+ </li>
+ <li><strong>Java 11 Support (not yet on general
+ release)</strong>
<ul>
<li>
- <!-- -->OSX GUI integrations for App menu's 'About' entry and
- trapping CMD-Q
+ <!-- -->OSX GUI integrations for App menu's 'About'
+ entry and trapping CMD-Q
</li>
</ul></li>
- </ul>
- <em>Deprecations</em>
+ </ul> <em>Deprecations</em>
<ul>
- <li><!-- JAL-3035 -->DAS sequence retrieval and annotation
+ <li>
+ <!-- JAL-3035 -->DAS sequence retrieval and annotation
capabilities removed from the Jalview Desktop
</li>
- <li><!-- JAL-3063,JAL-3116 -->Castor library for XML marshalling and
- unmarshalling has been replaced by JAXB for Jalview projects
- and XML based data retrieval clients</li>
- <li><!-- JAL-3311 -->Disable VAMSAS menu in preparation for removal</li>
- <li><!-- -->Jalview Desktop no longer distributed via Java Web Start</li>
+ <li>
+ <!-- JAL-3063,JAL-3116 -->Castor library for XML marshalling
+ and unmarshalling has been replaced by JAXB for Jalview
+ projects and XML based data retrieval clients
+ </li>
+ <li>
+ <!-- JAL-3311 -->Disable VAMSAS menu in preparation for
+ removal
+ </li>
+ <li>
+ <!-- -->Jalview Desktop no longer distributed via Java Web
+ Start
+ </li>
</ul> <em>Documentation</em>
<ul>
- <li><!-- JAL-3003 -->Added remarks about transparent rendering effects
- not supported in EPS figure export
+ <li>
+ <!-- JAL-3003 -->Added remarks about transparent rendering
+ effects not supported in EPS figure export
+ </li>
+ <li>
+ <!-- JAL-2903 -->Typos in documentation for Preferences
+ dialog
</li>
- <li><!-- JAL-2903 -->Typos in documentation for Preferences dialog</li>
</ul> <em>Development and Release Processes</em>
<ul>
<li>
- <!-- JAL-3196,JAL-3179.JAL-2671 -->Build system migrated from Ant to Gradle
+ <!-- JAL-3196,JAL-3179.JAL-2671 -->Build system migrated
+ from Ant to Gradle
+ </li>
+ <li>
+ <!-- JAL-1424 -->Enhanced checks for missing and duplicated
+ keys in Message bundles
</li>
- <li>
- <!-- JAL-1424 -->Enhanced checks for missing and duplicated keys in Message bundles</li>
<li>
- <!-- JAL-3225 -->Eclipse project configuration managed with
+ <!-- JAL-3225 -->Eclipse project configuration managed with
gradle-eclipse
</li>
<li>
- <!-- JAL-3174,JAL-2886,JAL-2729,JAL-1889 -->Atlassian
- Bamboo continuous integration for unattended Test Suite
- execution
+ <!-- JAL-3174,JAL-2886,JAL-2729,JAL-1889 -->Atlassian Bamboo
+ continuous integration for unattended Test Suite execution
</li>
<li>
- <!-- JAL-2864 -->Memory test suite to detect leaks in common
+ <!-- JAL-2864 -->Memory test suite to detect leaks in common
operations
</li>
<li>
- <!-- JAL-2360,JAL-2416 -->More unit test coverage, and minor
+ <!-- JAL-2360,JAL-2416 -->More unit test coverage, and minor
issues resolved
</li>
<li>
- <!-- JAL-3248 -->Developer documentation migrated to
+ <!-- JAL-3248 -->Developer documentation migrated to
markdown (with HTML rendering)
</li>
<li>
- <!-- JAL-3287 -->HelpLinksChecker runs on Windows
+ <!-- JAL-3287 -->HelpLinksChecker runs on Windows
</li>
<li>
- <!-- JAL-3289 -->New URLs for publishing development
+ <!-- JAL-3289 -->New URLs for publishing development
versions of Jalview
</li>
</ul>
superposition in Jmol fail on Windows
</li>
<li>
- <!-- JAL-3286 -->Blank error dialog is displayed when discovering
- structures for sequences with lots of PDB structures
+ <!-- JAL-3286 -->Blank error dialog is displayed when
+ discovering structures for sequences with lots of PDB
+ structures
</li>
<li>
- <!-- JAL-3239 -->Text misaligned in EPS or SVG image export with
- monospaced font
+ <!-- JAL-3239 -->Text misaligned in EPS or SVG image export
+ with monospaced font
</li>
<li>
- <!-- JAL-3171 -->Warning of 'Duplicate entry' when saving Jalview
- project involving multiple views
+ <!-- JAL-3171 -->Warning of 'Duplicate entry' when saving
+ Jalview project involving multiple views
</li>
<li>
<!-- JAL-3164 -->Overview for complementary view in a linked
Annotation dialog hides columns
</li>
<li>
- <!-- JAL-3158 -->Selection highlighting in the complement of a
- CDS/Protein alignment stops working after making a selection in
- one view, then making another selection in the other view
+ <!-- JAL-3158 -->Selection highlighting in the complement of
+ a CDS/Protein alignment stops working after making a
+ selection in one view, then making another selection in the
+ other view
</li>
<li>
<!-- JAL-3161 -->Annotations tooltip changes beyond visible
columns
</li>
<li>
- <!-- JAL-3154 -->Table Columns could be re-ordered in Feature
- Settings and Jalview Preferences panels
+ <!-- JAL-3154 -->Table Columns could be re-ordered in
+ Feature Settings and Jalview Preferences panels
</li>
<li>
- <!-- JAL-2865 -->Jalview hangs when closing windows, or redrawing the
- overview with large alignments
+ <!-- JAL-2865 -->Jalview hangs when closing windows, or
+ redrawing the overview with large alignments
</li>
<li>
<!-- JAL-2750 -->Tree and PCA calculation fails for selected
- region if columns were selected by dragging right-to-left and the
- mouse moved to the left of the first column
+ region if columns were selected by dragging right-to-left
+ and the mouse moved to the left of the first column
</li>
<li>
- <!-- JAL-3218 -->Couldn't hide selected columns adjacent to a
- hidden column marker via scale popup menu
+ <!-- JAL-3218 -->Couldn't hide selected columns adjacent to
+ a hidden column marker via scale popup menu
</li>
<li>
- <!-- JAL-2846 -->Error message for trying to load in invalid URLs
- doesn't tell users the invalid URL
+ <!-- JAL-2846 -->Error message for trying to load in invalid
+ URLs doesn't tell users the invalid URL
</li>
<li>
<!-- JAL-2816 -->Tooltips displayed for features filtered by
score from view
</li>
<li>
- <!-- JAL-3330 -->Sequence Variants retrieved from Ensembl during
- show cross references or Fetch Database References are shown in
- red in original view
+ <!-- JAL-3330 -->Sequence Variants retrieved from Ensembl
+ during show cross references or Fetch Database References
+ are shown in red in original view
</li>
<li>
- <!-- JAL-2898,JAL-2207 -->stop_gained variants not shown correctly on
- peptide sequence (computed variant shown as p.Res.null)
+ <!-- JAL-2898,JAL-2207 -->stop_gained variants not shown
+ correctly on peptide sequence (computed variant shown as
+ p.Res.null)
</li>
<li>
<!-- JAL-2060 -->'Graduated colour' option not offered for
manually created features (where feature score is Float.NaN)
</li>
<li>
- <!-- JAL-3097,JAL-3099 -->Blank extra columns drawn or printed
- when columns are hidden
+ <!-- JAL-3097,JAL-3099 -->Blank extra columns drawn or
+ printed when columns are hidden
</li>
<li>
<!-- JAL-3082 -->Regular expression error for '(' in Select
Columns by Annotation description
</li>
<li>
- <!-- JAL-3072 -->Scroll doesn't stop on mouse up after dragging
- out of Scale or Annotation Panel
+ <!-- JAL-3072 -->Scroll doesn't stop on mouse up after
+ dragging out of Scale or Annotation Panel
</li>
<li>
- <!-- JAL-3075 -->Column selection incorrect after scrolling out of
- scale panel
+ <!-- JAL-3075 -->Column selection incorrect after scrolling
+ out of scale panel
</li>
<li>
<!-- JAL-3074 -->Left/right drag in annotation can scroll
alignment down
</li>
<li>
- <!-- JAL-3108 -->Error if mouse moved before clicking Reveal in
- scale panel
+ <!-- JAL-3108 -->Error if mouse moved before clicking Reveal
+ in scale panel
</li>
<li>
- <!-- JAL-3002 -->Column display is out by one after Page Down,
- Page Up in wrapped mode
+ <!-- JAL-3002 -->Column display is out by one after Page
+ Down, Page Up in wrapped mode
</li>
<li>
<!-- JAL-2839,JAL-781 -->Finder doesn't skip hidden regions
<!-- JAL-2932 -->Finder searches in minimised alignments
</li>
<li>
- <!-- JAL-2250 -->'Apply Colour to All Groups' not always selected
- on opening an alignment
+ <!-- JAL-2250 -->'Apply Colour to All Groups' not always
+ selected on opening an alignment
</li>
<li>
- <!-- JAL-3180 -->'Colour by Annotation' not marked selected in
- Colour menu
+ <!-- JAL-3180 -->'Colour by Annotation' not marked selected
+ in Colour menu
</li>
<li>
- <!-- JAL-3201 -->Per-group Clustal colour scheme changes when
- different groups in the alignment are selected
+ <!-- JAL-3201 -->Per-group Clustal colour scheme changes
+ when different groups in the alignment are selected
</li>
<li>
- <!-- JAL-2717 -->Internationalised colour scheme names not shown
- correctly in menu
+ <!-- JAL-2717 -->Internationalised colour scheme names not
+ shown correctly in menu
</li>
<li>
- <!-- JAL-3206 -->Colour by Annotation can go black at min/max
- threshold limit
+ <!-- JAL-3206 -->Colour by Annotation can go black at
+ min/max threshold limit
</li>
<li>
<!-- JAL-3125 -->Value input for graduated feature colour
colour
</li>
<li>
- <!-- JAL-2963 -->PCA points don't dim when rotated about y axis
+ <!-- JAL-2963 -->PCA points don't dim when rotated about y
+ axis
</li>
<li>
<!-- JAL-2959 -->PCA Print dialog continues after Cancel
</li>
<li>
- <!-- JAL-3078 -->Cancel in Tree Font dialog resets alignment, not
- Tree font
+ <!-- JAL-3078 -->Cancel in Tree Font dialog resets
+ alignment, not Tree font
</li>
<li>
- <!-- JAL-2964 -->Associate Tree with All Views not restored from
- project file
+ <!-- JAL-2964 -->Associate Tree with All Views not restored
+ from project file
</li>
<li>
- <!-- JAL-2915 -->Scrolling of split frame is sluggish if Overview
- shown in complementary view
+ <!-- JAL-2915 -->Scrolling of split frame is sluggish if
+ Overview shown in complementary view
</li>
<li>
- <!-- JAL-3313 -->Codon consensus incorrectly scaled when shown
- without normalisation
+ <!-- JAL-3313 -->Codon consensus incorrectly scaled when
+ shown without normalisation
</li>
<li>
- <!-- JAL-3021 -->Sequence Details report should open positioned at top
- of report
+ <!-- JAL-3021 -->Sequence Details report should open
+ positioned at top of report
</li>
<li>
<!-- JAL-914 -->Help page can be opened twice
</li>
<li>
- <!-- JAL-3333 -->Fuzzy text in web service status menu on OSX Mojave
+ <!-- JAL-3333 -->Fuzzy text in web service status menu on
+ OSX Mojave
</li>
</ul> <em>Editing</em>
<ul>
<li>
- <!-- JAL-2822 -->Start and End should be updated when sequence
- data at beginning or end of alignment added/removed via 'Edit'
- sequence
+ <!-- JAL-2822 -->Start and End should be updated when
+ sequence data at beginning or end of alignment added/removed
+ via 'Edit' sequence
</li>
<li>
- <!-- JAL-2541,JAL-2684 (tests) -->Delete/Cut selection doesn't
- relocate sequence features correctly when start of sequence is
- removed (Known defect since 2.10)
+ <!-- JAL-2541,JAL-2684 (tests) -->Delete/Cut selection
+ doesn't relocate sequence features correctly when start of
+ sequence is removed (Known defect since 2.10)
</li>
<li>
- <!-- JAL-2830 -->Inserting gap sequence via the Edit Sequence
- dialog corrupts dataset sequence
+ <!-- JAL-2830 -->Inserting gap sequence via the Edit
+ Sequence dialog corrupts dataset sequence
</li>
<li>
- <!-- JAL-868 -->Structure colours not updated when associated tree
- repartitions the alignment view (Regression in 2.10.5)
+ <!-- JAL-868 -->Structure colours not updated when
+ associated tree repartitions the alignment view (Regression
+ in 2.10.5)
</li>
</ul> <em>Datamodel</em>
<ul>
<!-- JAL-2986 -->Sequence.findIndex returns wrong value when
sequence's End is greater than its length
</li>
- </ul> <em>Bugs fixed for Java 11 Support (not yet on
- general release)</em>
+ </ul> <em>Bugs fixed for Java 11 Support (not yet on general
+ release)</em>
<ul>
<li>
<!-- JAL-3288 -->Menus work properly in split-screen
</li>
</ul> <em>New Known Defects</em>
<ul>
- <li>
- <!-- JAL-3340 -->Select columns containing feature by double clicking ignores bounds of an existing selected region
- </li>
- <li>
- <!-- JAL-3313 -->Codon consensus logo incorrectly scaled in gapped
- regions of protein alignment.
- </li>
- <li>
- <!-- JAL-2647 -->Input Data menu entry is greyed out when PCA View
- is restored from a Jalview 2.11 project
- </li>
- <li>
- <!-- JAL-3213 -->Alignment panel height can be too small after
- 'New View'
- </li>
- <li>
- <!-- JAL-3240 -->Display is incorrect after removing gapped
- columns within hidden columns
- </li>
- <li>
- <!-- JAL-3314 -->Rightmost selection is lost when mouse re-enters
- window after dragging left to select columns to left of visible
- region
- </li>
- <li>
- <!-- JAL-2876 -->Features coloured according to their description
- string and thresholded by score in earlier versions of Jalview are
- not shown as thresholded features in 2.11. To workaround please
- create a Score filter instead.
- </li>
- <li>
- <!-- JAL-3184 -->Cancel on Feature Settings dialog doesn't reset group visibility</li>
- <li>
- <!-- JAL-3338 -->F2 doesn't enable/disable keyboard mode in linked CDS/Protein view
- </li>
- <li>
- <!-- JAL-797 -->Closing tree windows with CMD/CTRL-W for
- alignments with multiple views can close views unexpectedly
- </li>
- </ul>
- <em>Java 11 Specific defects</em>
- <ul>
- <li>
- <!-- JAL-3235 -->Jalview Properties file is not sorted
- alphabetically when saved
- </li>
+ <li>
+ <!-- JAL-3340 -->Select columns containing feature by double
+ clicking ignores bounds of an existing selected region
+ </li>
+ <li>
+ <!-- JAL-3313 -->Codon consensus logo incorrectly scaled in
+ gapped regions of protein alignment.
+ </li>
+ <li>
+ <!-- JAL-2647 -->Input Data menu entry is greyed out when
+ PCA View is restored from a Jalview 2.11 project
+ </li>
+ <li>
+ <!-- JAL-3213 -->Alignment panel height can be too small
+ after 'New View'
+ </li>
+ <li>
+ <!-- JAL-3240 -->Display is incorrect after removing gapped
+ columns within hidden columns
+ </li>
+ <li>
+ <!-- JAL-3314 -->Rightmost selection is lost when mouse
+ re-enters window after dragging left to select columns to
+ left of visible region
+ </li>
+ <li>
+ <!-- JAL-2876 -->Features coloured according to their
+ description string and thresholded by score in earlier
+ versions of Jalview are not shown as thresholded features in
+ 2.11. To workaround please create a Score filter instead.
+ </li>
+ <li>
+ <!-- JAL-3184 -->Cancel on Feature Settings dialog doesn't
+ reset group visibility
+ </li>
+ <li>
+ <!-- JAL-3338 -->F2 doesn't enable/disable keyboard mode in
+ linked CDS/Protein view
+ </li>
+ <li>
+ <!-- JAL-797 -->Closing tree windows with CMD/CTRL-W for
+ alignments with multiple views can close views unexpectedly
+ </li>
+ </ul> <em>Java 11 Specific defects</em>
+ <ul>
+ <li>
+ <!-- JAL-3235 -->Jalview Properties file is not sorted
+ alphabetically when saved
+ </li>
</ul>
</td>
</tr>
<tr>
- <td width="60" nowrap>
- <div align="center">
- <strong><a name="Jalview.2.10.5">2.10.5</a><br /> <em>10/09/2018</em></strong>
- </div>
- </td>
- <td><div align="left">
- <em></em>
- <ul>
+ <td width="60" nowrap>
+ <div align="center">
+ <strong><a name="Jalview.2.10.5">2.10.5</a><br /> <em>10/09/2018</em></strong>
+ </div>
+ </td>
+ <td><div align="left">
+ <em></em>
+ <ul>
<li>
<!-- JAL-3101 -->Default memory for Jalview webstart and
InstallAnywhere increased to 1G.
</li>
</ul>
</div></td>
- <td><div align="left">
- <em></em>
- <ul>
+ <td><div align="left">
+ <em></em>
+ <ul>
<li>
<!-- JAL-3104 -->Poorly scaled bar in quality annotation
row shown in Feredoxin Structure alignment view of example
latest version of OSX.
</li>
</ul>
- </div>
- </td>
+ </div></td>
</tr>
<tr>
<td width="60" nowrap>
</ul>
<em>New Known Defects</em>
<ul>
- <li><!-- JAL-3083 -->Cancel option doesn't reset Colour by Annotation</li>
+ <li>
+ <!-- JAL-3083 -->Cancel option doesn't reset Colour by
+ Annotation
+ </li>
</ul>
</div></td>
</tr>
of features (particularly when transparency is disabled)
</li>
<li>
- <!-- JAL-2296,JAL-2295 -->Experimental features in 2.10.2 for
- exchange of Jalview features and Chimera attributes made
- generally available
+ <!-- JAL-2296,JAL-2295 -->Experimental features in 2.10.2
+ for exchange of Jalview features and Chimera attributes
+ made generally available
</li>
</ul>
- </div>
- </td>
+ </div></td>
<td><div align="left">
<ul>
<li>
columns in annotation row
</li>
<li>
- <!-- JAL-2913 -->Preferences panel's ID Width control is not
- honored in batch mode
+ <!-- JAL-2913 -->Preferences panel's ID Width control is
+ not honored in batch mode
</li>
<li>
<!-- JAL-2945 -->Linked sequence highlighting doesn't work
with negative residue numbers or missing residues fails
</li>
<li>
- <!-- JAL-2952 -->Exception when shading sequence with negative
- Temperature Factor values from annotated PDB files (e.g.
- as generated by CONSURF)
+ <!-- JAL-2952 -->Exception when shading sequence with
+ negative Temperature Factor values from annotated PDB
+ files (e.g. as generated by CONSURF)
</li>
<li>
<!-- JAL-2920 -->Uniprot 'sequence variant' features
structure and/or overview windows are also shown
</li>
<li>
- <!-- JAL-2954 -->Selecting columns from highlighted regions
- very slow for alignments with large numbers of sequences
+ <!-- JAL-2954 -->Selecting columns from highlighted
+ regions very slow for alignments with large numbers of
+ sequences
</li>
<li>
<!-- JAL-2925 -->Copy Consensus fails for group consensus
with 'StringIndexOutOfBounds'
</li>
<li>
- <!-- JAL-2976 -->VAqua(4) provided as fallback Look and Feel for OSX
- platforms running Java 10
+ <!-- JAL-2976 -->VAqua(4) provided as fallback Look and
+ Feel for OSX platforms running Java 10
</li>
<li>
<!-- JAL-2960 -->Adding a structure to existing structure
- view appears to do nothing because the view is hidden behind the alignment view
+ view appears to do nothing because the view is hidden
+ behind the alignment view
</li>
</ul>
<em>Applet</em>
</ul>
<em>Batch Mode</em>
<ul>
- <li>
- <!-- JAL-2913 -->Fixed ID width preference is not respected
- </li>
+ <li>
+ <!-- JAL-2913 -->Fixed ID width preference is not
+ respected
+ </li>
</ul>
<em>New Known Defects</em>
<ul>
2.10.4 is to fail back to N&W mapping)
</li>
<li>
- <!-- JAL-2990 -->Export Annotations from File Menu with CSV
- option gives blank output
+ <!-- JAL-2990 -->Export Annotations from File Menu with
+ CSV option gives blank output
</li>
</ul>
- </div>
- </td>
+ </div></td>
</tr>
<tr>
<td width="60" nowrap>
<div align="center">
- <strong><a name="Jalview.2.10.3b1">2.10.3b1</a><br /> <em>24/1/2018</em></strong>
+ <strong><a name="Jalview.2.10.3b1">2.10.3b1</a><br />
+ <em>24/1/2018</em></strong>
</div>
</td>
<td><div align="left">
- <ul><li>Updated Certum Codesigning Certificate
- (Valid till 30th November 2018)</li></ul></div></td>
- <td><div align="left">
- <em>Desktop</em><ul>
<ul>
- <li><!-- JAL-2859-->Only one structure is loaded when several sequences and structures are selected for viewing/superposing</li>
- <li><!-- JAL-2851-->Alignment doesn't appear to scroll vertically via trackpad and scrollwheel</li>
- <li><!-- JAL-2842-->Jalview hangs if up/down arrows pressed in cursor mode when cursor lies in hidden region at start of alignment</li>
- <li><!-- JAL-2827-->Helix annotation has 'notches' when scrolled into view if columns are hidden</li>
- <li><!-- JAL-2740-->Annotation column filter can be slow to reset (ie after hitting cancel) for large numbers of hidden columns</li>
- <li><!-- JAL-2849-->User preference for disabling inclusion of sequence limits when exporting as flat file has no effect</li>
- <li><!-- JAL-2679-->Reproducible cross-reference relationships when retrieving sequences from EnsemblGenomes</li>
+ <li>Updated Certum Codesigning Certificate (Valid till
+ 30th November 2018)</li>
</ul>
- </div>
- </td>
+ </div></td>
+ <td><div align="left">
+ <em>Desktop</em>
+ <ul>
+ <ul>
+ <li>
+ <!-- JAL-2859-->Only one structure is loaded when
+ several sequences and structures are selected for
+ viewing/superposing
+ </li>
+ <li>
+ <!-- JAL-2851-->Alignment doesn't appear to scroll
+ vertically via trackpad and scrollwheel
+ </li>
+ <li>
+ <!-- JAL-2842-->Jalview hangs if up/down arrows pressed
+ in cursor mode when cursor lies in hidden region at
+ start of alignment
+ </li>
+ <li>
+ <!-- JAL-2827-->Helix annotation has 'notches' when
+ scrolled into view if columns are hidden
+ </li>
+ <li>
+ <!-- JAL-2740-->Annotation column filter can be slow to
+ reset (ie after hitting cancel) for large numbers of
+ hidden columns
+ </li>
+ <li>
+ <!-- JAL-2849-->User preference for disabling inclusion
+ of sequence limits when exporting as flat file has no
+ effect
+ </li>
+ <li>
+ <!-- JAL-2679-->Reproducible cross-reference
+ relationships when retrieving sequences from
+ EnsemblGenomes
+ </li>
+ </ul>
+ </div></td>
</tr>
<tr>
<td width="60" nowrap>
<em>New features in Jalview Desktop</em>
<ul>
<li>
- <!-- JAL-2748 -->Uniprot Sequence Fetcher now uses web API at uniprot.org
+ <!-- JAL-2748 -->Uniprot Sequence Fetcher now uses web API
+ at uniprot.org
</li>
- <li> <!-- JAL-2745 -->HTTPS used for all connections to ebi.ac.uk
+ <li>
+ <!-- JAL-2745 -->HTTPS used for all connections to
+ ebi.ac.uk
</li>
</ul>
</div></td>
- <td><div align="left">
- </div></td>
+ <td><div align="left"></div></td>
</tr>
<tr>
<td width="60" nowrap>
recovered correctly from Jalview project file
</li>
<li>
- <!-- JAL-2256 -->Feature colours in overview when first opened
- (automatically via preferences) are different to the main
- alignment panel
+ <!-- JAL-2256 -->Feature colours in overview when first
+ opened (automatically via preferences) are different to
+ the main alignment panel
</li>
</ul>
<em>Data import/export</em>
column.
</li>
<li>
- <!-- JAL-1980 -->Null Pointer Exception raised when
+ <!-- JAL-1980 -->Null Pointer Exception raised when
pressing Add on an orphaned cut'n'paste window.
</li>
<!-- may exclude, this is an external service stability issue JAL-1941
<ul>
<li>URL links generated from description line for
regular-expression based URL links (applet and application)
+
<li>Non-positional feature URL links are shown in link
menu</li>
<li>Cancel button for DAS Feature Fetching
<li>PCA and PDB Viewers zoom via mouse roller
<li>User-defined sub-tree colours and sub-tree selection
+
<li>'New Window' button on the 'Output to Text box'
</ul>
<li>Fixed Remove Empty Columns Bug (empty columns at end
of alignment)
<li>Slowed DAS Feature Fetching for increased robustness.
+
<li>Made angle brackets in ASCII feature descriptions
display correctly
<li>WsDbFetch query/result association resolved
<li>Tree leaf to sequence mapping improved
<li>Smooth fonts switch moved to FontChooser dialog box.
+
</ul>
</td>
</head>
<body>
<p>
- <strong>Welcome to Jalview Version $$Version-Rel$$ !!</strong>
- <br />Please take a
- look at the <a href="releases.html#Jalview.$$Version-Rel$$">release
+ <strong>Welcome to Jalview Version $$Version-Rel$$ !!</strong> <br />Please
+ take a look at the <a href="releases.html#Jalview.$$Version-Rel$$">release
notes</a> for this build. Read on for the highlights.
</p>
<p>
<strong>Highlights in 2.11.2</strong>
</p>
- <p><strong>New features for working with 3D Structure</strong><br/>
- Jalview 2.11.2 features a number of new capabilities:<ul><li><strong>Linked viewing with <em>ChimeraX</em> and <em>PyMol</em></strong><br/>Simply configure your prefered viewer for 3D molecular data in <a href="features/preferences.html#structure">Jalview's structure preferences</a>, make sure that Jalview can locate the viewer's installation, and open a new view via the 3D Structure Chooser!</li>
- <li><strong>View predicted protein structures via 3D-Beacons</strong><br/>
- Jalview 2.11.2's <a href="features/structurechooser.html">Structure Chooser includes a client for the 3D-Beacons Network</a>, a new service that allows predicted and observed 3D models for proteins in Uniprot from a range of resources, including AlphaFold DB, SWISS-MODEL and a growing number of other resources.
- </li>
- <p><strong>Retrieval
+ <p>
+ <strong>New features for working with 3D Structure</strong><br />
+ Jalview 2.11.2 features a number of new capabilities described
+ below.
</p>
+
<p>
- For the full release notes, see <a
- href="releases.html#Jalview.2.11.1.4">the Jalview 2.11.1.4
- release notes</a>.
+ <strong>View predicted protein structures via 3D-Beacons</strong> <br>
+ Jalview 2.11.2's <a href="features/structurechooser.html">Structure
+ Chooser includes a client for the 3D-Beacons Network</a>. Launched in
+ 2021, the 3D-Beacons network (<a
+ href="https://www.ebi.ac.uk/pdbe/pdbe-kb/3dbeacons/">www.ebi.ac.uk/pdbe/pdbe-kb/3dbeacons/</a>)
+ provides a central point for the retrieval of predicted and observed
+ 3D structures for sequences in Uniprot, including homology models
+ from Swiss-model and deep learning based predictions from the EBI's
+ Alphafold database (Orengo et al. 2020, <a
+ href="https://doi.org/10.12688/f1000research.20559.1">doi:10.12688/f1000research.20559.1</a>).<br>
</p>
+
<p>
- <strong>Known Issues</strong>
+ <strong>Support for viewing structures with ChimeraX and
+ Pymol</strong><br> Jalview's 3D structure viewer system has been
+ re-architected to allow easier integration of external structure
+ viewers, and takes advantage of the strucViz2 Chimera communications
+ library developed by Scooter Morris (<a
+ href="https://doi.org/10.1093/bioinformatics/btm329">doi:10.1093/bioinformatics/btm329</a>).<br /> <br />
+ The <a href="features/preferences.html#structure">Structures
+ Preferences tab</a> provides new options allowing ChimeraX and
+ Pymol to be used for visualising external 3D structures. Jalview
+ 2.11.2 has been tested with Pymol 2.5.0 (community) and 2.5.2
+ (incentive). For ChimeraX, we recommend using v1.3 or later.<br />Views
+ from all structure viewers are saved in Jalview Projects, allowing
+ them to be shared with others using Jalview 2.11.2 or later,
+ providing they have the same viewer installed and configured to be
+ used with Jalview.
</p>
- <p>New known issues in this release affect recovery of CDS/Protein
- relationships from project files, and interactive selection of
- protein sequences from a tree built on linked nucleotide sequences.
- We will provide patches for these issues as soon as possible.</p>
+ <p>Other highlights include:</p>
+ <ul>
+ <li><strong>Easier configuration of <a
+ href="features/preferences.html#startup">Jalview's memory
+ allocation</a></strong></li>
+ <li>Import of annotated DNA and RNA loci via GenBank and EMBL
+ style flatfile</li>
+
+
+
+
+ <p>
+ For the full release notes, see <a
+ href="releases.html#Jalview.2.11.2.0">the Jalview 2.11.2.0
+ release notes</a>.
+ </p>
+ <p>
+ <strong>Known Issues</strong>
+ </p>
+ <p></p>
</ul>
</body>
</html>
label.viewer_path_tip = Jalview will first try any path entered here, else standard installation locations.<br>Double-click to browse for file.
label.invalid_viewer_path = Path not found or not executable
label.viewer_missing = Structure viewer not found.<br/>Please enter the path to the executable (if installed),<br/>or download and install the program.
-label.open_viewer_failed = Error opening {0} - is it installed?\nCheck path in Preferences, Structure
+label.open_viewer_failed = Error opening {0} - is it installed?\nCheck configured path in the Preferences' Structure tab
label.min_colour = Minimum Colour
label.max_colour = Maximum Colour
label.no_colour = No Colour
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
+import java.util.Locale;
import java.util.Map;
import org.slf4j.Logger;
String resType = "";
if (split.length == 2)
{
- resType = split[0].trim().toUpperCase();
+ resType = split[0].trim().toUpperCase(Locale.ROOT);
}
else if (split.length == 3)
{
- resType = split[1].trim().toUpperCase();
+ resType = split[1].trim().toUpperCase(Locale.ROOT);
}
if (resType.equalsIgnoreCase("HOH") || resType.equalsIgnoreCase("WAT"))
{
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
+import java.util.Locale;
import java.util.Map;
import java.util.Properties;
import java.util.Set;
if (os.startsWith("Linux"))
{
// ChimeraX .deb and .rpm packages put symbolic link from /usr/bin/chimerax
- pathList.add(String.format("/usr/bin/%s", chimeraExe.toLowerCase()));
+ pathList.add(String.format("/usr/bin/%s", chimeraExe.toLowerCase(Locale.ROOT)));
pathList.add(String.format("/usr/bin/%s", chimeraExe));
pathList.add(
- String.format("/usr/local/bin/%s", chimeraExe.toLowerCase()));
+ String.format("/usr/local/bin/%s", chimeraExe.toLowerCase(Locale.ROOT)));
pathList.add(String.format("/usr/local/bin/%s", chimeraExe));
// these paths also used by .deb and .rpm
pathList.add(String.format("/usr/lib/ucsf-%s/bin/%s",
- chimera.toLowerCase(), chimeraExe));
+ chimera.toLowerCase(Locale.ROOT), chimeraExe));
pathList.add(String.format("/usr/libexec/UCSF-%s/bin/%s", chimera,
chimeraExe));
// user home paths
pathList.add(String.format("%s/bin/%s",
- System.getProperty("user.home"), chimeraExe.toLowerCase()));
+ System.getProperty("user.home"), chimeraExe.toLowerCase(Locale.ROOT)));
pathList.add(String.format("%s/bin/%s",
System.getProperty("user.home"), chimeraExe));
pathList.add(String.format("%s/opt/bin/%s",
- System.getProperty("user.home"), chimeraExe.toLowerCase()));
+ System.getProperty("user.home"), chimeraExe.toLowerCase(Locale.ROOT)));
pathList.add(String.format("%s/opt/bin/%s",
System.getProperty("user.home"), chimeraExe));
pathList.add(String.format("%s/local/bin/%s",
- System.getProperty("user.home"), chimeraExe.toLowerCase()));
+ System.getProperty("user.home"), chimeraExe.toLowerCase(Locale.ROOT)));
pathList.add(String.format("%s/local/bin/%s",
System.getProperty("user.home"), chimeraExe));
}
static
{
Platform.getURLCommandArguments();
+ Platform.addJ2SDirectDatabaseCall("https://www.jalview.org");
+ Platform.addJ2SDirectDatabaseCall("http://www.jalview.org");
+ Platform.addJ2SDirectDatabaseCall("http://www.compbio.dundee.ac.uk");
+ Platform.addJ2SDirectDatabaseCall("https://www.compbio.dundee.ac.uk");
}
/*
*/
package jalview.bin;
+import java.util.Locale;
+
/**
* Methods to decide on appropriate memory setting for Jalview based on two
* optionally provided values: jvmmempc - the maximum percentage of total
+ "_CUSTOMISED_SETTINGS";
public static final String MEMORY_JVMMEMPC = NS + "_"
- + MAX_HEAPSIZE_PERCENT_PROPERTY_NAME.toUpperCase();
+ + MAX_HEAPSIZE_PERCENT_PROPERTY_NAME.toUpperCase(Locale.ROOT);
public static final String MEMORY_JVMMEMMAX = NS + "_"
- + MAX_HEAPSIZE_PROPERTY_NAME.toUpperCase();
+ + MAX_HEAPSIZE_PROPERTY_NAME.toUpperCase(Locale.ROOT);
protected static boolean logToClassChecked = false;
String refAtomsAlphaOnly = "("+getAtomSpec(refAtoms, specType)+" and (altloc '' or altloc 'a'))";
String atomSpec2AlphaOnly = "("+getAtomSpec(atomSpec, specType)+" and (altloc '' or altloc 'a'))";
// pair_fit mobile -> reference
+ // crashes when undo is enabled on 2.5.2 (incentive)
+ commands.add(new StructureCommand("undo_disable"));
commands.add(new StructureCommand("pair_fit",
atomSpec2AlphaOnly, refAtomsAlphaOnly));
-
+ commands.add(new StructureCommand("undo_enable"));
+
/*
* and show superposed residues as cartoon
*/
Console.error("Failed to start PyMOL with XMLRPC, response was: "
+ responses);
}
- Console.error("PyMOL started with XMLRPC on port " + port);
+ Console.info("PyMOL started with XMLRPC on port " + port);
return port;
}
@Override
public boolean isViewerRunning()
{
- return chimeraManager.isChimeraLaunched();
+ return chimeraManager!=null && chimeraManager.isChimeraLaunched();
}
/**
getViewerName()),
MessageManager.getString("label.error_loading_file"),
JvOptionPane.ERROR_MESSAGE);
+ jmb.closeViewer(true);
this.dispose();
return;
}
Console.error("Couldn't open Chimera viewer!", ex);
}
}
+ if (!jmb.isViewerRunning())
+ {
+ // nothing to do
+ // TODO: ensure we tidy up JAL-3619
+ return;
+ }
int num = -1;
for (PDBEntry pe : filePDB)
{
public class Desktop extends jalview.jbgui.GDesktop
implements DropTargetListener, ClipboardOwner, IProgressIndicator, jalview.api.StructureSelectionManagerProvider {
private static final String CITATION;
- static {
- URL bg_logo_url = ChannelProperties.getImageURL("bg_logo." + String.valueOf(SplashScreen.logoSize));
- URL uod_logo_url = ChannelProperties.getImageURL("uod_banner." + String.valueOf(SplashScreen.logoSize));
+ static
+ {
+ URL bg_logo_url = ChannelProperties.getImageURL(
+ "bg_logo." + String.valueOf(SplashScreen.logoSize));
+ URL uod_logo_url = ChannelProperties.getImageURL(
+ "uod_banner." + String.valueOf(SplashScreen.logoSize));
boolean logo = (bg_logo_url != null || uod_logo_url != null);
StringBuilder sb = new StringBuilder();
- sb.append("<br><br>Development managed by The Barton Group, University of Dundee, Scotland, UK.");
- if (logo) {
+ sb.append(
+ "<br><br>Jalview is free software released under GPLv3.<br><br>Development is managed by The Barton Group, University of Dundee, Scotland, UK.");
+ if (logo)
+ {
sb.append("<br>");
}
- sb.append(bg_logo_url == null ? "" : "<img alt=\"Barton Group logo\" src=\"" + bg_logo_url.toString() + "\">");
+ sb.append(bg_logo_url == null ? ""
+ : "<img alt=\"Barton Group logo\" src=\""
+ + bg_logo_url.toString() + "\">");
sb.append(uod_logo_url == null ? ""
- : " <img alt=\"University of Dundee shield\" src=\"" + uod_logo_url.toString() + "\">");
+ : " <img alt=\"University of Dundee shield\" src=\""
+ + uod_logo_url.toString() + "\">");
sb.append(
- "<br><br>For help, see the FAQ at <a href=\"https://www.jalview.org/faq\">www.jalview.org/faq</a> and/or join the jalview-discuss@jalview.org mailing list");
+ "<br><br>For help, see <a href=\"https://www.jalview.org/faq\">www.jalview.org/faq</a> and join <a href=\"https://discourse.jalview.org\">discourse.jalview.org</a>");
sb.append("<br><br>If you use Jalview, please cite:"
- + "<br>Waterhouse, A.M., Procter, J.B., Martin, D.M.A, Clamp, M. and Barton, G. J. (2009)"
- + "<br>Jalview Version 2 - a multiple sequence alignment editor and analysis workbench"
- + "<br>Bioinformatics doi: 10.1093/bioinformatics/btp033");
+ + "<br>Waterhouse, A.M., Procter, J.B., Martin, D.M.A, Clamp, M. and Barton, G. J. (2009)"
+ + "<br>Jalview Version 2 - a multiple sequence alignment editor and analysis workbench"
+ + "<br>Bioinformatics <a href=\"https://doi.org/10.1093/bioinformatics/btp033\">doi: 10.1093/bioinformatics/btp033</a>");
CITATION = sb.toString();
}
@Override
public boolean isViewerRunning()
{
- return pymolManager.isPymolLaunched();
+ return pymolManager !=null && pymolManager.isPymolLaunched();
}
@Override
} catch (Exception ex)
{
Console.error("Couldn't open PyMOL viewer!", ex);
+ // if we couldn't open Pymol, no point continuing
+ return;
}
}
+ if (!binding.isViewerRunning())
+ {
+ // nothing to do
+ // TODO: ensure we tidy up JAL-3619
+
+ return;
+ }
+
int num = -1;
for (PDBEntry pe : filePDB)
{
} catch (Exception ex)
{
Console.error(
- "Couldn't open " + pe.getFile() + " in Chimera viewer!",
+ "Couldn't open " + pe.getFile() + " in "+getViewerName()+"!",
ex);
} finally
{
getViewerName()),
MessageManager.getString("label.error_loading_file"),
JvOptionPane.ERROR_MESSAGE);
+ binding.closeViewer(true);
this.dispose();
return;
}
splashText.setVisible(true);
splashText.setSize(new Dimension(750,
- 375 + logoSize + (Platform.isJS() ? 40 : 0)));
+ 425 + logoSize + (Platform.isJS() ? 40 : 0)));
splashText.setBackground(bg);
splashText.setForeground(fg);
splashText.setFont(font);
public static int firstCharPosIgnoreCase(String text, String chars)
{
int min = text.length() + 1;
- for (char c : chars.toLowerCase().toCharArray())
+ for (char c : chars.toLowerCase(Locale.ROOT).toCharArray())
{
- int i = text.toLowerCase().indexOf(c);
+ int i = text.toLowerCase(Locale.ROOT).indexOf(c);
if (0 <= i && i < min)
{
min = i;
import jalview.bin.Cache;
import jalview.datamodel.DBRefSource;
+import jalview.util.Platform;
import com.stevesoft.pat.Regex;
static final String PFAM_BASEURL_KEY = "PFAM_BASEURL";
private static final String DEFAULT_PFAM_BASEURL = "https://pfam.xfam.org";
+ static {
+ Platform.addJ2SDirectDatabaseCall(DEFAULT_PFAM_BASEURL);
+ }
public Pfam()
{
import jalview.bin.Cache;
import jalview.datamodel.DBRefSource;
+import jalview.util.Platform;
import com.stevesoft.pat.Regex;
private static final String DEFAULT_RFAM_BASEURL = "https://rfam.xfam.org";
+ static {
+ Platform.addJ2SDirectDatabaseCall(DEFAULT_RFAM_BASEURL);
+ }
/*
* append to URLs to retrieve as a gzipped file
*/
}
return null;
}
-
+ static {
+ Platform.addJ2SDirectDatabaseCall("https://www.ebi.ac.uk/");
+ }
/**
* Constructs the URL to fetch from
*
import java.awt.Color;
import java.util.List;
+import java.util.Locale;
import java.util.Vector;
public class PDBChain
public PDBChain(String thePdbid, String theId, String tempFactorColumnName)
{
- this.pdbid = thePdbid == null ? thePdbid : thePdbid.toLowerCase();
+ this.pdbid = thePdbid == null ? thePdbid : thePdbid.toLowerCase(Locale.ROOT);
this.id = theId;
if (tempFactorColumnName!=null && tempFactorColumnName.length()>0)
{
import java.io.StringWriter;
import java.io.Writer;
import java.util.Collection;
+import java.util.Locale;
// import java.util.List;
import java.util.Map;
for(int k=0;k<4-ss.length();k++){
sb.append('0');
}
- sb.append(ss.toUpperCase());
+ sb.append(ss.toUpperCase(Locale.ROOT));
}
else{
sb.append(ch);
import java.io.IOException;
import java.io.InputStream;
import java.text.ParseException;
+import java.util.Locale;
/**
* Represents a Windows shortcut (typically visible to Java only as a '.lnk' file).
boolean isPotentiallyValid = false;
try {
isPotentiallyValid = file.isFile()
- && file.getName().toLowerCase().endsWith(".lnk")
+ && file.getName().toLowerCase(Locale.ROOT).endsWith(".lnk")
&& fis.available() >= minimum_length
&& isMagicPresent(getBytes(fis, 32));
} finally {
toAlign.addRange("2", 22, 22, "C");
List<StructureCommandI> commands = testee.superposeStructures(ref,
toAlign, AtomSpecType.ALPHA);
- assertEquals(commands.size(), 2);
+ assertEquals(commands.size(), 4);
String refSpecCA = "(1//A/12-14/CA 1//B/18+22-23/CA";
String toAlignSpecCA = "(2//B/15-17+20-21/CA 2//C/22/CA";
String refSpec = "1//A/12-14/ 1//B/18+22-23/";
String toAlignSpec = "2//B/15-17+20-21/ 2//C/22/";
String altLoc = " and (altloc '' or altloc 'a'))";
// super command: separate arguments for regions to align
- assertEquals(commands.get(0),
+ assertEquals(commands.get(1),
new StructureCommand("pair_fit", toAlignSpecCA+altLoc, refSpecCA+altLoc));
// show aligned regions: one argument for combined atom specs
- assertEquals(commands.get(1), new StructureCommand("show", "cartoon",
+ assertEquals(commands.get(3), new StructureCommand("show", "cartoon",
refSpec + " " + toAlignSpec));
}
#!/usr/bin/env bash
# perform a dev build and install on local macOS machine
-INSTALLERVOL="Jalview Installer"
-APP=Jalview.app
+INSTALLERVOL="Jalview Non-Release Installer"
+APP="Jalview Local.app"
-APPLICATIONS=$HOME/Applications
+APPLICATIONS=/Applications
CHANNEL=NOCHANNEL
-DMG=build/install4j/11/Jalview-OFFLINE_macos-app_DEVELOPMENT-j11.dmg
+DMG=build/install4j/11/Jalview_Local-TEST-macos-java_11.dmg
+
if [ x$1 != "xnogradle" ]; then
gradle installers -PCHANNEL=LOCAL -Pinstall4j_media_types=macosArchive
echo ""
fi
if [ -e "/Volumes/$INSTALLERVOL/$APP" ]; then
+ echo "Removing '$APPLICATIONS/$APP'"
/bin/rm -r "$APPLICATIONS/$APP"
+ echo "Syncing '/Volumes/$INSTALLERVOL/$APP' to '$APPLICATIONS/'"
rsync -avh "/Volumes/$INSTALLERVOL/$APP" "$APPLICATIONS/"
+ echo "Unmounting '/Volumes/$INSTALLERVOL'"
umount "/Volumes/$INSTALLERVOL"
fi
# make symbolic link with _ instead of - for install4j9
NEWNAME=${NAME//-/_}
echo "Linking from ${NEWNAME}.${EXT} for install4j9"
+ [ -e "${ARCHIVEDIR}/${NEWNAME}.${EXT}" ] && $RM "${ARCHIVEDIR}/${NEWNAME}.${EXT}"
ln -s "${NAME}.${EXT}" "${ARCHIVEDIR}/${NEWNAME}.${EXT}"
;;
*)
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<install4j version="9.0.5" transformSequenceNumber="9">
+ <directoryPresets config="bin/jalview" />
+ <application name="${compiler:JALVIEW_APPLICATION_NAME}" applicationId="${compiler:WINDOWS_APPLICATION_ID}" mediaDir="${compiler:BUILD_DIR}" lzmaCompression="true" shortName="${compiler:INTERNAL_ID}" publisher="University of Dundee" publisherWeb="https://www.jalview.org/" version="${compiler:JALVIEW_VERSION}" allPathsRelative="true" macVolumeId="5aac4968c304f65" javaMinVersion="${compiler:JAVA_MIN_VERSION}" javaMaxVersion="${compiler:JAVA_MAX_VERSION}" allowBetaVM="true" jdkMode="jdk" jdkName="JDK 11.0">
+ <searchSequence>
+ <directory location="${compiler:JRE_DIR}" />
+ <registry />
+ <envVar name="JAVA_HOME" />
+ </searchSequence>
+ <variables>
+ <variable name="JALVIEW_NAME" value="Jalview" />
+ <variable name="JALVIEW_APPLICATION_NAME" value="Jalview" />
+ <variable name="JALVIEW_DIR" value="../.." />
+ <variable name="BUILD_DIR" value="${compiler:JALVIEW_DIR}/build/install4j" />
+ <variable name="OSX_KEYSTORE" />
+ <variable name="OSX_APPLEID" />
+ <variable name="JSIGN_SH" value="echo" />
+ <variable name="JRE_DIR" value="jre" description="The folder under the app folder that the JRE will be either copied or unpacked into" />
+ <variable name="INSTALLER_TEMPLATE_VERSION" value="DEVELOPMENT_default" />
+ <variable name="JALVIEW_VERSION" value="DEVELOPMENT" />
+ <variable name="JAVA_MIN_VERSION" value="11" />
+ <variable name="JAVA_MAX_VERSION" value="11" />
+ <variable name="JAVA_VERSION" value="11" />
+ <variable name="JAVA_INTEGER_VERSION" value="11" />
+ <variable name="VERSION" value="DEVELOPMENT" />
+ <variable name="MACOS_JAVA_VM_DIR" value="${compiler:env.HOME}/buildtools/jre/jre-${compiler:JAVA_INTEGER_VERSION}-mac-x64/jre" />
+ <variable name="WINDOWS_JAVA_VM_DIR" value="${compiler:env.HOME}/buildtools/jre/jre-${compiler:JAVA_INTEGER_VERSION}-windows-x64/jre" />
+ <variable name="LINUX_JAVA_VM_DIR" value="${compiler:env.HOME}/buildtools/jre/jre-${compiler:JAVA_INTEGER_VERSION}-linux-x64/jre" />
+ <variable name="MACOS_JAVA_VM_TGZ" value="${compiler:env.HOME}/buildtools/jre/tgz/jre_${compiler:JAVA_INTEGER_VERSION}_mac_x64.tar.gz" />
+ <variable name="WINDOWS_JAVA_VM_TGZ" value="${compiler:env.HOME}/buildtools/jre/tgz/jre_${compiler:JAVA_INTEGER_VERSION}_windows_x64.tar.gz" />
+ <variable name="LINUX_JAVA_VM_TGZ" value="${compiler:env.HOME}/buildtools/jre/tgz/jre_${compiler:JAVA_INTEGER_VERSION}_linux_x64.tar.gz" />
+ <variable name="COPYRIGHT_MESSAGE" value="..." />
+ <variable name="BUNDLE_ID" value="org.jalview.jalview-desktop" />
+ <variable name="INTERNAL_ID" value="Jalview" />
+ <variable name="WINDOWS_APPLICATION_ID" value="6595-2347-1923-0725" />
+ <variable name="MACOS_DMG_DS_STORE" value="jalview_dmg_DS_Store" />
+ <variable name="MACOS_DMG_BG_IMAGE" value="jalview_dmg_background-72dpi.png" />
+ <variable name="WRAPPER_LINK" value="jalview" />
+ <variable name="BASH_WRAPPER_SCRIPT" value="jalview.sh" />
+ <variable name="WRAPPER_SCRIPT_BIN_DIR" value="bin" />
+ <variable name="INSTALLER_NAME" value="Jalview Installer" />
+ <variable name="INSTALL4J_UTILS_DIR" value="utils/install4j" />
+ <variable name="GETDOWN_WEBSITE_DIR" value="getdown/website" />
+ <variable name="GETDOWN_FILES_DIR" value="getdown/files" />
+ <variable name="GETDOWN_RESOURCE_DIR" value="resource" />
+ <variable name="GETDOWN_DIST_DIR" value="dist" />
+ <variable name="GETDOWN_ALT_DIR" value="alt" />
+ <variable name="GETDOWN_INSTALL_DIR" value="install" />
+ <variable name="INFO_PLIST_FILE_ASSOCIATIONS_FILE" value="file_associations_auto-Info_plist.xml" />
+ <variable name="APPLICATION_CATEGORIES" value="Science;Biology;Java;" />
+ <variable name="APPLICATION_FOLDER" value="Jalview" />
+ <variable name="UNIX_APPLICATION_FOLDER" value="jalview" />
+ <variable name="EXECUTABLE_NAME" value="jalview" />
+ <variable name="EXTRA_SCHEME" value="jalviewx" />
+ <variable name="MAC_ICONS_FILE" value="utils/channels/release/images/jalview_logo.icns" />
+ <variable name="WINDOWS_ICONS_FILE" value="utils/channels/release/images/jalview_logo.ico" />
+ <variable name="PNG_ICON_FILE" value="utils/channels/release/images/jalview_logo.png" />
+ <variable name="BACKGROUND" value="utils/channels/release/images/jalview_logo_background_fade-640x480.png" />
+ </variables>
+ <codeSigning macEnabled="true" macPkcs12File="${compiler:OSX_KEYSTORE}" macNotarize="true" appleId="${compiler:OSX_APPLEID}">
+ <macAdditionalBinaries>
+ <entry>*.dylib</entry>
+ <entry>*.so</entry>
+ <entry>*.jnilib</entry>
+ <entry>unpack200</entry>
+ <entry>tnameserv</entry>
+ <entry>servertool</entry>
+ <entry>rmiregistry</entry>
+ <entry>rmid</entry>
+ <entry>policytool</entry>
+ <entry>pack200</entry>
+ <entry>orbd</entry>
+ <entry>keytool</entry>
+ <entry>jjs</entry>
+ <entry>java</entry>
+ <entry>jspawnhelper</entry>
+ <entry>libfreetype.dylib.6</entry>
+ <entry>applet</entry>
+ <entry>jaotc</entry>
+ <entry>jfr</entry>
+ <entry>jrunscript</entry>
+ <entry>libjli.dylib</entry>
+ </macAdditionalBinaries>
+ </codeSigning>
+ </application>
+ <files defaultUninstallMode="2" preserveSymlinks="false">
+ <filesets>
+ <fileset name="Full file set" id="734" customizedId="FULL_FILE_SET" />
+ <fileset name="Mac OS X JRE" id="880" />
+ <fileset name="Windows JRE" id="882" />
+ <fileset name="Jalview application" id="1873" />
+ </filesets>
+ <roots>
+ <root id="735" fileset="734" />
+ <root id="881" fileset="880" />
+ <root id="883" fileset="882" />
+ <root id="1874" fileset="1873" />
+ </roots>
+ <mountPoints>
+ <mountPoint id="454" />
+ <mountPoint id="736" root="735" />
+ <mountPoint id="884" root="881" />
+ <mountPoint id="885" root="883" />
+ <mountPoint id="1875" root="1874" />
+ </mountPoints>
+ <entries>
+ <dirEntry mountPoint="454" file="${compiler:JALVIEW_DIR}/${compiler:GETDOWN_FILES_DIR}/${compiler:JAVA_VERSION}" uninstallMode="2" overrideOverwriteMode="true" overrideUninstallMode="true" subDirectory="files" />
+ <dirEntry mountPoint="736" file="${compiler:JALVIEW_DIR}/${compiler:GETDOWN_WEBSITE_DIR}/${compiler:JAVA_VERSION}" uninstallMode="2" overrideOverwriteMode="true" overrideUninstallMode="true" subDirectory="files">
+ <exclude>
+ <entry location="${compiler:WRAPPER_SCRIPT_BIN_DIR}" />
+ </exclude>
+ </dirEntry>
+ <dirEntry mountPoint="736" file="${compiler:JALVIEW_DIR}/examples" overwriteMode="1" uninstallMode="2" overrideFileMode="true" overrideOverwriteMode="true" overrideUninstallMode="true" entryMode="subdir" subDirectory="examples" />
+ <dirEntry mountPoint="736" file="${compiler:JALVIEW_DIR}/${compiler:GETDOWN_WEBSITE_DIR}/${compiler:JAVA_VERSION}/${compiler:WRAPPER_SCRIPT_BIN_DIR}" fileMode="755" overrideFileMode="true" overrideUninstallMode="true" entryMode="subdir" subDirectory="${compiler:WRAPPER_SCRIPT_BIN_DIR}" overrideDirMode="true" />
+ <dirEntry mountPoint="884" file="${compiler:MACOS_JAVA_VM_DIR}" fileMode="755" overrideFileMode="true" overrideUninstallMode="true" entryMode="subdir" subDirectory="${compiler:JRE_DIR}" />
+ <dirEntry mountPoint="885" file="${compiler:WINDOWS_JAVA_VM_DIR}" fileMode="755" overrideFileMode="true" overrideUninstallMode="true" entryMode="subdir" subDirectory="${compiler:JRE_DIR}" />
+ <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" />
+ </entries>
+ <components>
+ <component name="jalview_getdown" id="1031">
+ <include>
+ <entry filesetId="734" />
+ </include>
+ </component>
+ <component name="macos_java_vm" id="1155">
+ <include>
+ <entry filesetId="880" />
+ </include>
+ </component>
+ <component name="windows_java_vm" id="1156">
+ <include>
+ <entry filesetId="882" />
+ </include>
+ </component>
+ <component name="getdown" id="1276">
+ <include>
+ <entry defaultFileset="true" />
+ </include>
+ </component>
+ <component name="jalview" id="1881">
+ <include>
+ <entry filesetId="1873" />
+ </include>
+ </component>
+ </components>
+ </files>
+ <launchers>
+ <launcher name="Jalview Launcher" id="737" customizedId="JALVIEW" menuName="${compiler:JALVIEW_APPLICATION_NAME}" icnsFile="${compiler:JALVIEW_DIR}/${compiler:MAC_ICONS_FILE}" customMacBundleIdentifier="true" macBundleIdentifier="${compiler:BUNDLE_ID}" fileset="734" useCustomMacosExecutableName="true" customMacosExecutableName="${compiler:JALVIEW_APPLICATION_NAME}">
+ <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">
+ <versionInfo include="true" fileDescription="${compiler:sys.fullName}" legalCopyright="${compiler:COPYRIGHT_MESSAGE}" internalName="${compiler:INTERNAL_ID}" productName="${compiler:sys.fullName}" />
+ </executable>
+ <splashScreen width="640" height="480" bitmapFile="${compiler:JALVIEW_DIR}/${compiler:BACKGROUND}" textOverlay="true">
+ <text>
+ <statusLine x="85" y="81" text="${compiler:sys.shortName}" fontSize="18" />
+ <versionLine x="85" y="109" text="version ${compiler:sys.version}" />
+ </text>
+ </splashScreen>
+ <java mainClass="com.threerings.getdown.launcher.GetdownApp" vmParameters="-Dinstaller_template_version=${compiler:INSTALLER_TEMPLATE_VERSION}" arguments=""${launcher:sys.launcherDirectory}" jalview">
+ <classPath>
+ <archive location="getdown-launcher.jar" />
+ <archive location="${compiler:GETDOWN_INSTALL_DIR}/getdown-launcher.jar" failOnError="false" />
+ </classPath>
+ <nativeLibraryDirectories>
+ <directory name="${compiler:JRE_DIR}/bin" />
+ <directory name="${compiler:GETDOWN_DIST_DIR}" />
+ </nativeLibraryDirectories>
+ </java>
+ <macStaticAssociationActions mode="selected">
+ <id>2350</id>
+ <id>2450</id>
+ <id>2641</id>
+ </macStaticAssociationActions>
+ <infoPlist>${compiler:file("${compiler:INFO_PLIST_FILE_ASSOCIATIONS_FILE}")}</infoPlist>
+ <iconImageFiles>
+ <file path="${compiler:JALVIEW_DIR}/${compiler:PNG_ICON_FILE}" />
+ </iconImageFiles>
+ </launcher>
+ </launchers>
+ <installerGui autoUpdateDescriptorUrl="https://www.jalview.org/install4j/updates.xml">
+ <applications>
+ <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}">
+ <serializedBean>
+ <property name="useCustomIcon" type="boolean" value="true" />
+ </serializedBean>
+ <styleOverrides>
+ <styleOverride name="Customize banner image" enabled="true">
+ <group id="146" beanClass="com.install4j.runtime.beans.groups.VerticalFormComponentGroup" useExternalParametrization="true" externalParametrizationName="Customize banner image" externalParametrizationMode="include">
+ <serializedBean>
+ <property name="backgroundColor">
+ <object class="com.install4j.runtime.beans.LightOrDarkColor">
+ <object class="java.awt.Color">
+ <int>255</int>
+ <int>255</int>
+ <int>255</int>
+ <int>255</int>
+ </object>
+ <object class="java.awt.Color">
+ <int>49</int>
+ <int>52</int>
+ <int>53</int>
+ <int>255</int>
+ </object>
+ </object>
+ </property>
+ <property name="borderSides">
+ <object class="com.install4j.runtime.beans.formcomponents.BorderSides">
+ <property name="bottom" type="boolean" value="true" />
+ </object>
+ </property>
+ <property name="imageEdgeBackgroundColor">
+ <object class="java.awt.Color">
+ <int>255</int>
+ <int>255</int>
+ <int>255</int>
+ <int>255</int>
+ </object>
+ </property>
+ <property name="imageEdgeBorder" type="boolean" value="true" />
+ <property name="imageFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>${compiler:JALVIEW_DIR}/${compiler:BACKGROUND}</string>
+ </object>
+ </property>
+ <property name="insets">
+ <object class="java.awt.Insets">
+ <int>5</int>
+ <int>10</int>
+ <int>10</int>
+ <int>10</int>
+ </object>
+ </property>
+ </serializedBean>
+ <externalParametrizationPropertyNames>
+ <propertyName>imageAnchor</propertyName>
+ <propertyName>imageEdgeBackgroundColor</propertyName>
+ <propertyName>imageFile</propertyName>
+ </externalParametrizationPropertyNames>
+ </group>
+ </styleOverride>
+ <styleOverride name="Jalview" enabled="true">
+ <formComponent name="Watermark" id="352" beanClass="com.install4j.runtime.beans.formcomponents.SeparatorComponent" insetTop="0" insetLeft="5" insetBottom="0" useExternalParametrization="true" externalParametrizationName="Jalview" externalParametrizationMode="include">
+ <serializedBean>
+ <property name="enabledTitleText" type="boolean" value="false" />
+ </serializedBean>
+ <externalParametrizationPropertyNames>
+ <propertyName>labelText</propertyName>
+ </externalParametrizationPropertyNames>
+ </formComponent>
+ </styleOverride>
+ </styleOverrides>
+ <startup>
+ <screen id="1" beanClass="com.install4j.runtime.beans.screens.StartupScreen" rollbackBarrierExitCode="0">
+ <actions>
+ <action id="22" beanClass="com.install4j.runtime.beans.actions.misc.RequestPrivilegesAction" actionElevationType="none" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="obtainIfAdminWin" type="boolean" value="false" />
+ </serializedBean>
+ </action>
+ <action name="Set unixUserBinDir (Linux or Unix)" id="2738" beanClass="com.install4j.runtime.beans.actions.control.SetVariableAction" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="script">
+ <object class="com.install4j.api.beans.ScriptProperty">
+ <property name="value" type="string">String userHome = (String)context.getVariable("sys.userHome");
+
+ArrayList<String> tryPaths = new ArrayList<> ();
+tryPaths.add(userHome + File.separator + "bin");
+tryPaths.add(userHome + File.separator + ".local" + File.separator + "bin");
+tryPaths.add(userHome + File.separator + "local" + File.separator + "bin");
+tryPaths.add(userHome + File.separator + "opt" + File.separator + "bin");
+
+if (Util.isMacOS()) { // && root permission?
+ tryPaths.add(File.separator + "usr" + File.separator + "local" + File.separator + "bin");
+}
+
+for (int i = 0; i < tryPaths.size(); i++) {
+ String tryPath = tryPaths.get(i);
+ File unixUserBinDir = new File(tryPath);
+ if (unixUserBinDir.exists()) {
+ return tryPath;
+ }
+}
+
+return null;
+</property>
+ </object>
+ </property>
+ <property name="variableName" type="string">unixUserBinDir</property>
+ </serializedBean>
+ <condition>Util.isLinux() || Util.isUnixInstaller() || Util.isMacOS()</condition>
+ </action>
+ <action name="Set macWrapperLinkLocation (macOS)" id="2745" beanClass="com.install4j.runtime.beans.actions.control.SetVariableAction" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="script">
+ <object class="com.install4j.api.beans.ScriptProperty">
+ <property name="value" type="string">String javaHome = System.getProperty("java.home");
+String appName = ((String)context.getCompilerVariable("JALVIEW_APPLICATION_NAME")) + ".app";
+int i = javaHome.indexOf(appName);
+String wrapperLink = null;
+if (i > -1) {
+ wrapperLink = javaHome.substring(0, i) + appName + File.separator + "Contents" + File.separator + "MacOS" + File.separator + ((String)context.getCompilerVariable("WRAPPER_LINK"));
+}
+return wrapperLink;
+</property>
+ </object>
+ </property>
+ <property name="variableName" type="string">macWrapperLinkLocation</property>
+ </serializedBean>
+ <condition>Util.isMacOS()</condition>
+ </action>
+ </actions>
+ </screen>
+ </startup>
+ <screens>
+ <screen id="2" beanClass="com.install4j.runtime.beans.screens.WelcomeScreen" rollbackBarrierExitCode="0">
+ <styleOverrides>
+ <styleOverride name="Customize banner image" enabled="true">
+ <group id="145" beanClass="com.install4j.runtime.beans.groups.VerticalFormComponentGroup" useExternalParametrization="true" externalParametrizationName="Customize banner image" externalParametrizationMode="include">
+ <serializedBean>
+ <property name="backgroundColor">
+ <object class="com.install4j.runtime.beans.LightOrDarkColor">
+ <object class="java.awt.Color">
+ <int>255</int>
+ <int>255</int>
+ <int>255</int>
+ <int>255</int>
+ </object>
+ <object class="java.awt.Color">
+ <int>49</int>
+ <int>52</int>
+ <int>53</int>
+ <int>255</int>
+ </object>
+ </object>
+ </property>
+ <property name="borderSides">
+ <object class="com.install4j.runtime.beans.formcomponents.BorderSides">
+ <property name="bottom" type="boolean" value="true" />
+ </object>
+ </property>
+ <property name="imageEdgeBackgroundColor">
+ <object class="com.install4j.runtime.beans.LightOrDarkColor">
+ <object class="java.awt.Color">
+ <int>25</int>
+ <int>143</int>
+ <int>220</int>
+ <int>255</int>
+ </object>
+ <object class="java.awt.Color">
+ <int>0</int>
+ <int>74</int>
+ <int>151</int>
+ <int>255</int>
+ </object>
+ </object>
+ </property>
+ <property name="imageEdgeBorder" type="boolean" value="true" />
+ <property name="imageFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>${compiler:JALVIEW_DIR}/${compiler:BACKGROUND}</string>
+ </object>
+ </property>
+ <property name="insets">
+ <object class="java.awt.Insets">
+ <int>5</int>
+ <int>10</int>
+ <int>10</int>
+ <int>10</int>
+ </object>
+ </property>
+ </serializedBean>
+ <externalParametrizationPropertyNames>
+ <propertyName>imageAnchor</propertyName>
+ <propertyName>imageEdgeBackgroundColor</propertyName>
+ <propertyName>imageFile</propertyName>
+ </externalParametrizationPropertyNames>
+ </group>
+ </styleOverride>
+ </styleOverrides>
+ <actions>
+ <action id="7" beanClass="com.install4j.runtime.beans.actions.misc.LoadResponseFileAction" rollbackBarrierExitCode="0" multiExec="true">
+ <serializedBean>
+ <property name="excludedVariables" type="array" elementType="string" length="1">
+ <element index="0">sys.installationDir</element>
+ </property>
+ </serializedBean>
+ <condition>context.getBooleanVariable("sys.confirmedUpdateInstallation")</condition>
+ </action>
+ </actions>
+ <formComponents>
+ <formComponent id="3" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent">
+ <serializedBean>
+ <property name="labelText" type="string">${form:welcomeMessage}</property>
+ </serializedBean>
+ <visibilityScript>!context.isConsole()</visibilityScript>
+ </formComponent>
+ <formComponent id="4" beanClass="com.install4j.runtime.beans.formcomponents.ConsoleHandlerFormComponent">
+ <serializedBean>
+ <property name="consoleScript">
+ <object class="com.install4j.api.beans.ScriptProperty">
+ <property name="value" type="string">String message = context.getMessage("ConsoleWelcomeLabel", context.getApplicationName());
+return console.askOkCancel(message, true);
+</property>
+ </object>
+ </property>
+ </serializedBean>
+ </formComponent>
+ <formComponent id="5" beanClass="com.install4j.runtime.beans.formcomponents.UpdateAlertComponent" useExternalParametrization="true" externalParametrizationName="Update Alert" externalParametrizationMode="include">
+ <externalParametrizationPropertyNames>
+ <propertyName>updateCheck</propertyName>
+ </externalParametrizationPropertyNames>
+ </formComponent>
+ <formComponent id="6" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent" insetTop="20">
+ <serializedBean>
+ <property name="labelText" type="string">${i18n:ClickNext}</property>
+ </serializedBean>
+ </formComponent>
+ </formComponents>
+ </screen>
+ <screen id="8" beanClass="com.install4j.runtime.beans.screens.InstallationDirectoryScreen" rollbackBarrierExitCode="0">
+ <condition>!context.getBooleanVariable("sys.confirmedUpdateInstallation")</condition>
+ <actions>
+ <action id="11" beanClass="com.install4j.runtime.beans.actions.misc.LoadResponseFileAction" rollbackBarrierExitCode="0" multiExec="true">
+ <serializedBean>
+ <property name="excludedVariables" type="array" elementType="string" length="1">
+ <element index="0">sys.installationDir</element>
+ </property>
+ </serializedBean>
+ <condition>context.getVariable("sys.responseFile") == null</condition>
+ </action>
+ </actions>
+ <formComponents>
+ <formComponent id="9" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent" insetBottom="25">
+ <serializedBean>
+ <property name="labelText" type="string">${i18n:SelectDirLabel(${compiler:sys.fullName})}</property>
+ </serializedBean>
+ </formComponent>
+ <formComponent id="10" beanClass="com.install4j.runtime.beans.formcomponents.InstallationDirectoryChooserComponent" useExternalParametrization="true" externalParametrizationName="Installation Directory Chooser" externalParametrizationMode="include">
+ <serializedBean>
+ <property name="requestFocus" type="boolean" value="true" />
+ </serializedBean>
+ <externalParametrizationPropertyNames>
+ <propertyName>allowSpacesOnUnix</propertyName>
+ <propertyName>checkFreeSpace</propertyName>
+ <propertyName>checkWritable</propertyName>
+ <propertyName>existingDirWarning</propertyName>
+ <propertyName>manualEntryAllowed</propertyName>
+ <propertyName>showFreeDiskSpace</propertyName>
+ <propertyName>showRequiredDiskSpace</propertyName>
+ <propertyName>standardValidation</propertyName>
+ <propertyName>suggestAppDir</propertyName>
+ <propertyName>validateApplicationId</propertyName>
+ <propertyName>validationScript</propertyName>
+ </externalParametrizationPropertyNames>
+ </formComponent>
+ </formComponents>
+ </screen>
+ <screen id="12" beanClass="com.install4j.runtime.beans.screens.ComponentsScreen" enabled="false" rollbackBarrierExitCode="0">
+ <formComponents>
+ <formComponent id="13" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent">
+ <serializedBean>
+ <property name="labelText" type="string">${i18n:SelectComponentsLabel2}</property>
+ </serializedBean>
+ <visibilityScript>!context.isConsole()</visibilityScript>
+ </formComponent>
+ <formComponent id="14" beanClass="com.install4j.runtime.beans.formcomponents.ComponentSelectorComponent" useExternalParametrization="true" externalParametrizationName="Installation Components" externalParametrizationMode="include">
+ <serializedBean>
+ <property name="fillVertical" type="boolean" value="true" />
+ </serializedBean>
+ <externalParametrizationPropertyNames>
+ <propertyName>selectionChangedScript</propertyName>
+ </externalParametrizationPropertyNames>
+ </formComponent>
+ </formComponents>
+ </screen>
+ <screen id="1692" beanClass="com.install4j.runtime.beans.screens.FileAssociationsScreen" rollbackBarrierExitCode="0">
+ <formComponents>
+ <formComponent id="1693" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent">
+ <serializedBean>
+ <property name="labelText" type="string">${i18n:SelectAssociationsLabel}</property>
+ </serializedBean>
+ </formComponent>
+ <formComponent id="1694" beanClass="com.install4j.runtime.beans.formcomponents.FileAssociationsComponent" useExternalParametrization="true" externalParametrizationName="File Associations" externalParametrizationMode="include">
+ <serializedBean>
+ <property name="fillVertical" type="boolean" value="true" />
+ <property name="selectionButtonPosition" type="enum" class="com.install4j.runtime.beans.formcomponents.VerticalDockingPosition" value="TOP" />
+ <property name="showSelectionButtons" type="boolean" value="true" />
+ </serializedBean>
+ <externalParametrizationPropertyNames>
+ <propertyName>showSelectionButtons</propertyName>
+ <propertyName>selectionButtonPosition</propertyName>
+ </externalParametrizationPropertyNames>
+ </formComponent>
+ </formComponents>
+ </screen>
+ <screen id="15" beanClass="com.install4j.runtime.beans.screens.InstallationScreen" rollbackBarrier="true" rollbackBarrierExitCode="0">
+ <actions>
+ <action id="17" beanClass="com.install4j.runtime.beans.actions.InstallFilesAction" actionElevationType="elevated" rollbackBarrierExitCode="0" failureStrategy="quit" errorMessage="${i18n:FileCorrupted}" />
+ <action name="Create program group (RELEASE)" id="18" customizedId="PROGRAM_GROUP_RELEASE" beanClass="com.install4j.runtime.beans.actions.desktop.CreateProgramGroupAction" actionElevationType="elevated" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="allUsers" type="boolean" value="false" />
+ <property name="categories" type="string">${compiler:APPLICATION_CATEGORIES}</property>
+ <property name="programGroupEntryConfigs">
+ <add>
+ <object class="com.install4j.runtime.beans.screens.components.ProgramGroupFileConfig">
+ <property name="name" type="string">Examples</property>
+ <property name="target">
+ <object class="java.io.File">
+ <string>examples</string>
+ </object>
+ </property>
+ </object>
+ </add>
+ </property>
+ <property name="programGroupName" type="string">${compiler:JALVIEW_NAME}</property>
+ <property name="uninstallerMenuName" type="string">${i18n:UninstallerMenuEntry(${compiler:sys.fullName})}</property>
+ </serializedBean>
+ <condition>!context.getBooleanVariable("sys.programGroupDisabled")</condition>
+ </action>
+ <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">
+ <serializedBean>
+ <property name="allUsers" type="boolean" value="false" />
+ <property name="categories" type="string">${compiler:APPLICATION_CATEGORIES}</property>
+ <property name="programGroupName" type="string">${compiler:JALVIEW_NAME}</property>
+ <property name="uninstallerMenuName" type="string">${i18n:UninstallerMenuEntry(${compiler:sys.fullName})}</property>
+ </serializedBean>
+ <condition>!context.getBooleanVariable("sys.programGroupDisabled")</condition>
+ </action>
+ <action id="19" beanClass="com.install4j.runtime.beans.actions.desktop.RegisterAddRemoveAction" actionElevationType="elevated" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="itemName" type="string">${compiler:sys.fullName} ${compiler:sys.version}</property>
+ </serializedBean>
+ </action>
+ <action id="124" beanClass="com.install4j.runtime.beans.actions.control.SetVariableAction" enabled="false" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="script">
+ <object class="com.install4j.api.beans.ScriptProperty">
+ <property name="value" type="string" />
+ </object>
+ </property>
+ <property name="variableName" type="string" />
+ </serializedBean>
+ <condition>true</condition>
+ </action>
+ <action id="134" beanClass="com.install4j.runtime.beans.actions.misc.AddVmOptionsAction" enabled="false" actionElevationType="elevated" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="launcherId" type="string">121</property>
+ <property name="vmOptions" type="array" elementType="string" length="0" />
+ </serializedBean>
+ </action>
+ <group name="File Associations" id="2251" beanClass="com.install4j.runtime.beans.groups.ActionGroup">
+ <beans>
+ <action id="2253" beanClass="com.install4j.runtime.beans.actions.control.SetMessageAction" actionElevationType="none" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="statusMessage" type="string">Creating file associations...</property>
+ <property name="useDetail" type="boolean" value="true" />
+ <property name="useStatus" type="boolean" value="true" />
+ </serializedBean>
+ </action>
+ <action id="2254" beanClass="com.install4j.runtime.beans.actions.control.SetProgressAction" actionElevationType="none" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="progressChangeType" type="enum" class="com.install4j.runtime.beans.actions.control.ProgressChangeType" value="SET_INDETERMINATE" />
+ </serializedBean>
+ </action>
+ <group name="File Associations Replacement Group" id="2753" customizedId="EXTENSIONS_REPLACED_BY_GRADLE_PARENT_GROUP" beanClass="com.install4j.runtime.beans.groups.ActionGroup">
+ <beans>
+ <action name="EXTENSIONS_REPLACED_BY_GRADLE" id="1691" customizedId="EXTENSIONS" beanClass="com.install4j.runtime.beans.actions.desktop.CreateFileAssociationAction" actionElevationType="elevated" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <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>
+ <property name="extension" type="string">extensions_to_be_replaced_by_gradle</property>
+ <property name="launcherId" type="string">JALVIEW</property>
+ </serializedBean>
+ </action>
+ </beans>
+ </group>
+ <action id="2542" beanClass="com.install4j.runtime.beans.actions.control.SetMessageAction" actionElevationType="none" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="statusMessage" type="string">Finished creating file associations</property>
+ <property name="useDetail" type="boolean" value="true" />
+ <property name="useStatus" type="boolean" value="true" />
+ </serializedBean>
+ </action>
+ <action id="2541" beanClass="com.install4j.runtime.beans.actions.control.SetProgressAction" actionElevationType="none" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="percentValue" type="int" value="100" />
+ </serializedBean>
+ </action>
+ </beans>
+ </group>
+ <action id="2350" beanClass="com.install4j.runtime.beans.actions.desktop.UrlHandlerAction" actionElevationType="elevated" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="launcherId" type="string">JALVIEW</property>
+ <property name="scheme" type="string">jalview</property>
+ </serializedBean>
+ </action>
+ <action id="2450" beanClass="com.install4j.runtime.beans.actions.desktop.UrlHandlerAction" actionElevationType="elevated" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="launcherId" type="string">JALVIEW</property>
+ <property name="scheme" type="string">jalviews</property>
+ </serializedBean>
+ </action>
+ <action id="2641" beanClass="com.install4j.runtime.beans.actions.desktop.UrlHandlerAction" actionElevationType="elevated" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="launcherId" type="string">JALVIEW</property>
+ <property name="scheme" type="string">${compiler:EXTRA_SCHEME}</property>
+ </serializedBean>
+ </action>
+ </actions>
+ <formComponents>
+ <formComponent id="16" beanClass="com.install4j.runtime.beans.formcomponents.ProgressComponent">
+ <serializedBean>
+ <property name="initialStatusMessage" type="string">${i18n:WizardPreparing}</property>
+ </serializedBean>
+ </formComponent>
+ </formComponents>
+ </screen>
+ <screen id="20" beanClass="com.install4j.runtime.beans.screens.FinishedScreen" rollbackBarrierExitCode="0" finishScreen="true">
+ <actions>
+ <action id="2012" beanClass="com.install4j.runtime.beans.actions.desktop.CreateStartMenuEntryAction" actionElevationType="elevated" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="allUsers" type="boolean" value="false" />
+ <property name="categories" type="string">${compiler:APPLICATION_CATEGORIES}</property>
+ <property name="entryName" type="string">${compiler:JALVIEW_APPLICATION_NAME}</property>
+ <property name="file">
+ <object class="java.io.File">
+ <string>${installer:sys.contentDir}/${compiler:EXECUTABLE_NAME}</string>
+ </object>
+ </property>
+ <property name="icon">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>${compiler:JALVIEW_DIR}/${compiler:WINDOWS_ICONS_FILE}</string>
+ </object>
+ </property>
+ <property name="programGroupName" type="string">${compiler:JALVIEW_NAME}</property>
+ <property name="unixIconFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>${compiler:JALVIEW_DIR}/${compiler:PNG_ICON_FILE}</string>
+ </object>
+ </property>
+ </serializedBean>
+ <condition>!context.getBooleanVariable("sys.programGroupDisabled")</condition>
+ </action>
+ <action id="573" beanClass="com.install4j.runtime.beans.actions.desktop.CreateDesktopLinkAction" actionElevationType="elevated" rollbackBarrierExitCode="0" errorMessage="Could not make desktop link">
+ <serializedBean>
+ <property name="allUsers" type="boolean" value="false" />
+ <property name="description" type="string">${compiler:JALVIEW_APPLICATION_NAME}</property>
+ <property name="file">
+ <object class="java.io.File">
+ <string>${installer:sys.contentDir}/${compiler:EXECUTABLE_NAME}</string>
+ </object>
+ </property>
+ <property name="name" type="string">${compiler:JALVIEW_APPLICATION_NAME}</property>
+ <property name="unixIconFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>${compiler:JALVIEW_DIR}/${compiler:PNG_ICON_FILE}</string>
+ </object>
+ </property>
+ <property name="winIconFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>${compiler:JALVIEW_DIR}/${compiler:WINDOWS_ICONS_FILE}</string>
+ </object>
+ </property>
+ </serializedBean>
+ <condition>context.getBooleanVariable("createDesktopLinkAction")</condition>
+ </action>
+ <action id="576" beanClass="com.install4j.runtime.beans.actions.desktop.AddToDockAction" actionElevationType="none" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="executable">
+ <object class="java.io.File">
+ <string>${compiler:JALVIEW_APPLICATION_NAME}.app</string>
+ </object>
+ </property>
+ </serializedBean>
+ <condition>context.getBooleanVariable("addToDockAction")</condition>
+ </action>
+ <action name="Linux/Unix symlink" id="2733" beanClass="com.install4j.runtime.beans.actions.files.CreateSymlinkAction" actionElevationType="elevated" rollbackBarrierExitCode="0" errorMessage="Could not make symlink to wrapper script">
+ <serializedBean>
+ <property name="file">
+ <object class="java.io.File">
+ <string>${compiler:WRAPPER_SCRIPT_BIN_DIR}/${compiler:BASH_WRAPPER_SCRIPT}</string>
+ </object>
+ </property>
+ <property name="linkFile">
+ <object class="java.io.File">
+ <string>${compiler:WRAPPER_SCRIPT_BIN_DIR}/${compiler:WRAPPER_LINK}</string>
+ </object>
+ </property>
+ </serializedBean>
+ <condition>Util.isLinux() || Util.isUnixInstaller() || Util.isMacOS()</condition>
+ </action>
+ <action name="Add Jalview bin to the user's path (Windows)" id="2740" beanClass="com.install4j.runtime.beans.actions.misc.ModifyEnvironmentVariableAction" actionElevationType="elevated" rollbackBarrierExitCode="0" errorMessage="Could not add "${installer:sys.contentDir}\${compiler:WRAPPER_SCRIPT_BIN_DIR}" to the Path environment variable">
+ <serializedBean>
+ <property name="type" type="enum" class="com.install4j.runtime.beans.actions.misc.ModifyStringType" value="APPEND" />
+ <property name="value" type="string">${installer:sys.contentDir}\${compiler:WRAPPER_SCRIPT_BIN_DIR}</property>
+ <property name="variableName" type="string">Path</property>
+ </serializedBean>
+ <condition>context.getBooleanVariable("appendToPathAction")</condition>
+ </action>
+ <action name="Create Linux/Unix symbolic link to jalview.sh in user's local bin" id="2739" beanClass="com.install4j.runtime.beans.actions.files.CreateSymlinkAction" actionElevationType="elevated" rollbackBarrierExitCode="0" errorMessage="Could not make a ${compiler:WRAPPER_LINK} symbolic link in ~/${installer:unixUserBinDir}">
+ <serializedBean>
+ <property name="file">
+ <object class="java.io.File">
+ <string>${installer:sys.contentDir}/${compiler:WRAPPER_SCRIPT_BIN_DIR}/${compiler:BASH_WRAPPER_SCRIPT}</string>
+ </object>
+ </property>
+ <property name="linkFile">
+ <object class="java.io.File">
+ <string>${installer:unixUserBinDir}/${compiler:WRAPPER_LINK}</string>
+ </object>
+ </property>
+ </serializedBean>
+ <condition>context.getBooleanVariable("makeSymbolicLinkAction") && ( Util.isLinux() || Util.isUnixInstaller() ) && ( context.getVariable("unixUserBinDir") != null )</condition>
+ </action>
+ <action name="Create macOS symbolic link to jalview in user's local bin" id="2743" beanClass="com.install4j.runtime.beans.actions.files.CreateSymlinkAction" actionElevationType="elevated" rollbackBarrierExitCode="0" errorMessage="Could not make a ${compiler:WRAPPER_LINK} symbolic link in ~/${installer:unixUserBinDir}">
+ <serializedBean>
+ <property name="file">
+ <object class="java.io.File">
+ <string>${installer:macWrapperLinkLocation}</string>
+ </object>
+ </property>
+ <property name="linkFile">
+ <object class="java.io.File">
+ <string>${installer:unixUserBinDir}/${compiler:WRAPPER_LINK}</string>
+ </object>
+ </property>
+ </serializedBean>
+ <condition>context.getBooleanVariable("makeSymbolicLinkAction") && Util.isMacOS() && ( context.getVariable("unixUserBinDir") != null ) && ( context.getVariable("macWrapperLinkLocation") != null )</condition>
+ </action>
+ </actions>
+ <formComponents>
+ <formComponent id="21" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent" insetBottom="10">
+ <serializedBean>
+ <property name="labelText" type="string">${form:finishedMessage}</property>
+ </serializedBean>
+ </formComponent>
+ <formComponent name="Add a desktop link" id="574" beanClass="com.install4j.runtime.beans.formcomponents.CheckboxComponent">
+ <serializedBean>
+ <property name="checkboxText" type="string">${i18n:CreateDesktopIcon}</property>
+ <property name="initiallySelected" type="boolean" value="true" />
+ <property name="variableName" type="string">createDesktopLinkAction</property>
+ </serializedBean>
+ <visibilityScript>!Util.isMacOS()</visibilityScript>
+ </formComponent>
+ <formComponent name="Add an executable to the dock" id="577" beanClass="com.install4j.runtime.beans.formcomponents.CheckboxComponent">
+ <serializedBean>
+ <property name="checkboxText" type="string">${i18n:AddToDock}</property>
+ <property name="initiallySelected" type="boolean" value="true" />
+ <property name="variableName" type="string">addToDockAction</property>
+ </serializedBean>
+ <visibilityScript>Util.isMacOS()</visibilityScript>
+ </formComponent>
+ <formComponent name="Add jalview bin to the user's Path environment variable (Windows)" id="2734" beanClass="com.install4j.runtime.beans.formcomponents.CheckboxComponent">
+ <serializedBean>
+ <property name="checkboxText" type="string">Add ${compiler:JALVIEW_APPLICATION_NAME}'s bin folder to the Path environment variable</property>
+ <property name="initiallySelected" type="boolean" value="true" />
+ <property name="variableName" type="string">appendToPathAction</property>
+ </serializedBean>
+ <visibilityScript>Util.isWindows()</visibilityScript>
+ </formComponent>
+ <formComponent name="Make a symbolic link to jalview.sh bash script in the user's local bin (Linux or Unix)" id="2736" beanClass="com.install4j.runtime.beans.formcomponents.CheckboxComponent">
+ <serializedBean>
+ <property name="checkboxText" type="string">Make a ${compiler:WRAPPER_LINK} symbolic link in ${installer:unixUserBinDir}</property>
+ <property name="initiallySelected" type="boolean" value="true" />
+ <property name="variableName" type="string">makeSymbolicLinkAction</property>
+ </serializedBean>
+ <visibilityScript>( Util.isLinux() || Util.isUnixInstaller() || ( Util.isMacOS() && ( context.getVariable("macWrapperLinkLocation") != null ) ) ) && ( context.getVariable("unixUserBinDir") != null )</visibilityScript>
+ </formComponent>
+ </formComponents>
+ </screen>
+ </screens>
+ </application>
+ <application id="uninstaller" beanClass="com.install4j.runtime.beans.applications.UninstallerApplication" styleId="35">
+ <serializedBean>
+ <property name="customMacosExecutableName" type="string">${i18n:UninstallerMenuEntry(${compiler:sys.fullName})}</property>
+ <property name="useCustomMacosExecutableName" type="boolean" value="true" />
+ </serializedBean>
+ <styleOverrides>
+ <styleOverride name="Customize banner image" enabled="true">
+ <group id="147" beanClass="com.install4j.runtime.beans.groups.VerticalFormComponentGroup" useExternalParametrization="true" externalParametrizationName="Customize banner image" externalParametrizationMode="include">
+ <serializedBean>
+ <property name="backgroundColor">
+ <object class="com.install4j.runtime.beans.LightOrDarkColor">
+ <object class="java.awt.Color">
+ <int>255</int>
+ <int>255</int>
+ <int>255</int>
+ <int>255</int>
+ </object>
+ <object class="java.awt.Color">
+ <int>49</int>
+ <int>52</int>
+ <int>53</int>
+ <int>255</int>
+ </object>
+ </object>
+ </property>
+ <property name="borderSides">
+ <object class="com.install4j.runtime.beans.formcomponents.BorderSides">
+ <property name="bottom" type="boolean" value="true" />
+ </object>
+ </property>
+ <property name="imageEdgeBackgroundColor">
+ <object class="java.awt.Color">
+ <int>192</int>
+ <int>192</int>
+ <int>192</int>
+ <int>255</int>
+ </object>
+ </property>
+ <property name="imageEdgeBorder" type="boolean" value="true" />
+ <property name="imageFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>${compiler:JALVIEW_DIR}/${compiler:BACKGROUND}</string>
+ </object>
+ </property>
+ <property name="insets">
+ <object class="java.awt.Insets">
+ <int>5</int>
+ <int>10</int>
+ <int>10</int>
+ <int>10</int>
+ </object>
+ </property>
+ </serializedBean>
+ <externalParametrizationPropertyNames>
+ <propertyName>imageAnchor</propertyName>
+ <propertyName>imageEdgeBackgroundColor</propertyName>
+ <propertyName>imageFile</propertyName>
+ </externalParametrizationPropertyNames>
+ </group>
+ </styleOverride>
+ </styleOverrides>
+ <startup>
+ <screen id="23" beanClass="com.install4j.runtime.beans.screens.StartupScreen" rollbackBarrierExitCode="0">
+ <actions>
+ <action id="33" beanClass="com.install4j.runtime.beans.actions.misc.LoadResponseFileAction" rollbackBarrierExitCode="0" />
+ <action id="34" beanClass="com.install4j.runtime.beans.actions.misc.RequireInstallerPrivilegesAction" actionElevationType="none" rollbackBarrierExitCode="0" />
+ </actions>
+ </screen>
+ </startup>
+ <screens>
+ <screen id="24" beanClass="com.install4j.runtime.beans.screens.UninstallWelcomeScreen" rollbackBarrierExitCode="0">
+ <formComponents>
+ <formComponent id="25" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent" insetBottom="10">
+ <serializedBean>
+ <property name="labelText" type="string">${form:welcomeMessage}</property>
+ </serializedBean>
+ <visibilityScript>!context.isConsole()</visibilityScript>
+ </formComponent>
+ <formComponent id="26" beanClass="com.install4j.runtime.beans.formcomponents.ConsoleHandlerFormComponent">
+ <serializedBean>
+ <property name="consoleScript">
+ <object class="com.install4j.api.beans.ScriptProperty">
+ <property name="value" type="string">String message = context.getMessage("ConfirmUninstall", context.getApplicationName());
+return console.askYesNo(message, true);
+</property>
+ </object>
+ </property>
+ </serializedBean>
+ </formComponent>
+ </formComponents>
+ </screen>
+ <screen id="27" beanClass="com.install4j.runtime.beans.screens.UninstallationScreen" rollbackBarrierExitCode="0">
+ <actions>
+ <action id="659" beanClass="com.install4j.runtime.beans.actions.control.SetProgressAction" actionElevationType="none" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="progressChangeType" type="enum" class="com.install4j.runtime.beans.actions.control.ProgressChangeType" value="SET_INDETERMINATE" />
+ </serializedBean>
+ </action>
+ <action id="29" beanClass="com.install4j.runtime.beans.actions.UninstallFilesAction" actionElevationType="elevated" rollbackBarrierExitCode="0" />
+ <action id="660" beanClass="com.install4j.runtime.beans.actions.control.SetProgressAction" enabled="false" actionElevationType="none" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="percentValue" type="int" value="95" />
+ </serializedBean>
+ </action>
+ <action id="1525" beanClass="com.install4j.runtime.beans.actions.files.DeleteFileAction" actionElevationType="elevated" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="files" type="array" class="java.io.File" length="40">
+ <element index="0">
+ <object class="java.io.File">
+ <string>jre</string>
+ </object>
+ </element>
+ <element index="1">
+ <object class="java.io.File">
+ <string>jre.jar</string>
+ </object>
+ </element>
+ <element index="2">
+ <object class="java.io.File">
+ <string>.install4j</string>
+ </object>
+ </element>
+ <element index="3">
+ <object class="java.io.File">
+ <string>getdown-launcher.jar</string>
+ </object>
+ </element>
+ <element index="4">
+ <object class="java.io.File">
+ <string>getdown-launcher-old.jar</string>
+ </object>
+ </element>
+ <element index="5">
+ <object class="java.io.File">
+ <string>getdown-launcher-new.jar</string>
+ </object>
+ </element>
+ <element index="6">
+ <object class="java.io.File">
+ <string>gettingdown.lock</string>
+ </object>
+ </element>
+ <element index="7">
+ <object class="java.io.File">
+ <string>jre.zip</string>
+ </object>
+ </element>
+ <element index="8">
+ <object class="java.io.File">
+ <string>digest.txt</string>
+ </object>
+ </element>
+ <element index="9">
+ <object class="java.io.File">
+ <string>digest2.txt</string>
+ </object>
+ </element>
+ <element index="10">
+ <object class="java.io.File">
+ <string>getdown-launcher.jarv</string>
+ </object>
+ </element>
+ <element index="11">
+ <object class="java.io.File">
+ <string>getdown-launcher-new.jarv</string>
+ </object>
+ </element>
+ <element index="12">
+ <object class="java.io.File">
+ <string>launcher.log</string>
+ </object>
+ </element>
+ <element index="13">
+ <object class="java.io.File">
+ <string>proxy.txt</string>
+ </object>
+ </element>
+ <element index="14">
+ <object class="java.io.File">
+ <string>build_properties</string>
+ </object>
+ </element>
+ <element index="15">
+ <object class="java.io.File">
+ <string>channel_launch*.jvl</string>
+ </object>
+ </element>
+ <element index="16">
+ <object class="java.io.File">
+ <string>jalview*.jvl</string>
+ </object>
+ </element>
+ <element index="17">
+ <object class="java.io.File">
+ <string>*.jarv</string>
+ </object>
+ </element>
+ <element index="18">
+ <object class="java.io.File">
+ <string>*.log</string>
+ </object>
+ </element>
+ <element index="19">
+ <object class="java.io.File">
+ <string>*.txt</string>
+ </object>
+ </element>
+ <element index="20">
+ <object class="java.io.File">
+ <string>*_new</string>
+ </object>
+ </element>
+ <element index="21">
+ <object class="java.io.File">
+ <string>hs_err_*.*</string>
+ </object>
+ </element>
+ <element index="22">
+ <object class="java.io.File">
+ <string>${compiler:GETDOWN_DIST_DIR}</string>
+ </object>
+ </element>
+ <element index="23">
+ <object class="java.io.File">
+ <string>${compiler:GETDOWN_ALT_DIR}</string>
+ </object>
+ </element>
+ <element index="24">
+ <object class="java.io.File">
+ <string>${compiler:GETDOWN_RESOURCE_DIR}</string>
+ </object>
+ </element>
+ <element index="25">
+ <object class="java.io.File">
+ <string>META-INF</string>
+ </object>
+ </element>
+ <element index="26">
+ <object class="java.io.File">
+ <string>install</string>
+ </object>
+ </element>
+ <element index="27">
+ <object class="java.io.File">
+ <string>resource</string>
+ </object>
+ </element>
+ <element index="28">
+ <object class="java.io.File">
+ <string>dist</string>
+ </object>
+ </element>
+ <element index="29">
+ <object class="java.io.File">
+ <string>release</string>
+ </object>
+ </element>
+ <element index="30">
+ <object class="java.io.File">
+ <string>alt</string>
+ </object>
+ </element>
+ <element index="31">
+ <object class="java.io.File">
+ <string>dev</string>
+ </object>
+ </element>
+ <element index="32">
+ <object class="java.io.File">
+ <string>build</string>
+ </object>
+ </element>
+ <element index="33">
+ <object class="java.io.File">
+ <string>alt_*</string>
+ </object>
+ </element>
+ <element index="34">
+ <object class="java.io.File">
+ <string>dev_*</string>
+ </object>
+ </element>
+ <element index="35">
+ <object class="java.io.File">
+ <string>build_*</string>
+ </object>
+ </element>
+ <element index="36">
+ <object class="java.io.File">
+ <string>${compiler:WRAPPER_SCRIPT_BIN_DIR}</string>
+ </object>
+ </element>
+ <element index="37">
+ <object class="java.io.File">
+ <string>bin</string>
+ </object>
+ </element>
+ <element index="38">
+ <object class="java.io.File">
+ <string>channel.props</string>
+ </object>
+ </element>
+ <element index="39">
+ <object class="java.io.File">
+ <string>channel.propsv</string>
+ </object>
+ </element>
+ </property>
+ <property name="recursive" type="boolean" value="true" />
+ </serializedBean>
+ </action>
+ <action id="1791" beanClass="com.install4j.runtime.beans.actions.control.SetProgressAction" actionElevationType="none" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="percentValue" type="int" value="100" />
+ </serializedBean>
+ </action>
+ </actions>
+ <formComponents>
+ <formComponent id="28" beanClass="com.install4j.runtime.beans.formcomponents.ProgressComponent">
+ <serializedBean>
+ <property name="initialStatusMessage" type="string">${i18n:UninstallerPreparing}</property>
+ </serializedBean>
+ </formComponent>
+ </formComponents>
+ </screen>
+ <screen id="32" beanClass="com.install4j.runtime.beans.screens.UninstallFailureScreen" rollbackBarrierExitCode="0" finishScreen="true" />
+ <screen id="30" beanClass="com.install4j.runtime.beans.screens.UninstallSuccessScreen" styleId="41" rollbackBarrierExitCode="0" finishScreen="true">
+ <formComponents>
+ <formComponent id="31" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent" insetBottom="10">
+ <serializedBean>
+ <property name="labelText" type="string">${form:successMessage}</property>
+ </serializedBean>
+ </formComponent>
+ </formComponents>
+ </screen>
+ </screens>
+ </application>
+ <application name="MacOS Setup" id="2746" beanClass="com.install4j.runtime.beans.applications.CustomApplication" fileset="734">
+ <serializedBean>
+ <property name="executableDirectory">
+ <object class="java.io.File">
+ <string>.</string>
+ </object>
+ </property>
+ <property name="executableName" type="string">${compiler:WRAPPER_LINK}_setup</property>
+ <property name="windowTitle" type="string">${compiler:sys.fullName}</property>
+ </serializedBean>
+ <startup>
+ <screen id="2747" beanClass="com.install4j.runtime.beans.screens.StartupScreen" rollbackBarrierExitCode="0">
+ <actions>
+ <link id="2749" targetId="22" />
+ <link id="2750" targetId="2738" />
+ <link id="2751" targetId="2745" />
+ </actions>
+ </screen>
+ </startup>
+ <screens>
+ <screen id="2772" beanClass="com.install4j.runtime.beans.screens.FormScreen" rollbackBarrierExitCode="0" backButton="hidden" finishScreen="true">
+ <serializedBean>
+ <property name="title" type="string">Running ${i18n:SetupAppTitle}</property>
+ </serializedBean>
+ <actions>
+ <link id="2778" targetId="576" />
+ <link id="2779" targetId="2743" />
+ </actions>
+ <formComponents>
+ <formComponent id="2773" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent" insetBottom="10">
+ <serializedBean>
+ <property name="labelText" type="string">${i18n:FinishedLabel(${compiler:JALVIEW_APPLICATION_NAME})}</property>
+ </serializedBean>
+ </formComponent>
+ <formComponent name="Add an executable to the dock" id="2775" beanClass="com.install4j.runtime.beans.formcomponents.CheckboxComponent">
+ <serializedBean>
+ <property name="checkboxText" type="string">${i18n:AddToDock}</property>
+ <property name="initiallySelected" type="boolean" value="true" />
+ <property name="variableName" type="string">addToDockAction</property>
+ </serializedBean>
+ <visibilityScript>Util.isMacOS()</visibilityScript>
+ </formComponent>
+ <formComponent name="Make a symbolic link to jalview.sh bash script in the user's local bin (Linux or Unix)" id="2777" beanClass="com.install4j.runtime.beans.formcomponents.CheckboxComponent">
+ <serializedBean>
+ <property name="checkboxText" type="string">Make a ${compiler:WRAPPER_LINK} symbolic link in ${installer:unixUserBinDir}</property>
+ <property name="initiallySelected" type="boolean" value="true" />
+ <property name="variableName" type="string">makeSymbolicLinkAction</property>
+ </serializedBean>
+ <visibilityScript>( Util.isLinux() || Util.isUnixInstaller() || ( Util.isMacOS() && ( context.getVariable("macWrapperLinkLocation") != null ) ) ) && ( context.getVariable("unixUserBinDir") != null )</visibilityScript>
+ </formComponent>
+ <formComponent id="2780" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent">
+ <serializedBean>
+ <property name="labelText" type="string">
+${i18n:ClickFinish}
+
+${compiler:JALVIEW_APPLICATION_NAME} will now launch.</property>
+ </serializedBean>
+ </formComponent>
+ </formComponents>
+ </screen>
+ </screens>
+ </application>
+ </applications>
+ <styles defaultStyleId="35">
+ <style name="Standard" id="35" beanClass="com.install4j.runtime.beans.styles.FormStyle">
+ <formComponents>
+ <formComponent name="Header" id="36" beanClass="com.install4j.runtime.beans.styles.NestedStyleComponent" insetTop="0" insetBottom="0">
+ <serializedBean>
+ <property name="styleId" type="string">48</property>
+ </serializedBean>
+ </formComponent>
+ <group name="Main" id="37" beanClass="com.install4j.runtime.beans.groups.VerticalFormComponentGroup">
+ <serializedBean>
+ <property name="imageEdgeAxisType" type="enum" class="com.install4j.runtime.beans.formcomponents.AxisType" value="HORIZONTAL" />
+ <property name="imageEdgeBackgroundColor">
+ <object class="java.awt.Color">
+ <int>255</int>
+ <int>255</int>
+ <int>255</int>
+ <int>255</int>
+ </object>
+ </property>
+ <property name="imageFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>${compiler:JALVIEW_DIR}/${compiler:BACKGROUND}</string>
+ </object>
+ </property>
+ <property name="imageOverlap" type="boolean" value="true" />
+ </serializedBean>
+ <beans>
+ <formComponent id="38" beanClass="com.install4j.runtime.beans.styles.ContentComponent" insetTop="10" insetLeft="20" insetBottom="10" insetRight="20" />
+ <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">
+ <serializedBean>
+ <property name="enabledTitleText" type="boolean" value="false" />
+ </serializedBean>
+ <externalParametrizationPropertyNames>
+ <propertyName>labelText</propertyName>
+ </externalParametrizationPropertyNames>
+ </formComponent>
+ <formComponent name="Footer" id="40" beanClass="com.install4j.runtime.beans.styles.NestedStyleComponent" insetTop="0" insetBottom="0">
+ <serializedBean>
+ <property name="styleId" type="string">52</property>
+ </serializedBean>
+ </formComponent>
+ </beans>
+ </group>
+ </formComponents>
+ </style>
+ <style name="Banner" id="41" beanClass="com.install4j.runtime.beans.styles.FormStyle">
+ <formComponents>
+ <group id="42" beanClass="com.install4j.runtime.beans.groups.VerticalFormComponentGroup" useExternalParametrization="true" externalParametrizationName="Customize banner image" externalParametrizationMode="include">
+ <serializedBean>
+ <property name="backgroundColor">
+ <object class="com.install4j.runtime.beans.LightOrDarkColor">
+ <object class="java.awt.Color">
+ <int>255</int>
+ <int>255</int>
+ <int>255</int>
+ <int>255</int>
+ </object>
+ <object class="java.awt.Color">
+ <int>49</int>
+ <int>52</int>
+ <int>53</int>
+ <int>255</int>
+ </object>
+ </object>
+ </property>
+ <property name="borderSides">
+ <object class="com.install4j.runtime.beans.formcomponents.BorderSides">
+ <property name="bottom" type="boolean" value="true" />
+ </object>
+ </property>
+ <property name="imageEdgeBackgroundColor">
+ <object class="com.install4j.runtime.beans.LightOrDarkColor">
+ <object class="java.awt.Color">
+ <int>25</int>
+ <int>143</int>
+ <int>220</int>
+ <int>255</int>
+ </object>
+ <object class="java.awt.Color">
+ <int>0</int>
+ <int>74</int>
+ <int>151</int>
+ <int>255</int>
+ </object>
+ </object>
+ </property>
+ <property name="imageEdgeBorder" type="boolean" value="true" />
+ <property name="imageFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>${compiler:sys.install4jHome}/resource/styles/wizard.png</string>
+ </object>
+ </property>
+ <property name="insets">
+ <object class="java.awt.Insets">
+ <int>5</int>
+ <int>10</int>
+ <int>10</int>
+ <int>10</int>
+ </object>
+ </property>
+ </serializedBean>
+ <beans>
+ <formComponent id="43" beanClass="com.install4j.runtime.beans.styles.ScreenTitleComponent" insetTop="0">
+ <serializedBean>
+ <property name="labelFontSizePercent" type="int" value="130" />
+ <property name="labelFontStyle" type="enum" class="com.install4j.runtime.beans.formcomponents.FontStyle" value="BOLD" />
+ <property name="labelFontType" type="enum" class="com.install4j.runtime.beans.formcomponents.FontType" value="DERIVED" />
+ </serializedBean>
+ </formComponent>
+ <formComponent id="44" beanClass="com.install4j.runtime.beans.formcomponents.SeparatorComponent" />
+ <formComponent id="45" beanClass="com.install4j.runtime.beans.styles.ContentComponent" insetTop="10" insetBottom="0" />
+ </beans>
+ <externalParametrizationPropertyNames>
+ <propertyName>imageAnchor</propertyName>
+ <propertyName>imageEdgeBackgroundColor</propertyName>
+ <propertyName>imageFile</propertyName>
+ </externalParametrizationPropertyNames>
+ </group>
+ <formComponent id="46" beanClass="com.install4j.runtime.beans.styles.NestedStyleComponent" insetBottom="0">
+ <serializedBean>
+ <property name="styleId" type="string">52</property>
+ </serializedBean>
+ </formComponent>
+ </formComponents>
+ </style>
+ <group name="Style components" id="47" beanClass="com.install4j.runtime.beans.groups.StyleGroup">
+ <beans>
+ <style name="Standard header" id="48" beanClass="com.install4j.runtime.beans.styles.FormStyle">
+ <serializedBean>
+ <property name="fillVertical" type="boolean" value="false" />
+ <property name="standalone" type="boolean" value="false" />
+ <property name="verticalAnchor" type="enum" class="com.install4j.api.beans.Anchor" value="NORTH" />
+ </serializedBean>
+ <formComponents>
+ <group id="49" beanClass="com.install4j.runtime.beans.groups.VerticalFormComponentGroup" useExternalParametrization="true" externalParametrizationName="Customize title bar" externalParametrizationMode="include">
+ <serializedBean>
+ <property name="backgroundColor">
+ <object class="com.install4j.runtime.beans.LightOrDarkColor">
+ <object class="java.awt.Color">
+ <int>255</int>
+ <int>255</int>
+ <int>255</int>
+ <int>255</int>
+ </object>
+ <object class="java.awt.Color">
+ <int>49</int>
+ <int>52</int>
+ <int>53</int>
+ <int>255</int>
+ </object>
+ </object>
+ </property>
+ <property name="borderSides">
+ <object class="com.install4j.runtime.beans.formcomponents.BorderSides">
+ <property name="bottom" type="boolean" value="true" />
+ </object>
+ </property>
+ <property name="imageAnchor" type="enum" class="com.install4j.api.beans.Anchor" value="NORTHEAST" />
+ <property name="imageEdgeBorderWidth" type="int" value="2" />
+ <property name="imageFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>icon:${installer:sys.installerApplicationMode}_header.png</string>
+ </object>
+ </property>
+ <property name="imageInsets">
+ <object class="java.awt.Insets">
+ <int>0</int>
+ <int>5</int>
+ <int>1</int>
+ <int>1</int>
+ </object>
+ </property>
+ <property name="insets">
+ <object class="java.awt.Insets">
+ <int>0</int>
+ <int>20</int>
+ <int>0</int>
+ <int>10</int>
+ </object>
+ </property>
+ </serializedBean>
+ <beans>
+ <formComponent name="Title" id="50" beanClass="com.install4j.runtime.beans.styles.ScreenTitleComponent">
+ <serializedBean>
+ <property name="labelFontStyle" type="enum" class="com.install4j.runtime.beans.formcomponents.FontStyle" value="BOLD" />
+ <property name="labelFontType" type="enum" class="com.install4j.runtime.beans.formcomponents.FontType" value="DERIVED" />
+ </serializedBean>
+ </formComponent>
+ <formComponent name="Subtitle" id="51" beanClass="com.install4j.runtime.beans.styles.ScreenTitleComponent" insetLeft="8">
+ <serializedBean>
+ <property name="titleType" type="enum" class="com.install4j.runtime.beans.styles.TitleType" value="SUB_TITLE" />
+ </serializedBean>
+ </formComponent>
+ </beans>
+ <externalParametrizationPropertyNames>
+ <propertyName>backgroundColor</propertyName>
+ <propertyName>foregroundColor</propertyName>
+ <propertyName>imageAnchor</propertyName>
+ <propertyName>imageFile</propertyName>
+ <propertyName>imageOverlap</propertyName>
+ </externalParametrizationPropertyNames>
+ </group>
+ </formComponents>
+ </style>
+ <style name="Standard footer" id="52" beanClass="com.install4j.runtime.beans.styles.FormStyle">
+ <serializedBean>
+ <property name="fillVertical" type="boolean" value="false" />
+ <property name="standalone" type="boolean" value="false" />
+ <property name="verticalAnchor" type="enum" class="com.install4j.api.beans.Anchor" value="SOUTH" />
+ </serializedBean>
+ <formComponents>
+ <group id="53" beanClass="com.install4j.runtime.beans.groups.HorizontalFormComponentGroup">
+ <serializedBean>
+ <property name="alignFirstLabel" type="boolean" value="false" />
+ <property name="insets">
+ <object class="java.awt.Insets">
+ <int>3</int>
+ <int>5</int>
+ <int>8</int>
+ <int>5</int>
+ </object>
+ </property>
+ </serializedBean>
+ <beans>
+ <formComponent id="54" beanClass="com.install4j.runtime.beans.formcomponents.SpringComponent" />
+ <formComponent name="Back button" id="55" beanClass="com.install4j.runtime.beans.styles.StandardControlButtonComponent">
+ <serializedBean>
+ <property name="buttonText" type="string">< ${i18n:ButtonBack}</property>
+ <property name="controlButtonType" type="enum" class="com.install4j.api.context.ControlButtonType" value="PREVIOUS" />
+ </serializedBean>
+ </formComponent>
+ <formComponent name="Next button" id="56" beanClass="com.install4j.runtime.beans.styles.StandardControlButtonComponent">
+ <serializedBean>
+ <property name="buttonText" type="string">${i18n:ButtonNext} ></property>
+ <property name="controlButtonType" type="enum" class="com.install4j.api.context.ControlButtonType" value="NEXT" />
+ </serializedBean>
+ </formComponent>
+ <formComponent name="Cancel button" id="57" beanClass="com.install4j.runtime.beans.styles.StandardControlButtonComponent" insetLeft="5">
+ <serializedBean>
+ <property name="buttonText" type="string">${i18n:ButtonCancel}</property>
+ <property name="controlButtonType" type="enum" class="com.install4j.api.context.ControlButtonType" value="CANCEL" />
+ </serializedBean>
+ </formComponent>
+ </beans>
+ </group>
+ </formComponents>
+ </style>
+ </beans>
+ </group>
+ </styles>
+ </installerGui>
+ <mediaSets>
+ <windows name="Windows x64 EXE Installer" id="743" customizedId="WINDOWS-X64-EXE" mediaFileName="${compiler:APPLICATION_FOLDER}-${compiler:JALVIEW_VERSION}-${compiler:sys.platform}-java_${compiler:JAVA_INTEGER_VERSION}" installDir="${compiler:APPLICATION_FOLDER}" runPostProcessor="true" postProcessor="${compiler:JSIGN_SH} $EXECUTABLE" customInstallBaseDir="~/AppData/Local">
+ <excludedComponents>
+ <component id="1155" />
+ <component id="1156" />
+ <component id="1276" />
+ <component id="1881" />
+ </excludedComponents>
+ <exclude>
+ <entry defaultFileset="true" />
+ <entry filesetId="880" />
+ <entry filesetId="882" />
+ <entry filesetId="1873" />
+ <entry filesetId="2105" />
+ </exclude>
+ <jreBundle jreBundleSource="preCreated" includedJre="${compiler:WINDOWS_JAVA_VM_TGZ}" manualJreEntry="true" />
+ </windows>
+ <macosArchive name="macOS Disk Image" id="878" customizedId="MACOS-X64-DMG" mediaFileName="${compiler:APPLICATION_FOLDER}-${compiler:JALVIEW_VERSION}-${compiler:sys.platform}-java_${compiler:JAVA_INTEGER_VERSION}" volumeName="${compiler:INSTALLER_NAME}" launcherId="737" executeSetupApp="true" setupAppId="2746">
+ <excludedComponents>
+ <component id="1156" />
+ <component id="1276" />
+ <component id="1881" />
+ </excludedComponents>
+ <exclude>
+ <entry defaultFileset="true" />
+ <entry filesetId="882" />
+ <entry filesetId="1873" />
+ </exclude>
+ <jreBundle jreBundleSource="none" />
+ <topLevelFiles>
+ <symlink name="" "" target="/Applications" />
+ <file name=".background/jalview_dmg_background.png" file="${compiler:JALVIEW_DIR}/${compiler:MACOS_DMG_BG_IMAGE}" />
+ <file name=".DS_Store" file="${compiler:JALVIEW_DIR}/${compiler:MACOS_DMG_DS_STORE}" />
+ <file name="${compiler:JALVIEW_APPLICATION_NAME}.app/Contents/Resources/Jalview-File.icns" file="${compiler:JALVIEW_DIR}/${compiler:INSTALL4J_UTILS_DIR}/Jalview-File.icns" />
+ <file name="${compiler:JALVIEW_APPLICATION_NAME}.app/Contents/Resources/jvl_file.icns" file="${compiler:JALVIEW_DIR}/${compiler:INSTALL4J_UTILS_DIR}/jvl_file.icns" />
+ <symlink name="${compiler:JALVIEW_APPLICATION_NAME}.app/Contents/MacOS/${compiler:WRAPPER_LINK}" target="../Resources/app/${compiler:WRAPPER_SCRIPT_BIN_DIR}/${compiler:BASH_WRAPPER_SCRIPT}" />
+ </topLevelFiles>
+ </macosArchive>
+ <unixInstaller name="Linux x64 Shell Installer" id="1595" customizedId="LINUX-X64-SH" mediaFileName="${compiler:UNIX_APPLICATION_FOLDER}-${compiler:JALVIEW_VERSION}-linux_x64-java_${compiler:JAVA_INTEGER_VERSION}" installDir="${compiler:UNIX_APPLICATION_FOLDER}" customInstallBaseDir="~/opt/">
+ <excludedComponents>
+ <component id="1155" />
+ <component id="1156" />
+ <component id="1276" />
+ <component id="1881" />
+ </excludedComponents>
+ <exclude>
+ <entry defaultFileset="true" />
+ <entry filesetId="880" />
+ <entry filesetId="882" />
+ <entry filesetId="1873" />
+ <entry filesetId="2105" />
+ </exclude>
+ <jreBundle jreBundleSource="preCreated" includedJre="${compiler:LINUX_JAVA_VM_TGZ}" manualJreEntry="true" />
+ </unixInstaller>
+ <unixArchive name="Unix .tar.gz Archive" id="1596" customizedId="UNIX--TGZ" mediaFileName="${compiler:UNIX_APPLICATION_FOLDER}-${compiler:JALVIEW_VERSION}-${compiler:sys.platform}-java_${compiler:JAVA_INTEGER_VERSION}" installDir="${compiler:UNIX_APPLICATION_FOLDER}">
+ <excludedComponents>
+ <component id="1155" />
+ <component id="1156" />
+ <component id="1276" />
+ <component id="1881" />
+ </excludedComponents>
+ <exclude>
+ <entry defaultFileset="true" />
+ <entry filesetId="880" />
+ <entry filesetId="882" />
+ <entry filesetId="1873" />
+ <entry filesetId="2105" />
+ </exclude>
+ <jreBundle jreBundleSource="none" includedJre="${compiler:LINUX_JAVA_VM_TGZ}" manualJreEntry="true" />
+ </unixArchive>
+ <unixInstaller name="Unix Shell Installer" id="2639" customizedId="UNIX--SH" mediaFileName="${compiler:UNIX_APPLICATION_FOLDER}-${compiler:JALVIEW_VERSION}-${compiler:sys.platform}-java_${compiler:JAVA_INTEGER_VERSION}" installDir="${compiler:UNIX_APPLICATION_FOLDER}" customInstallBaseDir="~/opt/">
+ <excludedComponents>
+ <component id="1155" />
+ <component id="1156" />
+ <component id="1276" />
+ <component id="1881" />
+ </excludedComponents>
+ <exclude>
+ <entry defaultFileset="true" />
+ <entry filesetId="880" />
+ <entry filesetId="882" />
+ <entry filesetId="1873" />
+ <entry filesetId="2105" />
+ </exclude>
+ <jreBundle jreBundleSource="none" includedJre="${compiler:LINUX_JAVA_VM_TGZ}" manualJreEntry="true" />
+ </unixInstaller>
+ </mediaSets>
+ <buildIds>
+ <mediaSet refId="743" />
+ <mediaSet refId="878" />
+ <mediaSet refId="1595" />
+ <mediaSet refId="1596" />
+ <mediaSet refId="2639" />
+ </buildIds>
+</install4j>
3. Remove the uninstaller if necessary/and/or others, and then deep sign the dmg
+
+mkdir t
+cd t
+jar -xf ../newdmg/Jalview\ Develop.app/Contents/Resources/app/alt/Jmol-NO_LOG4J-14.31.53.jar
+codesign --remove-signature --force --deep -vvvv -s "Developer ID" --options runtime --entitlements ../utils/osx_signing/entitlements.txt META-INF/jniinchi/1.03_1/MAC-X86_64/JniInchi-1.03_1-MAC-X86_64
+jar -cf ../newdmg/Jalview\ Develop.app/Contents/Resources/app/alt/Jmol-NO_LOG4J-14.31.53.jar ./*
+cd ..
+rm -Rf t
+
xattr -cr ./newdmg/Jalview\ Develop.app/Contents/Resources/app/jre/Contents/MacOS/libjli.dylib
codesign --verify --deep -v ./newdmg/Jalview\ Develop.app/Contents/Resources/app/jre/Contents/MacOS/libjli.dylib
-codesign --force --deep -vvvv -s "Developer ID" --options runtime --entitlements ./utils/osx_signing/entitlements.txt ./newdmg/Jalview\ Develop.app/Contents/Resources/app/jre/Contents/MacOS/libjli.dylib
+codesign --remove-signature --force --deep -vvvv -s "Developer ID" --options runtime --entitlements ./utils/osx_signing/entitlements.txt ./newdmg/Jalview\ Develop.app/Contents/Resources/app/jre/Contents/MacOS/libjli.dylib
-codesign --verify --deep -v ./newdmg/Jalview\ Develop.app/Contents/Resources/app/jre/Contents/MacOS/libjli.dylib
+codesign --verify --deep -v ./newdmg/Jalview\ Develop.app/Contents/Resources/app/jre/Contents/MacOS/libjli.dylib
-codesign --force --deep -vvvv -s "Developer ID" --options runtime --entitlements ./utils/osx_signing/entitlements.txt ./newdmg/Jalview\ Develop.app/Contents/MacOS/JavaApplicationStub
+codesign --remove-signature --force --deep -vvvv -s "Developer ID" --options runtime --entitlements ./utils/osx_signing/entitlements.txt newdmg/Jalview\ Develop.app/Contents/MacOS/JavaApplicationStub
hdiutil create -megabytes 240 -srcfolder ./newdmg -volname 'Jalview Develop Installer (2.11.2)' Jalview_Develop-2_11_2-macos-java_11.dmg