From: Ben Soares Date: Fri, 18 Mar 2022 16:55:17 +0000 (+0000) Subject: JAL-3978 New tasks to build archive 'old' dir with appropriate getdown resources... X-Git-Tag: Release_2_11_2_6~64^2~28 X-Git-Url: http://source.jalview.org/gitweb/?a=commitdiff_plain;h=32504ac62e27ce8849ab331a10b7cc3d0c2322b2;p=jalview.git JAL-3978 New tasks to build archive 'old' dir with appropriate getdown resources, JVL file and digest --- diff --git a/.gitignore b/.gitignore index cd56818..b1e3609 100644 --- a/.gitignore +++ b/.gitignore @@ -27,6 +27,7 @@ TESTNG /getdown/website /getdown/full_app /getdown/files +/getdown/old /getdown/src/getdown/*/target/ /getdown/src/getdown/core/src/main/java/com/threerings/getdown/data/Build.java /getdown/src/getdown/launcher/dependency-reduced-pom.xml diff --git a/build.gradle b/build.gradle index cee3ed8..8bf9f78 100644 --- a/build.gradle +++ b/build.gradle @@ -190,12 +190,17 @@ ext { testClassesDir = useClover ? cloverTestClassesDir : "${jalviewDir}/${test_output_dir}" getdownWebsiteDir = string("${jalviewDir}/${getdown_website_dir}/${JAVA_VERSION}") + getdownArchiveDir = string("${jalviewDir}/${getdown_archive_dir}") + getdownFullArchiveDir = null + getdownTextLines = [] + getdownLaunchJvl = null buildDist = true buildProperties = null // the following values might be overridden by the CHANNEL switch getdownDir = string("${getdownChannelName}/${JAVA_VERSION}") getdownAppBase = string("${getdown_channel_base}/${getdownDir}") + getdownArchiveAppBase = null getdownLauncher = string("${jalviewDir}/${getdown_lib_dir}/${getdown_launcher}") getdownAppDistDir = getdown_app_dir_alt getdownImagesDir = string("${jalviewDir}/${getdown_images_dir}") @@ -229,9 +234,11 @@ ext { case [ "RELEASE", "JALVIEWJS-RELEASE" ]: getdownAppDistDir = getdown_app_dir_release + getdownSetAppBaseProperty = true reportRsyncCommand = true install4jSuffix = "" install4jInstallerName = "${jalview_name} Installer" + getdownArchiveAppBase = getdown_archive_base break case "ARCHIVE": @@ -279,6 +286,7 @@ ext { case "TEST-RELEASE": reportRsyncCommand = true + getdownSetAppBaseProperty = true // Don't ignore transpile errors for release build if (jalviewjs_ignore_transpile_errors.equals("true")) { jalviewjs_ignore_transpile_errors = "false" @@ -316,6 +324,7 @@ ext { case [ "LOCAL", "JALVIEWJS" ]: JALVIEW_VERSION = "TEST" getdownAppBase = file(getdownWebsiteDir).toURI().toString() + getdownArchiveAppBase = file("${jalviewDir}/${getdown_archive_dir}").toURI().toString() getdownLauncher = string("${jalviewDir}/${getdown_lib_dir}/${getdown_launcher_local}") install4jExtraScheme = "jalviewl" break @@ -325,6 +334,7 @@ ext { break } + JALVIEW_VERSION_UNDERSCORES = JALVIEW_VERSION.replaceAll("\\.", "_") // override getdownAppBase if requested if (findProperty("getdown_appbase_override") != null) { // revert to LOCAL if empty string @@ -1496,7 +1506,6 @@ task getdownWebsite() { } def getdownWebsiteResourceFilenames = [] - def getdownTextString = "" def getdownResourceDir = getdownResourceDir def getdownResourceFilenames = [] @@ -1518,7 +1527,7 @@ task getdownWebsite() { } getdownWebsiteResourceFilenames += file(channelPropsFile).getName() - // set some getdown_txt_ properties then go through all properties looking for getdown_txt_... + // set some getdownTxt_ properties then go through all properties looking for getdownTxt_... def props = project.properties.sort { it.key } if (getdownAltJavaMinVersion != null && getdownAltJavaMinVersion.length() > 0) { props.put("getdown_txt_java_min_version", getdownAltJavaMinVersion) @@ -1542,14 +1551,14 @@ task getdownWebsite() { props.put("getdown_txt_ui.name", install4jApplicationName) // start with appbase - getdownTextString += "appbase = ${getdownAppBase}\n" + getdownTextLines += "appbase = ${getdownAppBase}" props.each{ prop, val -> if (prop.startsWith("getdown_txt_") && val != null) { if (prop.startsWith("getdown_txt_multi_")) { def key = prop.substring(18) val.split(",").each{ v -> - def line = "${key} = ${v}\n" - getdownTextString += line + def line = "${key} = ${v}" + getdownTextLines += line } } else { // file values rationalised @@ -1569,15 +1578,15 @@ task getdownWebsite() { } } if (! prop.startsWith("getdown_txt_resource")) { - def line = prop.substring(12) + " = ${val}\n" - getdownTextString += line + def line = prop.substring(12) + " = ${val}" + getdownTextLines += line } } } } getdownWebsiteResourceFilenames.each{ filename -> - getdownTextString += "resource = ${filename}\n" + getdownTextLines += "resource = ${filename}" } getdownResourceFilenames.each{ filename -> copy { @@ -1594,7 +1603,7 @@ task getdownWebsite() { from s into "${getdownWebsiteDir}/${getdown_wrapper_script_dir}" } - getdownTextString += "resource = ${getdown_wrapper_script_dir}/${script}\n" + getdownTextLines += "resource = ${getdown_wrapper_script_dir}/${script}" } } @@ -1611,8 +1620,8 @@ task getdownWebsite() { // put jalview.jar first for CLASSPATH and .properties files reasons codeFiles.sort{a, b -> ( a.getName() == jalviewJar ? -1 : ( b.getName() == jalviewJar ? 1 : a <=> b ) ) }.each{f -> def name = f.getName() - def line = "code = ${getdownAppDistDir}/${name}\n" - getdownTextString += line + def line = "code = ${getdownAppDistDir}/${name}" + getdownTextLines += line copy { from f.getPath() into getdownAppDir @@ -1625,8 +1634,8 @@ task getdownWebsite() { def j11libFiles = fileTree(dir: "${jalviewDir}/${j11libDir}", include: ["*.jar"]).getFiles() j11libFiles.sort().each{f -> def name = f.getName() - def line = "code = ${getdown_j11lib_dir}/${name}\n" - getdownTextString += line + def line = "code = ${getdown_j11lib_dir}/${name}" + getdownTextLines += line copy { from f.getPath() into getdownJ11libDir @@ -1636,19 +1645,19 @@ task getdownWebsite() { */ // getdown-launcher.jar should not be in main application class path so the main application can move it when updated. Listed as a resource so it gets updated. - //getdownTextString += "class = " + file(getdownLauncher).getName() + "\n" - getdownTextString += "resource = ${getdown_launcher_new}\n" - getdownTextString += "class = ${main_class}\n" + //getdownTextLines += "class = " + file(getdownLauncher).getName() + getdownTextLines += "resource = ${getdown_launcher_new}" + getdownTextLines += "class = ${main_class}" // 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" + getdownTextLines += "jvmarg = -Dgetdowndistdir=${getdownAppDistDir}" + getdownTextLines += "jvmarg = -Dgetdownappbase=${getdownAppBase}" } - def getdown_txt = file("${getdownWebsiteDir}/getdown.txt") - getdown_txt.write(getdownTextString) + def getdownTxt = file("${getdownWebsiteDir}/getdown.txt") + getdownTxt.write(getdownTextLines.join("\n")) - def getdownLaunchJvl = getdown_launch_jvl_name + ( (jvlChannelName != null && jvlChannelName.length() > 0)?"-${jvlChannelName}":"" ) + ".jvl" + getdownLaunchJvl = getdown_launch_jvl_name + ( (jvlChannelName != null && jvlChannelName.length() > 0)?"-${jvlChannelName}":"" ) + ".jvl" def launchJvl = file("${getdownWebsiteDir}/${getdownLaunchJvl}") launchJvl.write("appbase=${getdownAppBase}") @@ -1671,7 +1680,7 @@ task getdownWebsite() { // files going into the getdown website dir: ./install dir and files if (! (CHANNEL.startsWith("ARCHIVE") || CHANNEL.startsWith("DEVELOP"))) { copy { - from getdown_txt + from getdownTxt from getdownLauncher from "${getdownAppDir}/${getdown_build_properties}" if (file(getdownLauncher).getName() != getdown_launcher) { @@ -1689,7 +1698,7 @@ task getdownWebsite() { // files going into the getdown files dir: getdown.txt, getdown-launcher.jar, channel-launch.jvl, build_properties copy { - from getdown_txt + from getdownTxt from launchJvl from getdownLauncher from "${getdownWebsiteDir}/${getdown_build_properties}" @@ -1700,7 +1709,7 @@ task getdownWebsite() { into getdownFilesDir } - // and ./resources (not all downloaded by getdown) + // and ./resource (not all downloaded by getdown) copy { from getdownResourceDir into "${getdownFilesDir}/${getdown_resource_dir}" @@ -1770,16 +1779,108 @@ task getdown() { } -task getdownArchive() { +task getdownArchiveBuild() { group = "distribution" - description = "Create the archive dir to go on the website" + description = "Put files in the archive dir to go on the website" dependsOn getdownWebsite + def v = "v${JALVIEW_VERSION_UNDERSCORES}" + def vDir = "${getdownArchiveDir}/${v}" + getdownFullArchiveDir = "${vDir}/getdown" + def vLaunchVersionJvl = "${vDir}/jalview-${v}.jvl" + def vAltDir = "alt_${v}" + def archiveImagesDir = "${jalviewDir}/${channel_properties_dir}/old/images" + + doFirst { + if (getdownArchiveAppBase == null) { + throw new StopExecutionException("Cannot create getdownArchive for CHANNEL=${CHANNEL}") + } + + // cleanup old "old" dir + delete getdownArchiveDir + + def getdownArchiveTxt = file("${getdownFullArchiveDir}/getdown.txt") + getdownArchiveTxt.getParentFile().mkdirs() + def getdownArchiveTextLines = [] + def getdownFullArchiveAppBase = "${getdownArchiveAppBase}${getdownArchiveAppBase.endsWith("/")?"":"/"}${v}/getdown/" + + // the libdir + copy { + from "${getdownWebsiteDir}/${getdownAppDistDir}" + into "${getdownFullArchiveDir}/${vAltDir}" + } + + getdownTextLines.each { line -> + line = line.replaceAll("^(?appbase\\s*=\\s*).*", '${s}'+getdownFullArchiveAppBase) + line = line.replaceAll("^(?(resource|code)\\s*=\\s*)${getdownAppDistDir}/", '${s}'+vAltDir+"/") + line = line.replaceAll("^(?ui.background_image\\s*=\\s*).*\\.png", '${s}'+"${getdown_resource_dir}/jalview_archive_getdown_background.png") + line = line.replaceAll("^(?ui.instant_background_image\\s*=\\s*).*\\.png", '${s}'+"${getdown_resource_dir}/jalview_archive_getdown_background_initialising.png") + line = line.replaceAll("^(?ui.error_background\\s*=\\s*).*\\.png", '${s}'+"${getdown_resource_dir}/jalview_archive_getdown_background_error.png") + line = line.replaceAll("^(?ui.progress_image\\s*=\\s*).*\\.png", '${s}'+"${getdown_resource_dir}/jalview_archive_getdown_progress_bar.png") + // remove the existing resource = resource/ or bin/ lines + if (! line.matches("resource\\s*=\\s*(resource|bin)/.*")) { + getdownArchiveTextLines += line + } + } + + // the resource dir -- add these files as resource lines in getdown.txt + copy { + from "${archiveImagesDir}" + into "${getdownFullArchiveDir}/${getdown_resource_dir}" + eachFile { file -> + getdownArchiveTextLines += "resource = ${getdown_resource_dir}/${file.getName()}" + } + } + + getdownArchiveTxt.write(getdownArchiveTextLines.join("\n")) + + def vLaunchJvl = file(vLaunchVersionJvl) + vLaunchJvl.getParentFile().mkdirs() + vLaunchJvl.write("appbase=${getdownFullArchiveAppBase}\n") + def vLaunchJvlPath = vLaunchJvl.toPath().toAbsolutePath() + def jvlLinkPath = file("${vDir}/jalview.jvl").toPath().toAbsolutePath() + // for some reason filepath.relativize(fileInSameDirPath) gives a path to "../" which is wrong + //java.nio.file.Files.createSymbolicLink(jvlLinkPath, jvlLinkPath.relativize(vLaunchJvlPath)); + java.nio.file.Files.createSymbolicLink(jvlLinkPath, java.nio.file.Paths.get(".",vLaunchJvl.getName())); + + // files going into the getdown files dir: getdown.txt, getdown-launcher.jar, channel-launch.jvl, build_properties + copy { + from getdownLauncher + from "${getdownWebsiteDir}/${getdownLaunchJvl}" + from "${getdownWebsiteDir}/${getdown_launcher_new}" + from "${getdownWebsiteDir}/${channel_props}" + if (file(getdownLauncher).getName() != getdown_launcher) { + rename(file(getdownLauncher).getName(), getdown_launcher) + } + into getdownFullArchiveDir + } + + } +} + +task getdownArchiveDigest(type: JavaExec) { + group = "distribution" + description = "Digest the getdown archive folder" + + dependsOn getdownArchiveBuild + doFirst { + classpath = files(getdownLauncher) + args getdownFullArchiveDir } + main = "com.threerings.getdown.tools.Digester" + inputs.dir(getdownFullArchiveDir) + outputs.file("${getdownFullArchiveDir}/digest2.txt") } +task getdownArchive() { + group = "distribution" + description = "Build the website archive dir with getdown digest" + + dependsOn getdownArchiveBuild + dependsOn getdownArchiveDigest +} tasks.withType(JavaCompile) { options.encoding = 'UTF-8' @@ -1790,6 +1891,7 @@ clean { doFirst { delete getdownWebsiteDir delete getdownFilesDir + delete getdownArchiveDir } } @@ -2023,8 +2125,7 @@ task sourceDist(type: Tar) { dependsOn createBuildProperties dependsOn convertMdFiles - def VERSION_UNDERSCORES = JALVIEW_VERSION.replaceAll("\\.", "_") - def outputFileName = "${project.name}_${VERSION_UNDERSCORES}.tar.gz" + def outputFileName = "${project.name}_${JALVIEW_VERSION_UNDERSCORES}.tar.gz" archiveFileName = outputFileName compression Compression.GZIP diff --git a/gradle.properties b/gradle.properties index ae8e8ac..fb925b5 100644 --- a/gradle.properties +++ b/gradle.properties @@ -60,6 +60,7 @@ jalview_name = Jalview getdown_local = false getdown_website_dir = getdown/website +getdown_archive_dir = getdown/old getdown_resource_dir = resource getdown_files_dir = getdown/files getdown_lib_dir = getdown/lib @@ -148,6 +149,7 @@ OSX_ALTOOLPASS = CHANNEL=LOCAL getdown_channel_base = https://www.jalview.org/getdown +getdown_archive_base = https://www.jalview.org/old getdown_app_dir_release = release getdown_app_dir_alt = alt getdown_app_dir_java = jre diff --git a/src/jalview/bin/Cache.java b/src/jalview/bin/Cache.java index ac8a183..22a6b69 100755 --- a/src/jalview/bin/Cache.java +++ b/src/jalview/bin/Cache.java @@ -42,7 +42,6 @@ import java.util.Locale; import java.util.Properties; import java.util.StringTokenizer; import java.util.TreeSet; -import java.util.regex.Pattern; import javax.swing.LookAndFeel; import javax.swing.UIManager; @@ -1154,8 +1153,11 @@ public class Cache { return; } - String line = prefix + (value != null ? value : defaultValue) + suffix; - sb.append(line); + if (prefix != null) + sb.append(prefix); + sb.append(value == null ? defaultValue : value); + if (suffix != null) + sb.append(suffix); } /** @@ -1199,11 +1201,11 @@ public class Cache sb.append(" ("); sb.append(lafClass); sb.append(")\n"); - // Not displayed in release version ( determined by possible version number - // regex 9[9.]*9[.-_a9]* ) - if (Pattern.matches("^\\d[\\d\\.]*\\d[\\.\\-\\w]*$", - Cache.getDefault("VERSION", "TEST"))) + if (Console.isDebugEnabled() + || !"release".equals(ChannelProperties.getProperty("channel"))) { + appendIfNotNull(sb, "Channel: ", + ChannelProperties.getProperty("channel"), "\n", null); appendIfNotNull(sb, "Getdown appdir: ", System.getProperty("getdownappdir"), "\n", null); appendIfNotNull(sb, "Getdown appbase: ", diff --git a/src/jalview/util/ChannelProperties.java b/src/jalview/util/ChannelProperties.java index 50d6fc6..4832588 100644 --- a/src/jalview/util/ChannelProperties.java +++ b/src/jalview/util/ChannelProperties.java @@ -77,6 +77,7 @@ public class ChannelProperties defaultProps.put("default_appbase", "https://www.jalview.org/getdown/release/1.8"); defaultProps.put("preferences.filename", ".jalview_properties"); + defaultProps.put("channel", "none"); // load channel_properties Properties tryChannelProps = new Properties(); diff --git a/utils/channels/default/resources/channel.props b/utils/channels/default/resources/channel.props index 15b162f..2b2672a 100644 --- a/utils/channels/default/resources/channel.props +++ b/utils/channels/default/resources/channel.props @@ -17,3 +17,4 @@ uod_banner.30=/images/UoD_banner-30.png uod_banner.32=/images/UoD_banner-32.png default_appbase=https://www.jalview.org/getdown/release/1.8 preferences.filename=.jalview_nonrelease_properties +channel=default diff --git a/utils/channels/develop/resources/channel.props b/utils/channels/develop/resources/channel.props index 8af68fa..a3d2350 100644 --- a/utils/channels/develop/resources/channel.props +++ b/utils/channels/develop/resources/channel.props @@ -17,3 +17,4 @@ uod_banner.30=/images/UoD_banner-30.png uod_banner.32=/images/UoD_banner-32.png default_appbase=https://www.jalview.org/getdown/develop/11 preferences.filename=.jalview_develop_properties +channel=develop diff --git a/utils/channels/jalviewjs/resources/channel.props b/utils/channels/jalviewjs/resources/channel.props index 8195dc8..af989f5 100644 --- a/utils/channels/jalviewjs/resources/channel.props +++ b/utils/channels/jalviewjs/resources/channel.props @@ -17,3 +17,4 @@ uod_banner.30=/images/UoD_banner-30.png uod_banner.32=/images/UoD_banner-32.png default_appbase=https://www.jalview.org/getdown/release/1.8 preferences.filename=.jalview_properties +channel=jalviewjs diff --git a/utils/channels/archive/jalview_archive_getdown_background.png b/utils/channels/old/images/jalview_archive_getdown_background.png similarity index 100% rename from utils/channels/archive/jalview_archive_getdown_background.png rename to utils/channels/old/images/jalview_archive_getdown_background.png diff --git a/utils/channels/archive/jalview_archive_getdown_background.xcf b/utils/channels/old/images/jalview_archive_getdown_background.xcf similarity index 100% rename from utils/channels/archive/jalview_archive_getdown_background.xcf rename to utils/channels/old/images/jalview_archive_getdown_background.xcf diff --git a/utils/channels/archive/jalview_archive_getdown_background_error.png b/utils/channels/old/images/jalview_archive_getdown_background_error.png similarity index 100% rename from utils/channels/archive/jalview_archive_getdown_background_error.png rename to utils/channels/old/images/jalview_archive_getdown_background_error.png diff --git a/utils/channels/archive/jalview_archive_getdown_background_initialising.png b/utils/channels/old/images/jalview_archive_getdown_background_initialising.png similarity index 100% rename from utils/channels/archive/jalview_archive_getdown_background_initialising.png rename to utils/channels/old/images/jalview_archive_getdown_background_initialising.png diff --git a/utils/channels/archive/jalview_archive_getdown_progress_bar.png b/utils/channels/old/images/jalview_archive_getdown_progress_bar.png similarity index 100% rename from utils/channels/archive/jalview_archive_getdown_progress_bar.png rename to utils/channels/old/images/jalview_archive_getdown_progress_bar.png diff --git a/utils/channels/old/images/jalview_logo.png b/utils/channels/old/images/jalview_logo.png new file mode 100644 index 0000000..74bafbe Binary files /dev/null and b/utils/channels/old/images/jalview_logo.png differ diff --git a/utils/channels/release/resources/channel.props b/utils/channels/release/resources/channel.props index abdfd3f..4866099 100644 --- a/utils/channels/release/resources/channel.props +++ b/utils/channels/release/resources/channel.props @@ -17,3 +17,4 @@ uod_banner.30=/images/UoD_banner-30.png uod_banner.32=/images/UoD_banner-32.png default_appbase=https://www.jalview.org/getdown/release/1.8 preferences.filename=.jalview_properties +channel=release diff --git a/utils/channels/test-release/resources/channel.props b/utils/channels/test-release/resources/channel.props index e337bf8..bd538dc 100644 --- a/utils/channels/test-release/resources/channel.props +++ b/utils/channels/test-release/resources/channel.props @@ -17,3 +17,4 @@ uod_banner.30=/images/UoD_banner-30.png uod_banner.32=/images/UoD_banner-32.png default_appbase=https://www.jalview.org/getdown/test-release/1.8 preferences.filename=.jalview_test_properties +channel=test-release