delete cloverInstrDir
}
+// format is a string like date.format("dd MMMM yyyy")
def getDate(format) {
def date = new Date()
- //return date.format("dd MMMM yyyy")
return date.format(format)
}
inputs.dir("$jalviewDir/$resourceDir")
outputFile "$classes/$buildPropertiesFile"
// taking time specific comment out to allow better incremental builds
- //comment "--Jalview Build Details--\n"+getDate("yyyy-MM-dd HH:mm:ss")
- comment "--Jalview Build Details--\n"+getDate("yyyy-MM-dd")
- property "BUILD_DATE", getDate("dd MMMM yyyy")
+ comment "--Jalview Build Details--\n"+getDate("yyyy-MM-dd HH:mm:ss")
+ //comment "--Jalview Build Details--\n"+getDate("yyyy-MM-dd")
+ property "BUILD_DATE", getDate("HH:mm:ss dd MMMM yyyy")
property "VERSION", JALVIEW_VERSION
property "INSTALLATION", INSTALLATION+" git-commit:"+project.ext.gitHash+" ["+project.ext.gitBranch+"]"
outputs.file(outputFile)
<tr>
<td width="60" align="center" nowrap>
<strong><a name="Jalview.2.11">2.11</a><br />
- <em>tbc/06/2019</em></strong>
+ <em>20/06/2019</em></strong>
</td>
<td align="left" valign="top">
<ul>
<li>
<!-- JAL-1793 -->Annotate nucleotide alignments from VCF data files</li>
<li>
- <!-- JAL-3141 -->Optional automatic backups when saving
- Jalview project or alignment files</li>
- <li>
- <!-- JAL-1767,JAL-2647 -->Principal Components Analysis and
- Viewer state is saved in Jalview Project<br />The 'Change
- parameters' option has also been removed from the PCA viewer</li>
- <li>
- <!-- JAL-3127 -->New 'Colour by Sequence ID' (subgroup) option</li>
- <li>
- <!-- JAL-2620 -->Alternative genetic code tables supported for
+ <!-- JAL-2620 -->Alternative genetic code tables for
'Translate as cDNA'</li>
<li>
- <!-- JAL-2933 -->Finder panel remembers last position in each view</li>
- <li>
- <!-- 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</li>
- <li>
<!-- JAL-3018 -->Update of Ensembl Rest Client to API v10.0</li>
- <li>
- <!-- JAL-2808,JAL-2069 -->Sequence features can be filtered and
- shaded according to any associated attributes (e.g. variant
- attributes from VCF file, or key-value pairs imported from
- column 9 of GFF file)</li>
- <li>
- <!-- JAL-2897 -->Show synonymous codon variants on peptide sequences</li>
- <li>
- <!-- JAL-2792 -->Popup report of a selected sequence feature's details</li>
- <li>
- <!-- JAL-3139,JAL-2816 -->More efficient sequence feature render
- algorithm (Z-sort/transparency and filter aware)</li>
- <li>
- <!-- JAL-2527 -->Alignment Overview now by default shows
- only visible region of alignment (this can be changed in
- user preferences)</li>
- <li>
- <!-- JAL-3169 -->File Chooser stays open after Cancel overwrite</li>
- <li>
- <!-- 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</li>
- <li>
- <!-- JAL-3132 -->Status bar updates over sequence and annotation labels</li>
- <li>
- <!-- JAL-3093 -->Show annotation tooltips and popup menus in wrapped mode</li>
- <li>
- <!-- JAL-3073 -->Can select columns by dragging left/right in annotations</li>
- <li>
- <!-- JAL-3049,JAL-3054 -->Improved tooltips in Feature Settings dialog</li>
- <li>
- <!-- JAL-2814 -->Help button on Uniprot and PDB search panels</li>
- <li>
- <!-- JAL-2621 -->Cursor changes over draggable box in Overview panel</li>
- <li>
- <!-- JAL-3203 -->Overview panel default changed to not show hidden regions</li>
- <li>
- <!-- JAL-3181 -->Consistent ordering of links in sequence id popup menu</li>
- <li>
- <!-- JAL-3021 -->Sequence Details report opens positioned to top of report</li>
- <li>
- <!-- JAL-3218 -->Scale panel popup menu allows Hide selected columns adjacent
- to a hidden column marker</li>
- <li>
- <!-- JAL-2975 -->Can use shift + arrow keys to rotate PCA image incrementally</li>
- <li>
- <!-- JAL-2965 -->PCA depth cueing with graduated colours</li>
- </ul>
+ <li><strong>Enhanced visualisation and analysis of Sequence Features</strong>
+ <ul>
+ <li>
+ <!-- JAL-2808,JAL-2069 -->Sequence features can be filtered and
+ shaded according to any associated attributes (e.g. variant
+ attributes from VCF file, or key-value pairs imported from
+ column 9 of GFF file)
+ </li>
+ <li>
+ <!-- JAL-2897 -->Show synonymous codon variants on peptide
+ sequences
+ </li>
+ <li>
+ <!-- JAL-2792 -->Popup window to show full report for a selected sequence feature's
+ details
+ </li>
+ <li>
+ <!-- JAL-3139,JAL-2816 -->More efficient sequence feature render
+ algorithm (Z-sort/transparency and filter aware)
+ </li>
+ <li>
+ <!-- JAL-3049,JAL-3054 -->Improved tooltips in Feature Settings
+ dialog
+ </li>
+ </ul>
+ </li>
+ <li>
+ <!-- JAL-3141 -->Backup files created when saving Jalview project
+ or alignment files
+ </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
+ </li>
+ <li>'Change parameters' option removed from viewer's
+ drop-down menus</li>
+ <li>
+ <!-- JAL-2975 -->Can use shift + arrow keys to rotate PCA image
+ incrementally
+ </li>
+ <li>
+ <!-- JAL-2965 -->PCA plot is depth cued
+ </li>
+ </ul>
+ </li>
+ <li>
+ <!-- JAL-3127 -->New 'Colour by Sequence ID' option
+ </li>
+ <li><strong>Speed and Efficiency</strong>
+ <ul>
+ <li>
+ <!-- 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
+ </li>
+ </ul>
+ <li><strong>User Interface</strong>
+ <ul>
+ <li>
+ <!-- JAL-2933 -->Finder panel remembers last position in each
+ view
+ </li>
+ <li>
+ <!-- JAL-2527 -->Alignment Overview now WYSIWIS (What you see is
+ what is shown)<br />Only visible region of alignment is shown by
+ default (can be changed in user preferences)
+ </li>
+ <li>
+ <!-- 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
+ </li>
+ <li>
+ <!-- JAL-1244 -->Status bar shows bounds when dragging a
+ selection region, and gap count when inserting or deleting gaps
+ </li>
+ <li>
+ <!-- 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
+ </li>
+ <li>
+ <!-- JAL-3073 -->Can select columns by dragging left/right in
+ annotations
+ </li>
+ <li>
+ <!-- JAL-2814 -->Help button on Uniprot and PDB search panels
+ </li>
+ <li>
+ <!-- JAL-2621 -->Cursor changes over draggable box in Overview
+ panel
+ </li>
+ <li>
+ <!-- JAL-3181 -->Consistent ordering of links in sequence id
+ popup menu
+ </li>
+ <li>
+ <!-- JAL-3021 -->Sequence Details report opens positioned to top
+ of report
+ </li>
+ </ul></li>
+ <li><strong>Java 11 Support</strong>
+ <ul>
+ <li>
+ <!-- JAL- -->Java 11 Native Desktop installer, standalone JAR
+ and getdown release channels
+ </li>
+ <li>
+ <!-- -->OSX GUI integrations for App menu's 'About' entry and
+ trapping CMD-Q
+ </li>
+ </ul></li>
+ </ul>
<em>Deprecations</em>
<ul>
<li>
<!-- JAL-3035 -->DAS sequence retrieval and annotation
capabilities removed from the Jalview Desktop
</li>
+ <li><!-- -->Jalview Desktop no longer distributed via Java Web Start</li>
</ul>
- <em>Release Processes</em>
+ <em>Development and Release Processes</em>
<ul>
+ <li>
+ <!-- JAL-3196,JAL-3007 -->Jalview Native Application and
+ Installers built with Install4j (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
+ Rings' GetDown</a>)
+ </li>
+ <li>
+ <!-- JAL-3196,JAL-3179 -->Build system migrated from Ant to Gradle
+ </li>
+ <li>
+ <!-- JAL-3225 -->Eclipse project configuration managed with
+ gradle-eclipse
+ </li>
<li>
Atlassian Bamboo continuous integration server for
unattended Test Suite execution</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</li>
+ <li>
+ <!-- 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</li>
}
+ /**
+ * update singleton Strings with these build details
+ *
+ * @param version
+ * @param buildDate
+ * @param installation
+ */
public BuildDetails(String version, String buildDate, String installation)
{
BuildDetails.version = version;
BuildDetails.installation = installation;
}
+ @Override
public String getBuildDate()
{
return buildDate;
BuildDetails.buildDate = buildDate;
}
+ @Override
public String getVersion()
{
return version;
BuildDetails.version = version;
}
+ @Override
public String getInstallation()
{
return installation;
applicationProperties.remove("YEAR");
}
- // FIND THE VERSION NUMBER AND BUILD DATE FROM jalview.jar
- // MUST FOLLOW READING OF LOCAL PROPERTIES FILE AS THE
- // VERSION MAY HAVE CHANGED SINCE LAST USING JALVIEW
- try
- {
- String buildDetails = "jar:".concat(Cache.class.getProtectionDomain()
- .getCodeSource().getLocation().toString()
- .concat("!/.build_properties"));
-
- java.net.URL localJarFileURL = new java.net.URL(buildDetails);
-
- InputStream in = localJarFileURL.openStream();
- applicationProperties.load(in);
- in.close();
- } catch (Exception ex)
- {
- System.out.println("Error reading build details: " + ex);
- applicationProperties.remove("VERSION");
- }
-
- String jnlpVersion = System.getProperty("jalview.version");
- String codeVersion = getProperty("VERSION");
- String codeInstallation = getProperty("INSTALLATION");
- if (codeVersion == null)
- {
- // THIS SHOULD ONLY BE THE CASE WHEN TESTING!!
- codeVersion = "Test";
- jnlpVersion = "Test";
- codeInstallation = "";
- }
- else
- {
- codeInstallation = " (" + codeInstallation + ")";
- }
- new BuildDetails(codeVersion, null, codeInstallation);
+ loadBuildProperties(false);
SiftsSettings
.setMapWithSifts(Cache.getDefault("MAP_WITH_SIFTS", false));
"http://www.jalview.org/services/identifiers"));
IdOrgSettings.setDownloadLocation(ID_ORG_FILE);
- System.out
- .println("Jalview Version: " + codeVersion + codeInstallation);
-
StructureImportSettings.setDefaultStructureFileFormat(jalview.bin.Cache
.getDefault("PDB_DOWNLOAD_FORMAT", PDB_DOWNLOAD_FORMAT));
StructureImportSettings
// StructureImportSettings
// .setDefaultPDBFileParser(jalview.bin.Cache.getDefault(
// "DEFAULT_PDB_FILE_PARSER", DEFAULT_PDB_FILE_PARSER));
- // jnlpVersion will be null if we're using InstallAnywhere
+
+ String jnlpVersion = System.getProperty("jalview.version");
+
+ // jnlpVersion will be null if a latest version check for the channel needs to
+ // be done
// Dont do this check if running in headless mode
+
if (jnlpVersion == null && getDefault("VERSION_CHECK", true)
&& (System.getProperty("java.awt.headless") == null || System
.getProperty("java.awt.headless").equals("false")))
}
}
- setProperty("VERSION", codeVersion);
-
// LOAD USERDEFINED COLOURS
jalview.bin.Cache
.initUserColourSchemes(getProperty("USER_DEFINED_COLOURS"));
false);
}
+ public static void loadBuildProperties(boolean reportVersion)
+ {
+ String codeInstallation = getProperty("INSTALLATION");
+ boolean printV = codeInstallation == null;
+
+ // FIND THE VERSION NUMBER AND BUILD DATE FROM jalview.jar
+ try
+ {
+ String buildDetails = "jar:".concat(Cache.class.getProtectionDomain()
+ .getCodeSource().getLocation().toString()
+ .concat("!/.build_properties"));
+
+ java.net.URL localJarFileURL = new java.net.URL(buildDetails);
+
+ InputStream in = localJarFileURL.openStream();
+ applicationProperties.load(in);
+ in.close();
+ } catch (Exception ex)
+ {
+ System.out.println("Error reading build details: " + ex);
+ applicationProperties.remove("VERSION");
+ }
+ String codeVersion = getProperty("VERSION");
+ codeInstallation = getProperty("INSTALLATION");
+
+ if (codeVersion == null)
+ {
+ // THIS SHOULD ONLY BE THE CASE WHEN TESTING!!
+ codeVersion = "Test";
+ codeInstallation = "";
+ }
+ else
+ {
+ codeInstallation = " (" + codeInstallation + ")";
+ }
+ setProperty("VERSION", codeVersion);
+ new BuildDetails(codeVersion, null, codeInstallation);
+ if (printV && reportVersion)
+ {
+ System.out
+ .println("Jalview Version: " + codeVersion + codeInstallation);
+ }
+ }
+
private static void deleteBuildProperties()
{
applicationProperties.remove("LATEST_VERSION");
try
{
oldValue = applicationProperties.setProperty(key, obj);
- if (!propsAreReadOnly)
+ if (propertiesFile != null && !propsAreReadOnly)
{
FileOutputStream out = new FileOutputStream(propertiesFile);
applicationProperties.store(out, "---JalviewX Properties File---");
}
}
}
+
+ /**
+ *
+ * @return Jalview version, build details and JVM platform version for console
+ */
+ public static String getVersionDetailsForConsole()
+ {
+ return "Jalview Version: "
+ + jalview.bin.Cache.getDefault("VERSION", "TEST")
+ + "\n" + "Jalview Installation: "
+ + jalview.bin.Cache.getDefault("INSTALLATION",
+ "unknown")
+ + "\n" + "Build Date: "
+ + jalview.bin.Cache.getDefault("BUILD_DATE", "unknown")
+ + "\n" + "Java version: "
+ + System.getProperty("java.version") + "\n"
+ + System.getProperty("os.arch") + " "
+ + System.getProperty("os.name") + " "
+ + System.getProperty("os.version")
+ + (jalview.bin.Cache.getDefault("VERSION", "TEST")
+ .equals("DEVELOPMENT")
+ ? "\nJava path:"
+ + System.getProperty(
+ "java.home")
+ + File.separator + "bin"
+ + File.separator + "java"
+ : "");
+ }
+
+ /**
+ *
+ * @return build details as reported in splashscreen
+ */
+ public static String getBuildDetailsForSplash()
+ {
+ // consider returning more human friendly info
+ // eg 'built from Source' or update channel
+ return jalview.bin.Cache.getDefault("INSTALLATION", "unknown");
+ }
}
System.out.println(System.getProperty("os.arch") + " "
+ System.getProperty("os.name") + " "
+ System.getProperty("os.version"));
+ // report Jalview version
+ Cache.loadBuildProperties(true);
String appdirString = System.getProperty("getdownappdir");
if (appdirString != null && appdirString.length() > 0)
}
jconsole = new Console(this, showjconsole);
// add essential build information
- jconsole.setHeader(
- "Jalview Version: " + jalview.bin.Cache.getProperty("VERSION")
- + "\n" + "Jalview Installation: "
- + jalview.bin.Cache.getDefault("INSTALLATION",
- "unknown")
- + "\n" + "Build Date: "
- + jalview.bin.Cache.getDefault("BUILD_DATE", "unknown")
- + "\n" + "Java version: "
- + System.getProperty("java.version") + "\n"
- + System.getProperty("os.arch") + " "
- + System.getProperty("os.name") + " "
- + System.getProperty("os.version")
- + (jalview.bin.Cache.getProperty("VERSION").equals("DEVELOPMENT")
- ? "\nJava path:"
- + System.getProperty(
- "java.home")
- + File.separator + "bin"
- + File.separator + "java"
- : "")
- );
+ jconsole.setHeader(jalview.bin.Cache.getVersionDetailsForConsole());
showConsole(showjconsole);
message.append("<h1><strong>Version: "
+ jalview.bin.Cache.getProperty("VERSION")
+ "</strong></h1>");
- message.append("<strong>Last Updated: <em>"
+ message.append("<strong>Built: <em>"
+ jalview.bin.Cache.getDefault("BUILD_DATE", "unknown")
- + "</em></strong>");
+ + "</em> from " + jalview.bin.Cache.getBuildDetailsForSplash()
+ + "</strong>");
}
else
if (jalview.bin.Cache.getDefault("LATEST_VERSION", "Checking")
.equals("Checking"))
{
- message.append("<br>...Checking latest version...</br>");
+ // JBP removed this message for 2.11: May be reinstated in future version
+ // message.append("<br>...Checking latest version...</br>");
}
else if (!jalview.bin.Cache.getDefault("LATEST_VERSION", "Checking")
.equals(jalview.bin.Cache.getProperty("VERSION")))