From: Jim Procter Date: Wed, 26 Jun 2019 17:26:31 +0000 (+0100) Subject: Merge branch 'develop' into releases/Release_2_11_Branch X-Git-Tag: Release_2_11_0~3 X-Git-Url: http://source.jalview.org/gitweb/?p=jalview.git;a=commitdiff_plain;h=d37b5f923a24c0708066744ffebeeae4678bf9c8;hp=955252e4a9e1f2707570979508e85cad34c1a9b8 Merge branch 'develop' into releases/Release_2_11_Branch --- diff --git a/build.gradle b/build.gradle index 84d5f73..16c31b3 100644 --- a/build.gradle +++ b/build.gradle @@ -51,15 +51,108 @@ def compile_source_compatibility def compile_target_compatibility ext { - // where the getdown channel will be built. - // TODO: consider allowing this expression to be overridden by -P arg getdownWebsiteDir = jalviewDir + '/' + getdown_website_dir + '/' + JAVA_VERSION + getdownDir = "" + reportRsyncCmd = false + buildDist = true + buildProperties = buildPropertiesFile + switch (CHANNEL) { + + case "BUILD": + // TODO: get bamboo build artifact URL for getdown artifacts + getdown_app_dir = getdown_app_dir_alt + buildProperties = jalviewDir + "/" + classesDir +"/" + buildPropertiesFile + break + + case "RELEASE": + getdown_channel_name = CHANNEL.toLowerCase() + getdownDir = getdown_channel_name + "/" + JAVA_VERSION + getdown_app_base = getdown_channel_base + "/" + getdownDir + getdown_app_dir = getdown_app_dir_release + buildProperties = jalviewDir + "/" + classesDir +"/" + buildPropertiesFile + reportRsyncCommand = true + break + + case "ARCHIVE": + getdown_channel_name = CHANNEL.toLowerCase()+"/"+JALVIEW_VERSION + getdownDir = getdown_channel_name + "/" + JAVA_VERSION + getdown_app_base = getdown_channel_base + "/" + getdownDir + getdown_app_dir = getdown_app_dir_alt + if (!file(ARCHIVEDIR+"/"+packageDir).exists()) { + print "Must provide an ARCHIVEDIR value to produce an archive distribution" + exit + } else { + packageDir = ARCHIVEDIR + "/" + packageDir + buildProperties = ARCHIVEDIR +"/" + classesDir + "/" + buildPropertiesFile + buildDist = false + } + reportRsyncCommand = true + break + + case "ARCHIVELOCAL": + getdown_channel_name = "archive" + "/" + JALVIEW_VERSION + getdownDir = getdown_channel_name + "/" + JAVA_VERSION + getdown_app_base = file(getdownWebsiteDir).toURI().toString() + getdown_app_dir = getdown_app_dir_alt + if (!file(ARCHIVEDIR+"/"+packageDir).exists()) { + print "Must provide an ARCHIVEDIR value to produce an archive distribution" + exit + } else { + packageDir = ARCHIVEDIR + "/" + packageDir + buildProperties = ARCHIVEDIR +"/" + classesDir + "/" + buildPropertiesFile + buildDist = false + } + reportRsyncCommand = true + break + + case "DEVELOP": + getdown_channel_name = CHANNEL.toLowerCase() + getdownDir = getdown_channel_name + "/" + JAVA_VERSION + getdown_app_base = getdown_channel_base + "/" + getdownDir + getdown_app_dir = getdown_app_dir_alt + buildProperties = jalviewDir + "/" + classesDir +"/" + buildPropertiesFile + reportRsyncCommand = true + break + + case "TEST-RELEASE": + getdown_channel_name = CHANNEL.toLowerCase() + getdownDir = getdown_channel_name + "/" + JAVA_VERSION + getdown_app_base = getdown_channel_base + "/" + getdownDir + getdown_app_dir = getdown_app_dir_alt + buildProperties = jalviewDir + "/" + classesDir +"/" + buildPropertiesFile + reportRsyncCommand = true + break + + case ~/^SCRATCH(|-\w*)$/: + getdown_channel_name = CHANNEL + getdownDir = getdown_channel_name + "/" + JAVA_VERSION + getdown_app_base = getdown_channel_base + "/" + getdownDir + getdown_app_dir = getdown_app_dir_alt + buildProperties = jalviewDir + "/" + classesDir +"/" + buildPropertiesFile + reportRsyncCommand = true + break + + case "LOCAL": + getdown_app_base = file(getdownWebsiteDir).toURI().toString() + getdown_app_dir = getdown_app_dir_alt + buildProperties = jalviewDir + "/" + classesDir +"/" + buildPropertiesFile + break + + default: // something wrong specified + print("CHANNEL must be one of BUILD, RELEASE, ARCHIVE, DEVELOP, TEST-RELEASE, SCRATCH-..., LOCAL [default]") + exit + break + + } + + println("Using a "+CHANNEL+" profile. appbase="+getdown_app_base) getdownAppDir = getdownWebsiteDir + '/' + getdown_app_dir //getdownJ11libDir = getdownWebsiteDir + '/' + getdown_j11lib_dir getdownResourceDir = getdownWebsiteDir + '/' + getdown_resource_dir + getdownInstallDir = getdownWebsiteDir + '/' + getdown_install_dir getdownLauncher = jalviewDir + '/' + getdown_launcher getdownFilesDir = jalviewDir + '/' + getdown_files_dir + '/' + JAVA_VERSION + '/' - getdown_app_base = getdown_channel_base+"/"+getdown_channel_name+"/"+JAVA_VERSION+"/" + getdownFilesInstallDir = getdownFilesDir+"/"+getdown_install_dir modules_compileClasspath = fileTree(dir: "$jalviewDir/$j11modDir", include: ["*.jar"]) modules_runtimeClasspath = modules_compileClasspath gitHash = "" @@ -94,8 +187,8 @@ if (JAVA_VERSION.equals("1.8")) { getdown_alt_multi_java_location = getdown_alt_java11_txt_multi_java_location eclipse_java_runtime_name = "JavaSE-11" additional_compiler_args += [ - '--module-path', ext.modules_compileClasspath.asPath, - '--add-modules', j11modules + '--module-path', ext.modules_compileClasspath.asPath, + '--add-modules', j11modules ] } else if (JAVA_VERSION.equals("12") || JAVA_VERSION.equals("13")) { JAVA_INTEGER_VERSION = JAVA_VERSION @@ -107,8 +200,8 @@ if (JAVA_VERSION.equals("1.8")) { getdown_alt_multi_java_location = getdown_alt_java11_txt_multi_java_location eclipse_java_runtime_name = "JavaSE-11" additional_compiler_args += [ - '--module-path', ext.modules_compileClasspath.asPath, - '--add-modules', j11modules + '--module-path', ext.modules_compileClasspath.asPath, + '--add-modules', j11modules ] } else { throw new GradleException("JAVA_VERSION=$JAVA_VERSION not currently supported by Jalview") @@ -168,7 +261,7 @@ sourceSets { } else { compileClasspath += files(sourceSets.main.java.outputDir) } - + compileClasspath += fileTree(dir: "$jalviewDir/$utilsDir", include: ["**/*.jar"]) compileClasspath += fileTree(dir: "$jalviewDir/$libDir", include: ["*.jar"]) @@ -194,8 +287,8 @@ eclipse { name = "Jalview with gradle build" natures 'org.eclipse.jdt.core.javanature', - 'org.eclipse.jdt.groovy.core.groovyNature', - 'org.eclipse.buildship.core.gradleprojectnature' + 'org.eclipse.jdt.groovy.core.groovyNature', + 'org.eclipse.buildship.core.gradleprojectnature' buildCommand 'org.eclipse.jdt.core.javabuilder' buildCommand 'org.eclipse.buildship.core.gradleprojectbuilder' @@ -205,87 +298,87 @@ eclipse { //defaultOutputDir = sourceSets.main.java.outputDir def removeThese = [] configurations.each{ if (it.isCanBeResolved()) { - removeThese += it - } + removeThese += it } + } - minusConfigurations += removeThese - plusConfigurations = [ ] - file { - - whenMerged { cp -> - def removeTheseToo = [] - HashMap addedSrcPath = new HashMap<>(); - cp.entries.each { entry -> - if (entry.kind == 'src') { - if (addedSrcPath.getAt(entry.path) || !(entry.path == "src" || entry.path == "test")) { - removeTheseToo += entry - } else { - addedSrcPath.putAt(entry.path, true) - } - } - } - cp.entries.removeAll(removeTheseToo) - - print ("CP="+cp.inspect()) - - cp.entries += new Output("bin/main") - cp.entries += new Library(fileReference(helpParentDir)) - cp.entries += new Library(fileReference(resourceDir)) - - HashMap addedLibPath = new HashMap<>(); - - // changing from sourcesets.main.classpath to specific Java version lib - //sourceSets.main.compileClasspath.each{ - fileTree("$jalviewDir/$libDistDir").include("**/*.jar").include("*.jar").each { - //don't want to add outputDir as eclipse is using its own output dir in bin/main - if (it.isDirectory() || ! it.exists()) { - // don't add dirs to classpath - return - } - def itPath = it.toString() - if (itPath.startsWith(jalviewDirAbsolutePath+"/")) { - itPath = itPath.substring(jalviewDirAbsolutePath.length()+1) - } - if (addedLibPath.get(itPath)) { - //println("Not adding duplicate entry "+itPath) + minusConfigurations += removeThese + plusConfigurations = [ ] + file { + + whenMerged { cp -> + def removeTheseToo = [] + HashMap addedSrcPath = new HashMap<>(); + cp.entries.each { entry -> + if (entry.kind == 'src') { + if (addedSrcPath.getAt(entry.path) || !(entry.path == "src" || entry.path == "test")) { + removeTheseToo += entry } else { - //println("Adding entry "+itPath) - cp.entries += new Library(fileReference(itPath)) - addedLibPath.put(itPath, true) + addedSrcPath.putAt(entry.path, true) } } + } + cp.entries.removeAll(removeTheseToo) - // changing from sourcesets.main.classpath to specific Java version lib - //sourceSets.test.compileClasspath.each{ - fileTree(dir: "$jalviewDir/$utilsDir", include: ["**/*.jar"]).each { - //if ((it.isDirectory() || ! it.exists()) && ! (it.equals(sourceSets.main.java.outputDir))) { - //no longer want to add outputDir as eclipse is using its own output dir in bin/main - if (it.isDirectory() || ! it.exists()) { - // don't add dirs to classpath - return false // groovy "break" in .each loop - } - def itPath = it.toString() - if (itPath.startsWith(jalviewDirAbsolutePath+"/")) { - itPath = itPath.substring(jalviewDirAbsolutePath.length()+1) - } - if (addedLibPath.get(itPath)) { - // don't duplicate - } else { - def lib = new Library(fileReference(itPath)) - // this doesn't work... yet. Adding test=true attribute using withXml below - //def attrs = new Node(null, 'attributes', ["test":"true"]) - //lib.appendNode(attrs) // - cp.entries += lib - addedLibPath.put(itPath, true) - } + print ("CP="+cp.inspect()) + + cp.entries += new Output("bin/main") + cp.entries += new Library(fileReference(helpParentDir)) + cp.entries += new Library(fileReference(resourceDir)) + + HashMap addedLibPath = new HashMap<>(); + + // changing from sourcesets.main.classpath to specific Java version lib + //sourceSets.main.compileClasspath.each{ + fileTree("$jalviewDir/$libDistDir").include("**/*.jar").include("*.jar").each { + //don't want to add outputDir as eclipse is using its own output dir in bin/main + if (it.isDirectory() || ! it.exists()) { + // don't add dirs to classpath + return + } + def itPath = it.toString() + if (itPath.startsWith(jalviewDirAbsolutePath+"/")) { + itPath = itPath.substring(jalviewDirAbsolutePath.length()+1) } - } + if (addedLibPath.get(itPath)) { + //println("Not adding duplicate entry "+itPath) + } else { + //println("Adding entry "+itPath) + cp.entries += new Library(fileReference(itPath)) + addedLibPath.put(itPath, true) + } + } + + // changing from sourcesets.main.classpath to specific Java version lib + //sourceSets.test.compileClasspath.each{ + fileTree(dir: "$jalviewDir/$utilsDir", include: ["**/*.jar"]).each { + //if ((it.isDirectory() || ! it.exists()) && ! (it.equals(sourceSets.main.java.outputDir))) { + //no longer want to add outputDir as eclipse is using its own output dir in bin/main + if (it.isDirectory() || ! it.exists()) { + // don't add dirs to classpath + return false // groovy "break" in .each loop + } + def itPath = it.toString() + if (itPath.startsWith(jalviewDirAbsolutePath+"/")) { + itPath = itPath.substring(jalviewDirAbsolutePath.length()+1) + } + if (addedLibPath.get(itPath)) { + // don't duplicate + } else { + def lib = new Library(fileReference(itPath)) + // this doesn't work... yet. Adding test=true attribute using withXml below + //def attrs = new Node(null, 'attributes', ["test":"true"]) + //lib.appendNode(attrs) // + cp.entries += lib + addedLibPath.put(itPath, true) + } + } + } // withXml changes ignored by buildship, these add the "test=true" attribute withXml { def node = it.asNode() - + def srcTestAttributes node.children().each{ cpe -> def attributes = cpe.attributes() @@ -308,7 +401,7 @@ eclipse { def attributes = cpe.attributes() if (attributes.get("kind") == "lib" && attributes.get("path").startsWith("utils/")) { cpe.appendNode('attributes') - .appendNode('attribute', [name:"test", value:"true"]) + .appendNode('attribute', [name:"test", value:"true"]) } } } // withXML @@ -337,10 +430,10 @@ eclipse { } } } - + //synchronizationTasks eclipseClasspath //autoBuildTasks eclipseClasspath -} +} task cloverInstr() { // only instrument source, we build test classes as normal @@ -350,7 +443,7 @@ task cloverInstr() { doFirst { delete cloverInstrDir def argsList = ["--initstring", "${buildDir}/clover/clover.db", - "-d", "${buildDir}/${cloverSourcesInstrDir}"] + "-d", "${buildDir}/${cloverSourcesInstrDir}"] argsList.addAll(inputs.files.files.collect({ file -> file.absolutePath })) @@ -359,25 +452,25 @@ task cloverInstr() { com.atlassian.clover.CloverInstr.mainImpl(args) } } - + task cloverReport { group = "Verification" - description = "Createst the Clover report" - inputs.dir "${buildDir}/clover" - outputs.dir "${reportsDir}/clover" - onlyIf { - file("${buildDir}/clover/clover.db").exists() - } + description = "Createst the Clover report" + inputs.dir "${buildDir}/clover" + outputs.dir "${reportsDir}/clover" + onlyIf { + file("${buildDir}/clover/clover.db").exists() + } doFirst { def argsList = ["--initstring", "${buildDir}/clover/clover.db", - "-o", "${reportsDir}/clover"] + "-o", "${reportsDir}/clover"] String[] args = argsList.toArray() com.atlassian.clover.reporters.html.HtmlReporter.runReport(args) // and generate ${reportsDir}/clover/clover.xml args = ["--initstring", "${buildDir}/clover/clover.db", - "-o", "${reportsDir}/clover/clover.xml"].toArray() + "-o", "${reportsDir}/clover/clover.xml"].toArray() com.atlassian.clover.reporters.xml.XMLReporter.runReport(args) } } @@ -464,7 +557,7 @@ task createBuildProperties(type: WriteProperties) { inputs.dir("$jalviewDir/$sourceDir") inputs.dir("$classes") inputs.dir("$jalviewDir/$resourceDir") - outputFile "$classes/$buildPropertiesFile" + outputFile (buildProperties) // 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") @@ -528,14 +621,14 @@ task copyHelp(type: Copy) { def outputDir = "$classes/$helpDir" from(inputDir) { exclude '**/*.gif' - exclude '**/*.jpg' - exclude '**/*.png' - filter(ReplaceTokens, beginToken: '$$', endToken: '$$', tokens: ['Version-Rel': JALVIEW_VERSION]) + exclude '**/*.jpg' + exclude '**/*.png' + filter(ReplaceTokens, beginToken: '$$', endToken: '$$', tokens: ['Version-Rel': JALVIEW_VERSION]) } from(inputDir) { include '**/*.gif' - include '**/*.jpg' - include '**/*.png' + include '**/*.jpg' + include '**/*.png' } into outputDir @@ -575,7 +668,9 @@ test { dependsOn cloverInstr } - print("Running tests " + (use_clover?"WITH":"WITHOUT") + " clover [clover="+use_clover+"]\n") + if (use_clover) { + print("Running tests " + (use_clover?"WITH":"WITHOUT") + " clover [clover="+use_clover+"]\n") + } useTestNG() { includeGroups testngGroups @@ -702,34 +797,51 @@ task cleanDist { shadowJar { group = "distribution" - dependsOn makeDist + if (buildDist) { + dependsOn makeDist + } from ("$jalviewDir/$libDistDir") { include("*.jar") } + manifest { + attributes 'Implementation-Version': JALVIEW_VERSION + } mainClassName = shadowJarMainClass mergeServiceFiles() - classifier = "all-"+JAVA_VERSION + classifier = "all-"+JALVIEW_VERSION+"-j"+JAVA_VERSION minimize() } task getdownWebsite() { group = "distribution" description = "Create the getdown minimal app folder, and website folder for this version of jalview. Website folder also used for offline app installer" - dependsOn makeDist + if (buildDist) { + dependsOn makeDist + } + + // clean the getdown website and files dir before creating getdown folders + delete project.ext.getdownWebsiteDir + delete project.ext.getdownFilesDir + def getdownWebsiteResourceFilenames = [] def getdownTextString = "" def getdownResourceDir = project.ext.getdownResourceDir def getdownAppDir = project.ext.getdownAppDir def getdownResourceFilenames = [] + doFirst { + copy { + from buildProperties + rename(buildPropertiesFile, getdown_build_properties) + into project.ext.getdownWebsiteDir + } + getdownWebsiteResourceFilenames += getdown_build_properties + // go through properties looking for getdown_txt_... def props = project.properties.sort { it.key } props.put("getdown_txt_java_min_version", getdown_alt_java_min_version) props.put("getdown_txt_multi_java_location", getdown_alt_multi_java_location) - if (getdown_local == "true") { - getdown_app_base = file(getdownWebsiteDir).toURI().toString() - } props.put("getdown_txt_appbase", getdown_app_base) props.each{ prop, val -> if (prop.startsWith("getdown_txt_") && val != null) { @@ -741,7 +853,7 @@ task getdownWebsite() { } } else { // file values rationalised - if (val.indexOf('/') > -1) { + if (val.indexOf('/') > -1 || prop.startsWith("getdown_txt_resource")) { def r = null if (val.indexOf('/') == 0) { // absolute path @@ -756,8 +868,10 @@ task getdownWebsite() { getdownResourceFilenames += r.getPath() } } - def line = prop.substring(12) + " = " + val + "\n" - getdownTextString += line + if (! prop.startsWith("getdown_txt_resource")) { + def line = prop.substring(12) + " = " + val + "\n" + getdownTextString += line + } } } } @@ -773,7 +887,7 @@ task getdownWebsite() { } def codeFiles = [] - makeDist.outputs.files.each{ f -> + fileTree(file(packageDir)).each{ f -> if (f.isDirectory()) { def files = fileTree(dir: f, include: ["*"]).getFiles() codeFiles += files @@ -792,17 +906,17 @@ task getdownWebsite() { // NOT USING MODULES YET, EVERYTHING SHOULD BE IN dist /* - if (JAVA_VERSION.equals("11")) { - def j11libFiles = fileTree(dir: "$jalviewDir/$j11libDir", include: ["*.jar"]).getFiles() - j11libFiles.sort().each{f -> - def line = "code = " + getdown_j11lib_dir + '/' + f.getName() + "\n" - getdownTextString += line - copy { - from f.getPath() - into project.ext.getdownJ11libDir - } - } - } + if (JAVA_VERSION.equals("11")) { + def j11libFiles = fileTree(dir: "$jalviewDir/$j11libDir", include: ["*.jar"]).getFiles() + j11libFiles.sort().each{f -> + def line = "code = " + getdown_j11lib_dir + '/' + f.getName() + "\n" + getdownTextString += line + copy { + from f.getPath() + into project.ext.getdownJ11libDir + } + } + } */ // 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. @@ -813,38 +927,51 @@ task getdownWebsite() { def getdown_txt = file(project.ext.getdownWebsiteDir + "/getdown.txt") getdown_txt.write(getdownTextString) - copy { - from getdown_txt - into project.ext.getdownFilesDir - } + def launch_jvl = file(project.ext.getdownWebsiteDir + "/" + getdown_launch_jvl) + launch_jvl.write("appbase="+props.get("getdown_txt_appbase")) copy { from getdownLauncher - into project.ext.getdownWebsiteDir rename(file(getdownLauncher).getName(), getdown_launcher_new) + into project.ext.getdownWebsiteDir } copy { from getdownLauncher - into project.ext.getdownFilesDir + into project.ext.getdownWebsiteDir + } + + if (! (CHANNEL.startsWith("ARCHIVE") || CHANNEL.startsWith("DEVELOP"))) { + copy { + from getdown_txt + from getdownLauncher + from getdownWebsiteDir+"/"+getdown_build_properties + into getdownInstallDir + } + + copy { + from getdownInstallDir + into getdownFilesInstallDir + } } copy { + from getdown_txt + from launch_jvl from getdownLauncher - into project.ext.getdownWebsiteDir + from getdownWebsiteDir+"/"+getdown_build_properties + into getdownFilesDir } copy { - from jalviewDir + '/' + project.getProperty('getdown_txt_ui.background_image') - from jalviewDir + '/' + project.getProperty('getdown_txt_ui.error_background') - from jalviewDir + '/' + project.getProperty('getdown_txt_ui.progress_image') - from jalviewDir + '/' + project.getProperty('getdown_txt_ui.icon') - from jalviewDir + '/' + project.getProperty('getdown_txt_ui.mac_dock_icon') + from getdownResourceDir into project.ext.getdownFilesDir + '/' + getdown_resource_dir } } - inputs.dir(jalviewDir + '/' + packageDir) + if (buildDist) { + inputs.dir(jalviewDir + '/' + packageDir) + } outputs.dir(project.ext.getdownWebsiteDir) outputs.dir(project.ext.getdownFilesDir) } @@ -864,6 +991,22 @@ task getdown() { group = "distribution" description = "Create the minimal and full getdown app folder for installers and website and create digest file" dependsOn getdownDigest + doLast { + if (reportRsyncCommand) { + def fromDir = getdownWebsiteDir + (getdownWebsiteDir.endsWith("/")?"":"/") + def toDir = getdown_rsync_dest + "/" + getdownDir + (getdownDir.endsWith("/")?"":"/") + println "LIKELY RSYNC COMMAND:" + println "rsync -avh --delete '$fromDir' '$toDir'" + if (RUNRSYNC == "true") { + exec { + commandLine "mkdir", "-p", toDir + } + exec { + commandLine "rsync", "-avh", "--delete", fromDir, toDir + } + } + } + } } clean { @@ -910,18 +1053,22 @@ task copyInstall4jTemplate(type: Copy) { rename (install4jTemplate, install4jConfFile) filter(ReplaceTokens, beginToken: '', endToken: '', tokens: ['9999999999': JAVA_VERSION]) filter(ReplaceTokens, beginToken: '$$', endToken: '$$', - tokens: [ - 'JAVA_VERSION': JAVA_VERSION, - 'JAVA_INTEGER_VERSION': JAVA_INTEGER_VERSION, - 'VERSION': JALVIEW_VERSION, - 'MACOS_JAVA_VM_DIR': macosJavaVMDir, - 'MACOS_JAVA_VM_TGZ': macosJavaVMTgz, - 'WINDOWS_JAVA_VM_DIR': windowsJavaVMDir, - 'WINDOWS_JAVA_VM_TGZ': windowsJavaVMTgz, - 'INSTALL4JINFOPLISTFILEASSOCIATIONS': install4jInfoPlistFileAssociations, - 'COPYRIGHT_MESSAGE': install4jCopyrightMessage, - 'MACOS_BUNDLE_ID': install4jMacOSBundleId - ] + tokens: [ + 'JAVA_VERSION': JAVA_VERSION, + 'JAVA_INTEGER_VERSION': JAVA_INTEGER_VERSION, + 'VERSION': JALVIEW_VERSION, + 'MACOS_JAVA_VM_DIR': macosJavaVMDir, + 'MACOS_JAVA_VM_TGZ': macosJavaVMTgz, + 'WINDOWS_JAVA_VM_DIR': windowsJavaVMDir, + 'WINDOWS_JAVA_VM_TGZ': windowsJavaVMTgz, + 'INSTALL4JINFOPLISTFILEASSOCIATIONS': install4jInfoPlistFileAssociations, + 'COPYRIGHT_MESSAGE': install4jCopyrightMessage, + 'MACOS_BUNDLE_ID': install4jMacOSBundleId, + 'GETDOWN_RESOURCE_DIR': getdown_resource_dir, + 'GETDOWN_DIST_DIR': getdown_app_dir, + 'GETDOWN_ALT_DIR': getdown_app_dir_alt, + 'GETDOWN_INSTALL_DIR': getdown_install_dir + ] ) if (OSX_KEYPASS=="") { filter(ReplaceTokens, beginToken: 'codeSigning macEnabled="', endToken: '"', tokens: ['true':'codeSigning macEnabled="false"']) @@ -945,13 +1092,13 @@ task copyInstall4jTemplate(type: Copy) { // include uninstaller applescript app files in dmg def installerDMGUninstallerXml = file("$install4jDir/$install4jDMGUninstallerAppFiles").text ant.replaceregexp( - byline: false, - flags: "s", - match: '', - replace: installerDMGUninstallerXml, - file: install4jConf + byline: false, + flags: "s", + match: '', + replace: installerDMGUninstallerXml, + file: install4jConf ) - */ + */ } } @@ -968,16 +1115,18 @@ task installers(type: com.install4j.gradle.Install4jTask) { if (OSX_KEYPASS) { macKeystorePassword=OSX_KEYPASS - + } - + inputs.dir(project.ext.getdownWebsiteDir) inputs.file(install4jConf) inputs.dir(macosJavaVMDir) inputs.dir(windowsJavaVMDir) outputs.dir("$jalviewDir/$install4jBuildDir/$JAVA_VERSION") + } clean { delete install4jConf } + diff --git a/getdown/lib/getdown-core-1.8.3-SNAPSHOT.jar b/getdown/lib/getdown-core.jar similarity index 69% rename from getdown/lib/getdown-core-1.8.3-SNAPSHOT.jar rename to getdown/lib/getdown-core.jar index 965e75d..7ee98a0 100644 Binary files a/getdown/lib/getdown-core-1.8.3-SNAPSHOT.jar and b/getdown/lib/getdown-core.jar differ diff --git a/getdown/lib/getdown-launcher.jar b/getdown/lib/getdown-launcher.jar index dcede78..42efe3c 100644 Binary files a/getdown/lib/getdown-launcher.jar and b/getdown/lib/getdown-launcher.jar differ diff --git a/getdown/src/getdown/ant/pom.xml b/getdown/src/getdown/ant/pom.xml index f8231aa..16af8b3 100644 --- a/getdown/src/getdown/ant/pom.xml +++ b/getdown/src/getdown/ant/pom.xml @@ -4,7 +4,7 @@ com.threerings.getdown getdown - 1.8.3-SNAPSHOT + 1.8.3-1.0_JVL getdown-ant diff --git a/getdown/src/getdown/core/pom.xml b/getdown/src/getdown/core/pom.xml index efec8b6..d8264b4 100644 --- a/getdown/src/getdown/core/pom.xml +++ b/getdown/src/getdown/core/pom.xml @@ -4,7 +4,7 @@ com.threerings.getdown getdown - 1.8.3-SNAPSHOT + 1.8.3-1.0_JVL getdown-core diff --git a/getdown/src/getdown/core/src/main/java/com/threerings/getdown/data/Application.java b/getdown/src/getdown/core/src/main/java/com/threerings/getdown/data/Application.java index 0de5c8a..c3a3d79 100644 --- a/getdown/src/getdown/core/src/main/java/com/threerings/getdown/data/Application.java +++ b/getdown/src/getdown/core/src/main/java/com/threerings/getdown/data/Application.java @@ -70,13 +70,18 @@ public class Application public enum Step { UPDATE_JAVA(10), - VERIFY_METADATA(15, 65, 95), - DOWNLOAD(40), + //VERIFY_METADATA(15, 65, 95), + VERIFY_METADATA(15, 45, 90), + DOWNLOAD(50), PATCH(60), - VERIFY_RESOURCES(70, 97), - REDOWNLOAD_RESOURCES(90), - UNPACK(98), - LAUNCH(99); + //VERIFY_RESOURCES(70, 97), + VERIFY_RESOURCES(30, 60), + //REDOWNLOAD_RESOURCES(90), + REDOWNLOAD_RESOURCES(70), + //UNPACK(98), + UNPACK(90), + //LAUNCH(99); + LAUNCH(100); /** What is the final percent value for this step? */ public final List defaultPercents; @@ -103,6 +108,9 @@ public class Application /** The paths (relative to the appdir) of images for the window icon. */ public final List iconImages; + /** The path (relative to the appdir) to a single background image to appear first. */ + public final String instantBackgroundImage; + /** The path (relative to the appdir) to a single background image. */ public final String backgroundImage; @@ -142,6 +150,18 @@ public class Application /** Whether progress text should be hidden or not. */ public final boolean hideProgressText; + /** Whether the splash screen should retain focus. */ + public final boolean progressSync; + + /** Whether the splash screen should retain focus. */ + public final boolean keepOnTop; + + /** Whether to display the appbase. */ + public final boolean displayAppbase; + + /** Whether to display the version. */ + public final boolean displayVersion; + /** The minimum number of seconds to display the GUI. This is to prevent the GUI from * flashing up on the screen and immediately disappearing, which can be confusing to the * user. */ @@ -155,12 +175,13 @@ public class Application @Override public String toString () { - return "[name=" + name + ", bg=" + background + ", bg=" + backgroundImage + + return "[name=" + name + ", bg=" + background + ", bg=" + backgroundImage + ", instant_bg=" + instantBackgroundImage + ", pi=" + progressImage + ", prect=" + progress + ", pt=" + progressText + ", pb=" + progressBar + ", srect=" + status + ", st=" + statusText + ", shadow=" + textShadow + ", err=" + installError + ", nrect=" + patchNotes + ", notes=" + patchNotesUrl + ", stepPercentages=" + stepPercentages + - ", hideProgressText" + hideProgressText + ", minShow=" + minShowSeconds + "]"; + ", hideProgressText=" + hideProgressText + ", keepOnTop=" + keepOnTop + ", progressSync=" + progressSync + ", minShow=" + minShowSeconds + + ", displayAppbase=" + displayAppbase + ", displayVersion=" + displayVersion + "]"; } public UpdateInterface (Config config) @@ -169,6 +190,10 @@ public class Application this.progress = config.getRect("ui.progress", new Rectangle(5, 5, 300, 15)); this.progressText = config.getColor("ui.progress_text", Color.BLACK); this.hideProgressText = config.getBoolean("ui.hide_progress_text"); + this.progressSync = config.getBoolean("ui.progress_sync"); + this.keepOnTop = config.getBoolean("ui.keep_on_top"); + this.displayAppbase = config.getBoolean("ui.display_appbase"); + this.displayVersion = config.getBoolean("ui.display_version"); this.minShowSeconds = config.getInt("ui.min_show_seconds", 5); this.progressBar = config.getColor("ui.progress_bar", 0x6699CC); this.status = config.getRect("ui.status", new Rectangle(5, 25, 500, 100)); @@ -176,6 +201,7 @@ public class Application this.textShadow = config.getColor("ui.text_shadow", Color.CLEAR); this.hideDecorations = config.getBoolean("ui.hide_decorations"); this.backgroundImage = config.getString("ui.background_image"); + this.instantBackgroundImage = config.getString("ui.instant_background_image"); // default to black or white bg color, depending on the brightness of the progressText int defaultBackground = (0.5f < Color.brightness(this.progressText)) ? Color.BLACK : Color.WHITE; @@ -1866,22 +1892,27 @@ public class Application try { Config tmpConfig = null; + Map tmpData = new HashMap<>(); if (_locatorFile.exists()) { tmpConfig = Config.parseConfig(_locatorFile, opts); + // appbase is sanitised in HostWhitelist + Map tmpConfigData = tmpConfig.getData(); + if (tmpConfig != null) { + for (Map.Entry entry : tmpConfigData.entrySet()) { + String key = entry.getKey(); + Object value = entry.getValue(); + String mkey = key.indexOf('.') > -1 ? key.substring(key.indexOf('.') + 1) : key; + if (Config.allowedReplaceKeys.contains(mkey) || Config.allowedMergeKeys.contains(mkey)) { + tmpData.put(key, value); + } + } + } else { + log.warning("Error occurred reading config file", "file", _locatorFile); + } } else { log.warning("Given locator file does not exist", "file", _locatorFile); } - // appbase is sanitised in HostWhitelist - Map tmpData = new HashMap<>(); - for (Map.Entry entry : tmpConfig.getData().entrySet()) { - String key = entry.getKey(); - Object value = entry.getValue(); - String mkey = key.indexOf('.') > -1 ? key.substring(key.indexOf('.') + 1) : key; - if (Config.allowedReplaceKeys.contains(mkey) || Config.allowedMergeKeys.contains(mkey)) { - tmpData.put(key, value); - } - } locatorConfig = new Config(tmpData); } catch (Exception e) { @@ -1893,6 +1924,10 @@ public class Application return locatorConfig; } + public String getAppbase() { + return _appbase; + } + protected final EnvConfig _envc; protected File _config; protected Digest _digest; diff --git a/getdown/src/getdown/launcher/pom.xml b/getdown/src/getdown/launcher/pom.xml index e77061a..90e5c83 100644 --- a/getdown/src/getdown/launcher/pom.xml +++ b/getdown/src/getdown/launcher/pom.xml @@ -4,7 +4,7 @@ com.threerings.getdown getdown - 1.8.3-SNAPSHOT + 1.8.3-1.0_JVL getdown-launcher diff --git a/getdown/src/getdown/launcher/src/main/java/com/threerings/getdown/launcher/Getdown.java b/getdown/src/getdown/launcher/src/main/java/com/threerings/getdown/launcher/Getdown.java index d82ed15..ba238de 100644 --- a/getdown/src/getdown/launcher/src/main/java/com/threerings/getdown/launcher/Getdown.java +++ b/getdown/src/getdown/launcher/src/main/java/com/threerings/getdown/launcher/Getdown.java @@ -231,6 +231,9 @@ public abstract class Getdown extends Thread Config config = _app.init(true); if (preloads) doPredownloads(_app.getResources()); _ifc = new Application.UpdateInterface(config); + if (_status != null) { + _status.setAppbase(_app.getAppbase()); + } } /** @@ -570,7 +573,7 @@ public abstract class Getdown extends Thread // show the patch notes button, if applicable if (!StringUtil.isBlank(_ifc.patchNotesUrl)) { createInterfaceAsync(false); - EventQueue.invokeLater(new Runnable() { + EQinvoke(new Runnable() { public void run () { _patchNotes.setVisible(true); } @@ -702,7 +705,7 @@ public abstract class Getdown extends Thread } else { proc = _app.createProcess(false); } - + // close standard in to avoid choking standard out of the launched process proc.getInputStream().close(); // close standard out, since we're not going to write to anything to it anyway @@ -731,6 +734,9 @@ public abstract class Getdown extends Thread } } + //_container.setVisible(true); + //_container.validate(); + // if we have a UI open and we haven't been around for at least 5 seconds (the default // for min_show_seconds), don't stick a fork in ourselves straight away but give our // lovely user a chance to see what we're doing @@ -763,10 +769,10 @@ public abstract class Getdown extends Thread if (_silent || (_container != null && !reinit)) { return; } -/* - EventQueue.invokeLater(new Runnable() { + + EQinvoke (new Runnable() { public void run () { -*/ + if (_container == null || reinit) { if (_container == null) { _container = createContainer(); @@ -782,34 +788,41 @@ public abstract class Getdown extends Thread try { readConfig(false); Graphics g = _container.getGraphics(); - String imageFile = _ifc.backgroundImage; - BufferedImage bgImage = loadImage(_ifc.backgroundImage); - int bwidth = bgImage.getWidth(); - int bheight = bgImage.getHeight(); - - instantSplashPane = new JPanel() { - @Override - protected void paintComponent(Graphics g) - { - super.paintComponent(g); - // attempt to draw a background image... - if (bgImage != null) { - g.drawImage(bgImage, 0, 0, this); - } - } - }; - - instantSplashPane.setSize(bwidth,bheight); - instantSplashPane.setPreferredSize(new Dimension(bwidth,bheight)); - - _layers.add(instantSplashPane, Integer.valueOf(0)); - - _container.setPreferredSize(new Dimension(bwidth,bheight)); + BufferedImage iBgImage = loadImage(_ifc.instantBackgroundImage); + boolean ibg = true; + if (iBgImage == null) { + iBgImage = loadImage(_ifc.backgroundImage); + ibg = false; + } + if (iBgImage != null) { + final BufferedImage bgImage = iBgImage; + int bwidth = bgImage.getWidth(); + int bheight = bgImage.getHeight(); + + log.info("Displaying instant background image", ibg?"instant_background_image":"background_image"); + + instantSplashPane = new JPanel() { + @Override + protected void paintComponent(Graphics g) + { + super.paintComponent(g); + // attempt to draw a background image... + if (bgImage != null) { + g.drawImage(bgImage, 0, 0, this); + } + } + }; + + instantSplashPane.setSize(bwidth,bheight); + instantSplashPane.setPreferredSize(new Dimension(bwidth,bheight)); + + _layers.add(instantSplashPane, Integer.valueOf(1)); + + _container.setPreferredSize(new Dimension(bwidth,bheight)); + } } catch (Exception e) { - log.warning("Failed to set instant background image", "bg", _ifc.backgroundImage); + log.warning("Failed to set instant background image", "ibg", _ifc.instantBackgroundImage); } - - _container.add(_layers, BorderLayout.CENTER); _patchNotes = new JButton(new AbstractAction(_msgs.getString("m.patch_notes")) { @@ -820,14 +833,14 @@ public abstract class Getdown extends Thread _patchNotes.setFont(StatusPanel.FONT); _layers.add(_patchNotes); _status = new StatusPanel(_msgs); - _layers.add(_status, Integer.valueOf(10)); + setStatusAsync("m.initialising", 0, -1L, true); + //_layers.add(_status, Integer.valueOf(2)); initInterface(); } showContainer(); -/* } }); -*/ + } /** @@ -844,6 +857,7 @@ public abstract class Getdown extends Thread _status.init(_ifc, _background, getProgressImage()); Dimension size = _status.getPreferredSize(); _status.setSize(size); + //_status.updateStatusLabel(); _layers.setPreferredSize(size); _patchNotes.setBounds(_ifc.patchNotes.x, _ifc.patchNotes.y, @@ -944,9 +958,10 @@ public abstract class Getdown extends Thread createInterfaceAsync(false); } - EventQueue.invokeLater(new Runnable() { + EQinvoke(new Runnable() { public void run () { - if (_status == null) { + + if (_status == null) { if (message != null) { log.info("Dropping status '" + message + "'."); } @@ -959,9 +974,19 @@ public abstract class Getdown extends Thread _status.setProgress(0, -1L); } else if (percent >= 0) { _status.setProgress(percent, remaining); + } else { + //_status.setStatus("m.initialising", false); } + } }); + + if (! _addedStatusLayer) { + _layers.add(_status, Integer.valueOf(2)); + _addedStatusLayer = true; + initInterface(); + } + } protected void reportTrackingEvent (String event, int progress) @@ -1090,7 +1115,32 @@ public abstract class Getdown extends Thread setStatusAsync(null, stepToGlobalPercent(percent), -1L, false); } }; - + + // Asynchronous or synchronous progress updates + protected void EQinvoke(Runnable r) { + + try { + readConfig(false); + } catch (Exception e) { + log.warning("Could't read config when invoking GUI action", "Exception", e.getMessage()); + } + if (_ifc != null && _ifc.progressSync) { + try { + EventQueue.invokeAndWait(r); + //r.run(); + } catch (Exception e) { + log.warning("Tried to invokeAndWait but couldn't. Going to invokeLater instead", "Exception", e.getMessage()); + EventQueue.invokeLater(r); + } + } else { + EventQueue.invokeLater(r); + //r.run(); + } + + //try { Thread.sleep(500); } catch (Exception e) {} + + } + protected Application _app; protected Application.UpdateInterface _ifc = new Application.UpdateInterface(Config.EMPTY); @@ -1103,12 +1153,13 @@ public abstract class Getdown extends Thread protected AbortPanel _abort; protected RotatingBackgrounds _background; + protected boolean _addedStatusLayer; protected boolean _dead; protected boolean _silent; protected boolean _launchInSilent; protected boolean _noUpdate; protected long _startup; - + protected Set _toInstallResources; protected boolean _readyToInstall; diff --git a/getdown/src/getdown/launcher/src/main/java/com/threerings/getdown/launcher/GetdownApp.java b/getdown/src/getdown/launcher/src/main/java/com/threerings/getdown/launcher/GetdownApp.java index fd83de3..4adc77c 100644 --- a/getdown/src/getdown/launcher/src/main/java/com/threerings/getdown/launcher/GetdownApp.java +++ b/getdown/src/getdown/launcher/src/main/java/com/threerings/getdown/launcher/GetdownApp.java @@ -7,7 +7,6 @@ package com.threerings.getdown.launcher; import java.awt.Color; import java.awt.Container; -import java.awt.EventQueue; import java.awt.Image; import java.awt.event.ActionEvent; import java.awt.event.KeyEvent; @@ -29,6 +28,7 @@ import javax.swing.WindowConstants; import com.samskivert.swing.util.SwingUtil; import com.threerings.getdown.data.Application; +import com.threerings.getdown.data.Build; import com.threerings.getdown.data.EnvConfig; import com.threerings.getdown.data.SysProps; import com.threerings.getdown.util.LaunchUtil; @@ -92,7 +92,7 @@ public class GetdownApp } if (abort) System.exit(-1); - log.info("Starting ...."); + log.info("Starting ..."); try { jalview.bin.StartupNotificationListener.setListener(); @@ -117,6 +117,7 @@ public class GetdownApp log.info("-- User Name: " + System.getProperty("user.name")); log.info("-- User Home: " + System.getProperty("user.home")); log.info("-- Cur dir: " + System.getProperty("user.dir")); + log.info("-- launcher version: "+Build.version()); log.info("-- startupFilesParameterString: " + startupFilesParameterString); log.info("---------------------------------------------"); @@ -132,6 +133,19 @@ public class GetdownApp handleWindowClose(); } }); + + // keep_on_top + try { + readConfig(false); + } catch (Exception e) { + log.warning("Error reading config for keep_on_top"); + } + // move window to top, always on top + if (_ifc.keepOnTop) { + log.info("Keep on top set to ", "keep_on_top", _ifc.keepOnTop); + _frame.setAlwaysOnTop(true); + } + // handle close on ESC String cancelId = "Cancel"; // $NON-NLS-1$ _frame.getRootPane().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put( @@ -244,7 +258,7 @@ public class GetdownApp super.fail(message); // super.fail causes the UI to be created (if needed) on the next UI tick, so we // want to wait until that happens before we attempt to redecorate the window - EventQueue.invokeLater(new Runnable() { + EQinvoke(new Runnable() { @Override public void run() { // if the frame was set to be undecorated, make window decoration available diff --git a/getdown/src/getdown/launcher/src/main/java/com/threerings/getdown/launcher/StatusPanel.java b/getdown/src/getdown/launcher/src/main/java/com/threerings/getdown/launcher/StatusPanel.java index 99f44ca..620182b 100644 --- a/getdown/src/getdown/launcher/src/main/java/com/threerings/getdown/launcher/StatusPanel.java +++ b/getdown/src/getdown/launcher/src/main/java/com/threerings/getdown/launcher/StatusPanel.java @@ -28,6 +28,7 @@ import com.samskivert.swing.util.SwingUtil; import com.samskivert.util.Throttle; import com.threerings.getdown.data.Application.UpdateInterface; +import com.threerings.getdown.data.Build; import com.threerings.getdown.util.MessageUtil; import com.threerings.getdown.util.Rectangle; import com.threerings.getdown.util.StringUtil; @@ -106,7 +107,7 @@ public final class StatusPanel extends JComponent // maybe update the progress label if (_progress != percent) { _progress = percent; - if (!_ifc.hideProgressText) { + if (_ifc != null && !_ifc.hideProgressText) { String msg = MessageFormat.format(get("m.complete"), percent); _newplab = createLabel(msg, new Color(_ifc.progressText, true)); } @@ -128,7 +129,7 @@ public final class StatusPanel extends JComponent } remaining /= values; - if (!_ifc.hideProgressText) { + if (_ifc != null && !_ifc.hideProgressText) { // now compute our display value int minutes = (int)(remaining / 60), seconds = (int)(remaining % 60); String remstr = minutes + ":" + ((seconds < 10) ? "0" : "") + seconds; @@ -265,13 +266,28 @@ public final class StatusPanel extends JComponent */ protected void updateStatusLabel () { + if (_ifc == null) { + return; + } String status = _status; if (!_displayError) { for (int ii = 0; ii < _statusDots; ii++) { status += " ."; } } - _newlab = createLabel(status, new Color(_ifc.statusText, true)); + + StringBuilder labelText = new StringBuilder(); + if (_ifc.displayVersion) { + labelText.append("launcher version: "+Build.version()); + labelText.append("\n"); + } + if (_ifc.displayAppbase) { + labelText.append("appbase: "+_appbase); + labelText.append("\n"); + } + labelText.append(status); + + _newlab = createLabel(labelText.toString(), new Color(_ifc.statusText, true)); // set the width of the label to the width specified int width = _ifc.status.width; if (width == 0) { @@ -370,6 +386,10 @@ public final class StatusPanel extends JComponent return key; } } + + public void setAppbase(String appbase) { + _appbase = appbase; + } protected Image _barimg; protected RotatingBackgrounds _bg; @@ -393,4 +413,6 @@ public final class StatusPanel extends JComponent protected Throttle _rthrottle = new Throttle(1, 1000L); protected static final Font FONT = new Font("SansSerif", Font.BOLD, 12); + + public String _appbase; } diff --git a/getdown/src/getdown/launcher/src/main/resources/com/threerings/getdown/messages.properties b/getdown/src/getdown/launcher/src/main/resources/com/threerings/getdown/messages.properties index 19b2999..19b5069 100644 --- a/getdown/src/getdown/launcher/src/main/resources/com/threerings/getdown/messages.properties +++ b/getdown/src/getdown/launcher/src/main/resources/com/threerings/getdown/messages.properties @@ -108,3 +108,6 @@ m.invalid_appbase = The configuration file specifies an invalid 'appbase'. m.missing_class = The configuration file is missing the application class. m.missing_code = The configuration file specifies no code resources. m.invalid_digest_file = The digest file is invalid. + +# When at 0% +m.initialising = Initialising diff --git a/getdown/src/getdown/launcher/src/main/resources/com/threerings/getdown/messages_de.properties b/getdown/src/getdown/launcher/src/main/resources/com/threerings/getdown/messages_de.properties index 8e36835..9a60ccd 100644 --- a/getdown/src/getdown/launcher/src/main/resources/com/threerings/getdown/messages_de.properties +++ b/getdown/src/getdown/launcher/src/main/resources/com/threerings/getdown/messages_de.properties @@ -114,3 +114,6 @@ m.missing_class = In der Konfigurationsdatei fehlt die Anwendungsklasse. m.missing_code = Die Konfigurationsdatei enth\u00e4lt keine Codequellen. m.invalid_digest_file = Die Hashwertedatei ist ung\u00fcltig. + +# When at 0% +m.initialising = Initialising diff --git a/getdown/src/getdown/launcher/src/main/resources/com/threerings/getdown/messages_es.properties b/getdown/src/getdown/launcher/src/main/resources/com/threerings/getdown/messages_es.properties index 609b025..ca01010 100644 --- a/getdown/src/getdown/launcher/src/main/resources/com/threerings/getdown/messages_es.properties +++ b/getdown/src/getdown/launcher/src/main/resources/com/threerings/getdown/messages_es.properties @@ -113,3 +113,6 @@ m.missing_class = Al archivo de configuraci\u00f3n le falta la clase de aplicaci m.missing_code = El archivo de configuraci\u00f3n especifica que no hay recursos de c\u00f3digo. m.invalid_digest_file = El archivo digest no es v\u00e1lido. + +# When at 0% +m.initialising = Initialising diff --git a/getdown/src/getdown/launcher/src/main/resources/com/threerings/getdown/messages_fr.properties b/getdown/src/getdown/launcher/src/main/resources/com/threerings/getdown/messages_fr.properties index 3666204..73b8b7f 100644 --- a/getdown/src/getdown/launcher/src/main/resources/com/threerings/getdown/messages_fr.properties +++ b/getdown/src/getdown/launcher/src/main/resources/com/threerings/getdown/messages_fr.properties @@ -109,3 +109,6 @@ m.invalid_appbase = Le fichier de configuration sp\u00e9cifie un 'appbase' inval m.missing_class = Le fichier de configuration ne contient pas la classe de l'application. m.missing_code = Le fichier de configuration ne sp\u00e9cifie aucune ressource de code. m.invalid_digest_file = Le fichier digest est invalide. + +# When at 0% +m.initialising = Initialising diff --git a/getdown/src/getdown/launcher/src/main/resources/com/threerings/getdown/messages_it.properties b/getdown/src/getdown/launcher/src/main/resources/com/threerings/getdown/messages_it.properties index 33b3260..2f4f701 100644 --- a/getdown/src/getdown/launcher/src/main/resources/com/threerings/getdown/messages_it.properties +++ b/getdown/src/getdown/launcher/src/main/resources/com/threerings/getdown/messages_it.properties @@ -112,3 +112,6 @@ m.invalid_appbase = Il tag "appbase" non è valido. m.missing_class = Il file di configurazione non contiene la classe da eseguire (tag "class"). m.missing_code = Il file di configurazione non contiene alcuna risorsa (tag "code"). m.invalid_digest_file = Il file di digest non è valido. + +# When at 0% +m.initialising = Initialising diff --git a/getdown/src/getdown/launcher/src/main/resources/com/threerings/getdown/messages_ja.properties b/getdown/src/getdown/launcher/src/main/resources/com/threerings/getdown/messages_ja.properties index c344c16..7865ab3 100644 --- a/getdown/src/getdown/launcher/src/main/resources/com/threerings/getdown/messages_ja.properties +++ b/getdown/src/getdown/launcher/src/main/resources/com/threerings/getdown/messages_ja.properties @@ -105,3 +105,6 @@ m.invalid_appbase = \u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u304c\u7121\u52b9\u306a m.missing_class = \u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u306e\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u30af\u30e9\u30b9\u304c\u4e0d\u660e\u3067\u3059\u3002 m.missing_code = \u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u3067\u30b3\u30fc\u30c9\u30ea\u30bd\u30fc\u30b9\u304c\u6307\u5b9a\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002 m.invalid_digest_file = \u30c0\u30a4\u30b8\u30a7\u30b9\u30c8\u30d5\u30a1\u30a4\u30eb\u304c\u7121\u52b9\u3067\u3059\u3002 + +# When at 0% +m.initialising = Initialising diff --git a/getdown/src/getdown/launcher/src/main/resources/com/threerings/getdown/messages_ko.properties b/getdown/src/getdown/launcher/src/main/resources/com/threerings/getdown/messages_ko.properties index 3f8a47f..0968c43 100644 --- a/getdown/src/getdown/launcher/src/main/resources/com/threerings/getdown/messages_ko.properties +++ b/getdown/src/getdown/launcher/src/main/resources/com/threerings/getdown/messages_ko.properties @@ -100,3 +100,6 @@ m.invalid_appbase = \uC124\uC815 \uD30C\uC77C\uC5D0 \uC798\uBABB\uB41C 'appbase' m.missing_class = \uC124\uC815 \uD30C\uC77C\uC5D0 \uC5B4\uD50C\uB9AC\uCF00\uC774\uC158 \uD074\uB798\uC2A4\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4. m.missing_code = \uC124\uC815 \uD30C\uC77C\uC5D0 \uB9AC\uC18C\uC2A4\uC5D0 \uB300\uD55C \uCF54\uB4DC\uAC00 \uBA85\uC2DC\uB418\uC5B4 \uC788\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4. m.invalid_digest_file = \uB2E4\uC774\uC81C\uC2A4\uD2B8 \uD30C\uC77C\uC774 \uC798\uBABB\uB418\uC5C8\uC2B5\uB2C8\uB2E4. + +# When at 0% +m.initialising = Initialising diff --git a/getdown/src/getdown/launcher/src/main/resources/com/threerings/getdown/messages_pt.properties b/getdown/src/getdown/launcher/src/main/resources/com/threerings/getdown/messages_pt.properties index 47db91c..71e19df 100644 --- a/getdown/src/getdown/launcher/src/main/resources/com/threerings/getdown/messages_pt.properties +++ b/getdown/src/getdown/launcher/src/main/resources/com/threerings/getdown/messages_pt.properties @@ -116,3 +116,6 @@ m.invalid_appbase = O arquivo de configura\u00E7\u00E3o especifica um 'AppBase' m.missing_class = O arquivo de configura\u00E7\u00E3o n\u00E3o possui a classe de aplicativo. m.missing_code = O arquivo de configura\u00E7\u00E3o n\u00E3o especifica um recurso de c\u00F3digo. m.invalid_digest_file = O arquivo digest \u00E9 inv\u00E1lido. + +# When at 0% +m.initialising = Initialising diff --git a/getdown/src/getdown/launcher/src/main/resources/com/threerings/getdown/messages_zh.properties b/getdown/src/getdown/launcher/src/main/resources/com/threerings/getdown/messages_zh.properties index 2c27543..33e0a86 100644 --- a/getdown/src/getdown/launcher/src/main/resources/com/threerings/getdown/messages_zh.properties +++ b/getdown/src/getdown/launcher/src/main/resources/com/threerings/getdown/messages_zh.properties @@ -59,3 +59,6 @@ m.invalid_appbase = \u914d\u7f6e\u6587\u4ef6\u6307\u5b9a\u4e86\u65e0\u6548\u7684 m.missing_class = \u914d\u7f6e\u6587\u4ef6\u4e2d\u65e0\u6cd5\u627e\u5230\u7a0b\u5e8f\u6587\u4ef6\u3002 m.missing_code = \u914d\u7f6e\u6587\u4ef6\u4e2d\u65e0\u6cd5\u627e\u5230\u6307\u5b9a\u7684\u8d44\u6e90\u3002 m.invalid_digest_file = \u65e0\u6548\u7684\u914d\u7f6e\u6587\u4ef6\u3002 + +# When at 0% +m.initialising = Initialising diff --git a/getdown/src/getdown/mvn_cmd b/getdown/src/getdown/mvn_cmd old mode 100644 new mode 100755 index 0ce786f..6a14aea --- a/getdown/src/getdown/mvn_cmd +++ b/getdown/src/getdown/mvn_cmd @@ -1 +1,24 @@ -mvn clean package -Dgetdown.host.whitelist="jalview.org,*.jalview.org" && cp launcher/target/getdown-launcher-1.8.3-SNAPSHOT.jar ../../../getdown/lib/getdown-launcher.jar && cp core/target/getdown-core-1.8.3-SNAPSHOT.jar ../../../getdown/lib/getdown-core-1.8.3-SNAPSHOT.jar && cp core/target/getdown-core-1.8.3-SNAPSHOT.jar ../../../j8lib/getdown-core.jar && cp core/target/getdown-core-1.8.3-SNAPSHOT.jar ../../../j11lib/getdown-core.jar +#!/usr/bin/env bash + +if [ x$JVLVERSION != x ]; then + export VERSION=$JVLVERSION +else + export VERSION=1.8.3-1.0_JVL +fi + +if [ x${VERSION%_JVL} = x$VERSION ]; then + VERSION=${VERSION}_JVL +fi + +echo "Setting VERSION to '$VERSION'" + +perl -p -i -e 's|()[^<]*JVL[^<]*()|${1}$ENV{VERSION}${2}|;' pom.xml */pom.xml + +mvn package -Dgetdown.host.whitelist="jalview.org,*.jalview.org" +RET=$? +if [ x$RET = x0 ]; then + cp launcher/target/getdown-launcher-$VERSION.jar ../../../getdown/lib/getdown-launcher.jar && echo "Copied getdown-launcher.jar to getdown/lib" + cp core/target/getdown-core-$VERSION.jar ../../../getdown/lib/getdown-core.jar && echo "Copied getdown-core.jar to getdown/lib" + cp core/target/getdown-core-$VERSION.jar ../../../j8lib/getdown-core.jar && echo "Copied getdown-core.jar to j8lib" + cp core/target/getdown-core-$VERSION.jar ../../../j11lib/getdown-core.jar && echo "Copied getdown-core.jar to j11lib" +fi diff --git a/getdown/src/getdown/pom.xml b/getdown/src/getdown/pom.xml index 78d67b0..3334828 100644 --- a/getdown/src/getdown/pom.xml +++ b/getdown/src/getdown/pom.xml @@ -10,7 +10,7 @@ com.threerings.getdown getdown pom - 1.8.3-SNAPSHOT + 1.8.3-1.0_JVL getdown An application installer and updater. diff --git a/gradle.properties b/gradle.properties index b483978..6f3092e 100644 --- a/gradle.properties +++ b/gradle.properties @@ -30,6 +30,7 @@ use_clover = false cloverClassesDir = clover-classes cloverSourcesInstrDir = sources-instr packageDir = dist +ARCHIVEDIR = outputJar = jalview.jar testSourceDir = test @@ -47,34 +48,38 @@ gradlePluginsDir = gradle/plugins getdown_local = false getdown_website_dir = getdown/website getdown_resource_dir = resource -getdown_app_dir = dist #getdown_j11lib_dir = j11lib getdown_files_dir = getdown/files getdown_launcher = getdown/lib/getdown-launcher.jar getdown_launcher_new = getdown-launcher-new.jar -getdown_core = getdown/lib/getdown-core-1.8.3-SNAPSHOT.jar -getdown_base_txt = getdown/files/getdown.txt +getdown_core = getdown/lib/getdown-core.jar +getdown_launch_jvl = channel_launch.jvl +getdown_build_properties = build_properties getdown_txt_title = Jalview -getdown_channel_base = http://www.jalview.org/getdown/jalview -getdown_channel_name = TEST getdown_txt_allow_offline = true getdown_txt_jalview.jvmmempc = 90 getdown_txt_multi_jvmarg = -Dgetdownappdir=%APPDIR% getdown_txt_strict_comments = true getdown_txt_title = Jalview getdown_txt_ui.name = Jalview +getdown_txt_ui.progress_sync = true +getdown_txt_ui.keep_on_top = true +getdown_txt_ui.display_appbase = true +getdown_txt_ui.display_version = true +getdown_txt_ui.min_show_seconds = 6 getdown_txt_ui.background = FFFFFF -getdown_txt_ui.background_image = resources/images/jalview_logo_background_getdown-640x480.png -getdown_txt_ui.error_background = resources/images/jetset_jalview_splash.png -getdown_txt_ui.progress_image = resources/images/jalview_logo_background_getdown-progress.png +getdown_txt_ui.background_image = utils/getdown/jalview_logo_background_getdown-640x480.png +getdown_txt_ui.instant_background_image = utils/getdown/jalview_logo_background_getdown_instant-640x480.png +getdown_txt_ui.error_background = utils/getdown/jalview_logo_background_getdown_error-640x480.png +getdown_txt_ui.progress_image = utils/getdown/jalview_logo_background_getdown-progress.png getdown_txt_ui.icon = resources/images/JalviewLogo_Huge.png getdown_txt_ui.progress = 20, 440, 600, 22 getdown_txt_ui.progress_bar = AAAAFF getdown_txt_ui.progress_text = 000000 getdown_txt_ui.status = 20, 380, 600, 58 getdown_txt_ui.status_text = 000066 -getdown_txt_ui.text_shadow = EEEEFF -getdown_txt_ui.install_error = http://www.jalview.org/download/error +#getdown_txt_ui.text_shadow = FFFFFF +getdown_txt_ui.install_error = http://www.jalview.org/faq/getdownerror getdown_txt_ui.mac_dock_icon = resources/images/jalview_logos.ico getdown_alt_java8_min_version = 01080000 getdown_alt_java11_min_version = 11000000 @@ -113,3 +118,12 @@ eclipse_extra_jdt_prefs_file = .settings/org.eclipse.jdt.core.jalview.prefs pandoc_exec = /usr/local/bin/pandoc,/usr/bin/pandoc dev = false +CHANNEL=LOCAL +getdown_channel_base = http://www.jalview.org/getdown +getdown_channel_name = SCRATCH-DEFAULT +getdown_app_dir_release = release +getdown_install_dir = install +getdown_app_dir_alt = alt +getdown_rsync_dest = /Volumes/jalview/docroot/getdown +reportRsyncCommand = +RUNRSYNC=false diff --git a/j11lib/getdown-core.jar b/j11lib/getdown-core.jar index 965e75d..7ee98a0 100644 Binary files a/j11lib/getdown-core.jar and b/j11lib/getdown-core.jar differ diff --git a/j8lib/getdown-core.jar b/j8lib/getdown-core.jar index 965e75d..7ee98a0 100644 Binary files a/j8lib/getdown-core.jar and b/j8lib/getdown-core.jar differ diff --git a/resources/images/file.png b/resources/images/file.png old mode 100755 new mode 100644 diff --git a/resources/images/jalview_logo_background_getdown-progress.png b/resources/images/jalview_logo_background_getdown-progress.png deleted file mode 100644 index fb87750..0000000 Binary files a/resources/images/jalview_logo_background_getdown-progress.png and /dev/null differ diff --git a/resources/images/jalview_logos.icns b/resources/images/jalview_logos.icns old mode 100755 new mode 100644 diff --git a/resources/images/link.gif b/resources/images/link.gif old mode 100755 new mode 100644 diff --git a/resources/images/logo_big_v2.gif b/resources/images/logo_big_v2.gif old mode 100755 new mode 100644 diff --git a/resources/images/logo_v2.gif b/resources/images/logo_v2.gif old mode 100755 new mode 100644 diff --git a/utils/archive_building.sh b/utils/archive_building.sh new file mode 100644 index 0000000..c29d824 --- /dev/null +++ b/utils/archive_building.sh @@ -0,0 +1,48 @@ +#!/usr/bin/env bash + +J8HOME=/path/to/java8/jdk +J11HOME=/path/to/java11/jdk +OLDBUILDDIR=/path/to/old/build/root +JALVIEWDIR=/path/to/recent/jalview +LOCALARCHIVEDIR=/path/to/where/to/store/archive/locally +WEBSITEDOCROOTMOUNT=/path/to/mounted/website/docroot + + +cd OLDBUILDDIR +mkdir tar +cd tar +wget http://www.jalview.org/source/jalview_2_08b.tar.gz http://www.jalview.org/source/jalview_2_2_1.tar.gz http://www.jalview.org/source/jalview_2_3_buildfix.tar.gz http://www.jalview.org/source/jalview_2_4_0b2.tar.gz http://www.jalview.org/source/jalview_2_5_1.tar.gz http://www.jalview.org/source/jalview_2_6_1.tar.gz http://www.jalview.org/source/jalview_2_7.tar.gz http://www.jalview.org/source/jalview_2_8_2b1.tar.gz http://www.jalview.org/source/jalview_2_9_0b1.tar.gz http://www.jalview.org/source/jalview_2_10_5.tar.gz +cd - + +export JAVA_HOME=J8HOME +export PATH=$JAVA_HOME/bin:$PATH + +for x in tar/jalview_*.tar.gz +do + V=${x#*jalview_} + V=${V%.tar.gz} + echo $V + tar --one-top-level -xvf $x + cd jalview_$V/jalview + ant makedist -DJALVIEW_VERSION="$V" + cd - +done + +export JAVA_HOME=J11HOME +export PATH=$JAVA_HOME/bin:$PATH + +cd $JALVIEWDIR +for x in $OLDBUILDDIR/jalview_*/jalview +do + V=${x##*jalview_} + V=${V%/jalview} + echo $V + [ -e getdown/website ] && /bin/rm -r getdown/website + [ -e getdown/files ] && /bin/rm -r getdown/website + gradle getdown -PCHANNEL=ARCHIVE -PJALVIEW_VERSION="$V" -PJAVA_VERSION=1.8 -PARCHIVEDIR=$x -Pgetdown_rsync_dest=$LOCALARCHIVEDIR -PRUNRSYNC=true +done + + +cd $LOCALARCHIVEDIR +rsync -avh --delete $LOCALARCHIVEDIR/archive/ $WEBSITEDOCROOTMOUNT/getdown/archive/ + diff --git a/resources/images/jalview_logo_background_getdown-640x480.png b/utils/getdown/jalview_logo_background_getdown-640x480.png similarity index 100% rename from resources/images/jalview_logo_background_getdown-640x480.png rename to utils/getdown/jalview_logo_background_getdown-640x480.png diff --git a/resources/images/jalview_logo_background_getdown-progress-TEST2.png b/utils/getdown/jalview_logo_background_getdown-progress-TEST2.png old mode 100755 new mode 100644 similarity index 100% rename from resources/images/jalview_logo_background_getdown-progress-TEST2.png rename to utils/getdown/jalview_logo_background_getdown-progress-TEST2.png diff --git a/utils/getdown/jalview_logo_background_getdown-progress.png b/utils/getdown/jalview_logo_background_getdown-progress.png new file mode 100644 index 0000000..71066e8 Binary files /dev/null and b/utils/getdown/jalview_logo_background_getdown-progress.png differ diff --git a/resources/images/jalview_logo_background_getdown-progress1.png b/utils/getdown/jalview_logo_background_getdown-progress1.png similarity index 100% rename from resources/images/jalview_logo_background_getdown-progress1.png rename to utils/getdown/jalview_logo_background_getdown-progress1.png diff --git a/resources/images/jalview_logo_background_getdown-progress2.png b/utils/getdown/jalview_logo_background_getdown-progress2.png similarity index 100% rename from resources/images/jalview_logo_background_getdown-progress2.png rename to utils/getdown/jalview_logo_background_getdown-progress2.png diff --git a/utils/getdown/jalview_logo_background_getdown-progress3-0.png b/utils/getdown/jalview_logo_background_getdown-progress3-0.png new file mode 100644 index 0000000..cb1475c Binary files /dev/null and b/utils/getdown/jalview_logo_background_getdown-progress3-0.png differ diff --git a/utils/getdown/jalview_logo_background_getdown-progress3-1.png b/utils/getdown/jalview_logo_background_getdown-progress3-1.png new file mode 100644 index 0000000..71066e8 Binary files /dev/null and b/utils/getdown/jalview_logo_background_getdown-progress3-1.png differ diff --git a/utils/getdown/jalview_logo_background_getdown-progress3.xcf b/utils/getdown/jalview_logo_background_getdown-progress3.xcf new file mode 100644 index 0000000..70b4f01 Binary files /dev/null and b/utils/getdown/jalview_logo_background_getdown-progress3.xcf differ diff --git a/utils/getdown/jalview_logo_background_getdown-progress4.png b/utils/getdown/jalview_logo_background_getdown-progress4.png new file mode 100644 index 0000000..bc7e125 Binary files /dev/null and b/utils/getdown/jalview_logo_background_getdown-progress4.png differ diff --git a/utils/getdown/jalview_logo_background_getdown_error-640x480.png b/utils/getdown/jalview_logo_background_getdown_error-640x480.png new file mode 100644 index 0000000..f2a6ce5 Binary files /dev/null and b/utils/getdown/jalview_logo_background_getdown_error-640x480.png differ diff --git a/utils/getdown/jalview_logo_background_getdown_instant-640x480.png b/utils/getdown/jalview_logo_background_getdown_instant-640x480.png new file mode 100644 index 0000000..8f88dd0 Binary files /dev/null and b/utils/getdown/jalview_logo_background_getdown_instant-640x480.png differ diff --git a/utils/getdown/jalview_logo_background_getdown_instant-640x480.xcf b/utils/getdown/jalview_logo_background_getdown_instant-640x480.xcf new file mode 100644 index 0000000..3e6cc24 Binary files /dev/null and b/utils/getdown/jalview_logo_background_getdown_instant-640x480.xcf differ diff --git a/utils/install4j/Jalview-File.icns b/utils/install4j/Jalview-File.icns index a589f05..f8a5ec2 100644 Binary files a/utils/install4j/Jalview-File.icns and b/utils/install4j/Jalview-File.icns differ diff --git a/utils/install4j/Jalview-File.ico b/utils/install4j/Jalview-File.ico index 694d180..110964a 100644 Binary files a/utils/install4j/Jalview-File.ico and b/utils/install4j/Jalview-File.ico differ diff --git a/utils/install4j/Uninstall Old Jalview.app/Contents/Info.plist b/utils/install4j/Uninstall Old Jalview.app/Contents/Info.plist index 06399cf..649770d 100644 --- a/utils/install4j/Uninstall Old Jalview.app/Contents/Info.plist +++ b/utils/install4j/Uninstall Old Jalview.app/Contents/Info.plist @@ -11,11 +11,11 @@ CFBundleIconFile applet CFBundleIdentifier - com.apple.ScriptEditor.id.Uninstall-Old-Jalview--optional + com.apple.ScriptEditor.id.Uninstall-Old-Jalview CFBundleInfoDictionaryVersion 6.0 CFBundleName - Uninstall Old Jalview (optional) + Uninstall Old Jalview CFBundlePackageType APPL CFBundleShortVersionString @@ -29,6 +29,28 @@ LSRequiresCarbon + NSAppleEventsUsageDescription + This script needs to control other applications to run. + NSAppleMusicUsageDescription + This script needs access to your music to run. + NSCalendarsUsageDescription + This script needs access to your calendars to run. + NSCameraUsageDescription + This script needs access to your camera to run. + NSContactsUsageDescription + This script needs access to your contacts to run. + NSHomeKitUsageDescription + This script needs access to your HomeKit Home to run. + NSMicrophoneUsageDescription + This script needs access to your microphone to run. + NSPhotoLibraryUsageDescription + This script needs access to your photos to run. + NSRemindersUsageDescription + This script needs access to your reminders to run. + NSSiriUsageDescription + This script needs access to Siri to run. + NSSystemAdministrationUsageDescription + This script needs access to administer this system to run. WindowState bundleDividerCollapsed @@ -36,7 +58,7 @@ bundlePositionOfDivider 0.0 dividerCollapsed - + eventLogLevel 2 name @@ -44,9 +66,9 @@ positionOfDivider 421 savedFrame - 20 1180 700 672 0 0 3360 1867 + 272 342 1754 910 0 0 3360 1867 selectedTab - description + result diff --git a/utils/install4j/Uninstall Old Jalview.app/Contents/MacOS/applet b/utils/install4j/Uninstall Old Jalview.app/Contents/MacOS/applet index 05e9c35..191894d 100755 Binary files a/utils/install4j/Uninstall Old Jalview.app/Contents/MacOS/applet and b/utils/install4j/Uninstall Old Jalview.app/Contents/MacOS/applet differ diff --git a/utils/install4j/Uninstall Old Jalview.app/Contents/Resources/Scripts/main.scpt b/utils/install4j/Uninstall Old Jalview.app/Contents/Resources/Scripts/main.scpt index 7afbebc..3147d89 100644 Binary files a/utils/install4j/Uninstall Old Jalview.app/Contents/Resources/Scripts/main.scpt and b/utils/install4j/Uninstall Old Jalview.app/Contents/Resources/Scripts/main.scpt differ diff --git a/utils/install4j/Uninstall Old Jalview.app/Contents/Resources/applet.rsrc b/utils/install4j/Uninstall Old Jalview.app/Contents/Resources/applet.rsrc index cf9920e..8e05928 100644 Binary files a/utils/install4j/Uninstall Old Jalview.app/Contents/Resources/applet.rsrc and b/utils/install4j/Uninstall Old Jalview.app/Contents/Resources/applet.rsrc differ diff --git a/utils/install4j/Uninstall Old Jalview.app/Contents/Resources/description.rtfd/TXT.rtf b/utils/install4j/Uninstall Old Jalview.app/Contents/Resources/description.rtfd/TXT.rtf index 76ac711..5f23fc5 100644 --- a/utils/install4j/Uninstall Old Jalview.app/Contents/Resources/description.rtfd/TXT.rtf +++ b/utils/install4j/Uninstall Old Jalview.app/Contents/Resources/description.rtfd/TXT.rtf @@ -1,4 +1,4 @@ -{\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf600 +{\rtf1\ansi\ansicpg1252\cocoartf1671\cocoasubrtf500 {\fonttbl} {\colortbl;\red255\green255\blue255;} {\*\expandedcolortbl;;} diff --git a/utils/install4j/Uninstall Old Jalview.app/Contents/_CodeSignature/CodeResources b/utils/install4j/Uninstall Old Jalview.app/Contents/_CodeSignature/CodeResources index 9e97319..04a1485 100644 --- a/utils/install4j/Uninstall Old Jalview.app/Contents/_CodeSignature/CodeResources +++ b/utils/install4j/Uninstall Old Jalview.app/Contents/_CodeSignature/CodeResources @@ -6,7 +6,7 @@ Resources/Scripts/main.scpt - fqUypmAyNT7kgykBjNqtdjMM1Mg= + KEuZnZPFR5wgwG/qEhXMd5yBoi4= Resources/applet.icns @@ -14,11 +14,11 @@ Resources/applet.rsrc - aTN+E9yPFzj2wRwcmefcTGGpQYM= + oLbJze+WI6mK9fT14HFV6EwFoEI= Resources/description.rtfd/TXT.rtf - O79gUM5bdy3TK5k10nzhees3tLA= + JdCHmFsejhMRQNi2CzUAg7xM/6Q= files2 @@ -27,11 +27,11 @@ hash - fqUypmAyNT7kgykBjNqtdjMM1Mg= + KEuZnZPFR5wgwG/qEhXMd5yBoi4= hash2 - EQiIOT1XOBWGSwXZlfTXIrxNy+61mjRDze6gR+e3c2U= + Y+OMztx129elZ3oX0uhaiMMNU87xhkEPVzSuhF528t0= Resources/applet.icns @@ -49,22 +49,22 @@ hash - aTN+E9yPFzj2wRwcmefcTGGpQYM= + oLbJze+WI6mK9fT14HFV6EwFoEI= hash2 - fQhBZ0v2JeXFde/OYcgUVYOfUcp426odn5rtdTkcdjc= + 6bi/D/GzKmLhXbbC8+OLEX9+44Au0XOyGRd+kfw6uzA= Resources/description.rtfd/TXT.rtf hash - O79gUM5bdy3TK5k10nzhees3tLA= + JdCHmFsejhMRQNi2CzUAg7xM/6Q= hash2 - qxVBcYejHswAjMa99pSek5Vgi52JP4dlQMTiIzbCkBs= + e8RCmynIiyJGwHTnWQowZeGP0OUnjjA6SQTvIzP7Hxs= diff --git a/utils/install4j/Uninstall Old Jalview.scpt b/utils/install4j/Uninstall Old Jalview.scpt index 7afbebc..3ab3516 100644 Binary files a/utils/install4j/Uninstall Old Jalview.scpt and b/utils/install4j/Uninstall Old Jalview.scpt differ diff --git a/utils/install4j/install4j_template.install4j b/utils/install4j/install4j_template.install4j index bec9829..d1c85e9 100644 --- a/utils/install4j/install4j_template.install4j +++ b/utils/install4j/install4j_template.install4j @@ -1,5 +1,5 @@ - + @@ -58,7 +58,7 @@ - + @@ -124,6 +124,7 @@ + @@ -157,6 +158,7 @@ + @@ -189,7 +191,7 @@ - + @@ -1123,7 +1125,7 @@ return console.askYesNo(message, true); - + jre @@ -1131,84 +1133,154 @@ return console.askYesNo(message, true); - .install4j + jre.jar - dist + .install4j - resource + $$GETDOWN_DIST_DIR$$ - getdown-launcher.jar + $$GETDOWN_ALT_DIR$$ - getdown-launcher-old.jar + $$GETDOWN_RESOURCE_DIR$$ - getdown-launcher-new.jar + getdown-launcher.jar - *.jarv + getdown-launcher-old.jar - gettingdown.lock + getdown-launcher-new.jar - *.log + *.jarv - *.txt + gettingdown.lock - *_new + *.log - digest.txt + *.txt - digest2.txt + *_new - getdown-launcher.jarv + digest.txt - launcher.log + digest2.txt + getdown-launcher.jarv + + + + + getdown-launcher-new.jarv + + + + + channel_launch.jvl + + + + + launcher.log + + + + proxy.txt + + + META-INF + + + + + install/getdown-launcher.jar + + + + + install/getdown.txt + + + + + install/build_properties + + + + + build_properties + + + + + install + + + + + dist + + + + + release + + + + + alt + + + + + resource + + @@ -1537,7 +1609,7 @@ return console.askYesNo(message, true); - + 255 @@ -1567,19 +1639,21 @@ return console.askYesNo(message, true); icon:${installer:sys.installerApplicationMode}_header.png + + - 0 + 5 - 1 - 1 + + - 0 + 20 - 0 + 10 @@ -1661,16 +1735,17 @@ return console.askYesNo(message, true); - + false + 3 - 5 + 8 - 5 +