JAL-3594 Allow setting of getdownappbase and getdowndistdir properties for DEVELOP...
authorBen Soares <b.soares@dundee.ac.uk>
Mon, 14 Dec 2020 16:12:59 +0000 (16:12 +0000)
committerBen Soares <b.soares@dundee.ac.uk>
Mon, 14 Dec 2020 16:12:59 +0000 (16:12 +0000)
build.gradle
src/jalview/bin/Cache.java

index c796b3b..ebb8733 100644 (file)
@@ -161,6 +161,9 @@ ext {
   }
   */
 
+  // datestamp
+  buildDate = new Date().format("yyyyMMdd")
+
   // essentials
   bareSourceDir = string(source_dir)
   sourceDir = string("${jalviewDir}/${bareSourceDir}")
@@ -194,6 +197,7 @@ ext {
   getdownLauncher = string("${jalviewDir}/${getdown_lib_dir}/${getdown_launcher}")
   getdownAppDistDir = getdown_app_dir_alt
   getdownImagesDir = string("${jalviewDir}/${getdown_images_dir}")
+  getdownSetAppBaseProperty = false // whether to pass the appbase and appdistdir to the application
   reportRsyncCommand = false
   jvlChannelName = CHANNEL.toLowerCase()
   install4jSuffix = CHANNEL.substring(0, 1).toUpperCase() + CHANNEL.substring(1).toLowerCase(); // BUILD -> Build
@@ -262,9 +266,9 @@ ext {
 
     case "DEVELOP":
     reportRsyncCommand = true
-    
+    getdownSetAppBaseProperty = true
     // DEVELOP-RELEASE is usually associated with a Jalview release series so set the version
-    JALVIEW_VERSION=JALVIEW_VERSION+"-develop"
+    JALVIEW_VERSION=JALVIEW_VERSION+"-d${buildDate}"
     
     install4jSuffix = "Develop"
     install4jExtraScheme = "jalviewd"
@@ -325,6 +329,9 @@ ext {
     if (string(getdown_appbase_override) == "") {
       getdownAppBase = file(getdownWebsiteDir).toURI().toString()
       getdownLauncher = string("${jalviewDir}/${getdown_lib_dir}/${getdown_launcher_local}")
+    } else if (string(getdown_appbase_override).startsWith("file://")) {
+      getdownAppBase = string(getdown_appbase_override)
+      getdownLauncher = string("${jalviewDir}/${getdown_lib_dir}/${getdown_launcher_local}")
     } else {
       getdownAppBase = string(getdown_appbase_override)
     }
@@ -1247,6 +1254,10 @@ task createBuildProperties(type: WriteProperties) {
   property "BUILD_DATE", getDate("HH:mm:ss dd MMMM yyyy")
   property "VERSION", JALVIEW_VERSION
   property "INSTALLATION", INSTALLATION+" git-commit:"+gitHash+" ["+gitBranch+"]"
+  if (getdownSetAppBaseProperty) {
+    property "GETDOWNAPPBASE", getdownAppBase
+    property "GETDOWNAPPDISTDIR", getdownAppDistDir
+  }
   outputs.file(outputFile)
 }
 
@@ -1488,7 +1499,7 @@ task getdownWebsite() {
 
     copy {
       from buildProperties
-      rename(build_properties_file, getdown_build_properties)
+      rename(file(buildProperties).getName(), getdown_build_properties)
       into getdownAppDir
     }
     getdownWebsiteResourceFilenames += "${getdownAppDistDir}/${getdown_build_properties}"
@@ -1600,10 +1611,11 @@ task getdownWebsite() {
     //getdownTextString += "class = " + file(getdownLauncher).getName() + "\n"
     getdownTextString += "resource = ${getdown_launcher_new}\n"
     getdownTextString += "class = ${main_class}\n"
-    /* NOT setting these properties so that getdownappbase and getdowndistdir will default to release version
-     * getdownTextString += "jvmarg = -Dgetdowndistdir=${getdownAppDistDir}\n"
-     * getdownTextString += "jvmarg = -Dgetdownappbase=${getdownAppBase}\n"
-     */
+    // Not setting these properties in general so that getdownappbase and getdowndistdir will default to release version in jalview.bin.Cache
+    if (getdownSetAppBaseProperty) {
+      getdownTextString += "jvmarg = -Dgetdowndistdir=${getdownAppDistDir}\n"
+      getdownTextString += "jvmarg = -Dgetdownappbase=${getdownAppBase}\n"
+    }
 
     def getdown_txt = file("${getdownWebsiteDir}/getdown.txt")
     getdown_txt.write(getdownTextString)
@@ -1612,12 +1624,14 @@ task getdownWebsite() {
     def launchJvl = file("${getdownWebsiteDir}/${getdownLaunchJvl}")
     launchJvl.write("appbase=${getdownAppBase}")
 
+    // files going into the getdown website dir: getdown-launcher.jar
     copy {
       from getdownLauncher
       rename(file(getdownLauncher).getName(), getdown_launcher_new)
       into getdownWebsiteDir
     }
 
+    // files going into the getdown website dir: getdown-launcher(-local).jar
     copy {
       from getdownLauncher
       if (file(getdownLauncher).getName() != getdown_launcher) {
@@ -1626,6 +1640,7 @@ task getdownWebsite() {
       into getdownWebsiteDir
     }
 
+    // files going into the getdown website dir: ./install dir and files
     if (! (CHANNEL.startsWith("ARCHIVE") || CHANNEL.startsWith("DEVELOP"))) {
       copy {
         from getdown_txt
@@ -1637,12 +1652,14 @@ task getdownWebsite() {
         into getdownInstallDir
       }
 
+      // and make a copy in the getdown files dir (these are not downloaded by getdown)
       copy {
         from getdownInstallDir
         into getdownFilesInstallDir
       }
     }
 
+    // files going into the getdown files dir: getdown.txt, getdown-launcher.jar, channel-launch.jvl, build_properties
     copy {
       from getdown_txt
       from launchJvl
@@ -1654,6 +1671,7 @@ task getdownWebsite() {
       into getdownFilesDir
     }
 
+    // and ./resources (not all downloaded by getdown)
     copy {
       from getdownResourceDir
       into "${getdownFilesDir}/${getdown_resource_dir}"
index 13532e7..50db03b 100755 (executable)
@@ -310,6 +310,9 @@ public class Cache
     }
   };
 
+  /* build Properties (not all saved to .jalview_properties) */
+  public static Properties buildProperties = new Properties();
+
   /** Default file is ~/.jalview_properties */
   static String propertiesFile;
 
@@ -633,8 +636,13 @@ public class Cache
       String buildDetails = resolveResourceURLFor("/.build_properties");
       URL localJarFileURL = new URL(buildDetails);
       InputStream in = localJarFileURL.openStream();
-      applicationProperties.load(in);
+      buildProperties.load(in);
       in.close();
+      applicationProperties.put("BUILD_DATE",
+              buildProperties.get("BUILD_DATE"));
+      applicationProperties.put("INSTALLATION",
+              buildProperties.get("INSTALLATION"));
+      applicationProperties.put("VERSION", buildProperties.get("VERSION"));
     } catch (Exception ex)
     {
       System.out.println("Error reading build details: " + ex);
@@ -1651,6 +1659,11 @@ public class Cache
     String distDir = System.getProperty("getdowndistdir");
     if (appbase == null)
     {
+      appbase = buildProperties.getProperty("GETDOWNAPPBASE");
+      distDir = buildProperties.getProperty("GETDOWNAPPDISTDIR");
+    }
+    if (appbase == null)
+    {
       appbase = releaseAppbase;
       distDir = "release";
     }