From: soares Date: Tue, 12 Nov 2019 20:24:45 +0000 (+0000) Subject: JAL-3210 merge. j2sclasslist_jmol seems to be removed X-Git-Tag: Release_2_11_4_0~45^2~18^2~57 X-Git-Url: http://source.jalview.org/gitweb/?a=commitdiff_plain;h=09020de409b5dce834dc59fc1b94e24c653eac0f;p=jalview.git JAL-3210 merge. j2sclasslist_jmol seems to be removed --- 09020de409b5dce834dc59fc1b94e24c653eac0f diff --cc build.gradle index 4080744,535f3b9..ae93e40 --- a/build.gradle +++ b/build.gradle @@@ -1812,268 -1674,14 +1812,268 @@@ DEBUG: ${eclipseDebug } inputs.dir("${jalviewDir}/${sourceDir}") - outputs.dir("${jalviewDir}/${jalviewjsTransferSiteJSDir}") - outputs.upToDateWhen( { file("${jalviewDir}/${jalviewjsTransferSiteJSDir}${jalviewjs_server_resource}").exists() } ) + outputs.dir("${jalviewDir}/${jalviewjsTransferSiteJsDir}") + outputs.upToDateWhen( { file("${jalviewDir}/${jalviewjsTransferSiteJsDir}${jalviewjs_server_resource}").exists() } ) +} + + +def jalviewjsCallCore(String name, FileCollection list, String prefixFile, String suffixFile, String jsfile, String zjsfile, File logOutFile, Boolean logOutConsole) { + + def stdout = new ByteArrayOutputStream() + def stderr = new ByteArrayOutputStream() + + def coreFile = file(jsfile) + def msg = "" + msg = "Creating core for ${name}...\nGenerating ${jsfile}" + println(msg) + logOutFile.createNewFile() + logOutFile.append(msg+"\n") + + def coreTop = file(prefixFile) + def coreBottom = file(suffixFile) + coreFile.getParentFile().mkdirs() + coreFile.createNewFile() + coreFile.write( coreTop.text ) + list.each { + f -> + if (f.exists()) { + def t = f.text + t.replaceAll("Clazz\\.([^_])","Clazz_${1}") + coreFile.append( t ) + } else { + msg = "...file '"+f.getPath()+"' does not exist, skipping" + println(msg) + logOutFile.append(msg+"\n") + } + } + coreFile.append( coreBottom.text ) + + msg = "Generating ${zjsfile}" + println(msg) + logOutFile.append(msg+"\n") + def logOutFOS = new FileOutputStream(logOutFile, true) // true == append + def logErrFOS = logOutFOS + + javaexec { + classpath = files(["${jalviewDir}/tools/closure_compiler.jar"]) + args = [ "--js", jsfile, "--js_output_file", zjsfile ] + + msg = "\nRunning '"+commandLine.join(' ')+"'\n" + println(msg) + logOutFile.append(msg+"\n") + + if (logOutConsole) { + standardOutput = new org.apache.tools.ant.util.TeeOutputStream( + new org.apache.tools.ant.util.TeeOutputStream( + logOutFOS, + stdout), + standardOutput) + errorOutput = new org.apache.tools.ant.util.TeeOutputStream( + new org.apache.tools.ant.util.TeeOutputStream( + logErrFOS, + stderr), + errorOutput) + } else { + standardOutput = new org.apache.tools.ant.util.TeeOutputStream( + logOutFOS, + stdout) + errorOutput = new org.apache.tools.ant.util.TeeOutputStream( + logErrFOS, + stderr) + } + } + msg = "--" + println(msg) + logOutFile.append(msg+"\n") +} + + +task jalviewjsBuildAllCores { + group "JalviewJS" + description "Build the core js lib closures listed in the classlists dir" + dependsOn jalviewjsTranspile + dependsOn jalviewjsTransferUnzipSwingJs + + def j2sDir = "${jalviewDir}/${jalviewjsTransferSiteJsDir}/${jalviewjs_j2s_subdir}" + def swingJ2sDir = "${jalviewDir}/${jalviewjsTransferSiteSwingJsDir}/${jalviewjs_j2s_subdir}" + def libJ2sDir = "${jalviewDir}/${jalviewjsTransferSiteLibDir}/${jalviewjs_j2s_subdir}" + def jsDir = "${jalviewDir}/${jalviewjsTransferSiteSwingJsDir}/${jalviewjs_js_subdir}" + def outputDir = "${jalviewDir}/${jalviewjsTransferSiteCoreDir}/${jalviewjs_j2s_subdir}/core" + def prefixFile = "${jsDir}/core/coretop2.js" + def suffixFile = "${jsDir}/core/corebottom2.js" + + inputs.file prefixFile + inputs.file suffixFile + + def classlistFiles = [] + // add the classlists found int the jalviewjs_classlists_dir + fileTree(dir: "${jalviewDir}/${jalviewjs_classlists_dir}", include: "*.txt").each { + file -> + def name = file.getName() - ".txt" + classlistFiles += [ + 'file': file, + 'name': name + ] + } + + // _jmol and _jalview cores. Add any other peculiar classlist.txt files here - classlistFiles += [ 'file': file("${jalviewDir}/${jalviewjs_classlist_jmol}"), 'name': "_jvjmol" ] ++ //classlistFiles += [ 'file': file("${jalviewDir}/${jalviewjs_classlist_jmol}"), 'name': "_jvjmol" ] + classlistFiles += [ 'file': file("${jalviewDir}/${jalviewjs_classlist_jalview}"), 'name': jalviewjsJalviewCoreName ] + + jalviewjsCoreClasslists = [] + + classlistFiles.each { + hash -> + + def file = hash['file'] + if (! file.exists()) { + println("...classlist file '"+file.getPath()+"' does not exist, skipping") + return false // this is a "continue" in groovy .each closure + } + def name = hash['name'] + if (name == null) { + name = file.getName() - ".txt" + } + + def filelist = [] + file.eachLine { + line -> + filelist += line + } + def list = fileTree(dir: j2sDir, includes: filelist) + + def jsfile = "${outputDir}/core${name}.js" + def zjsfile = "${outputDir}/core${name}.z.js" + + jalviewjsCoreClasslists += [ + 'jsfile': jsfile, + 'zjsfile': zjsfile, + 'list': list, + 'name': name + ] + + inputs.file(file) + inputs.files(list) + outputs.file(jsfile) + outputs.file(zjsfile) + } + + // _stevesoft core. add any cores without a classlist here (and the inputs and outputs) + def stevesoftClasslistName = "_stevesoft" + def stevesoftClasslist = [ + 'jsfile': "${outputDir}/core${stevesoftClasslistName}.js", + 'zjsfile': "${outputDir}/core${stevesoftClasslistName}.z.js", + 'list': fileTree(dir: j2sDir, include: "com/stevesoft/pat/**/*.js"), + 'name': stevesoftClasslistName + ] + jalviewjsCoreClasslists += stevesoftClasslist + inputs.files(stevesoftClasslist['list']) + outputs.file(stevesoftClasslist['jsfile']) + outputs.file(stevesoftClasslist['zjsfile']) + + // _all core + def allClasslistName = "_all" + def allJsFiles = fileTree(dir: j2sDir, include: "**/*.js") + //allJsFiles += fileTree(dir: libJ2sDir, include: "**/*.js") + //allJsFiles += fileTree(dir: swingJ2sDir, include: "**/*.js") + def allClasslist = [ + 'jsfile': "${outputDir}/core${allClasslistName}.js", + 'zjsfile': "${outputDir}/core${allClasslistName}.z.js", + 'list': allJsFiles, + 'name': allClasslistName + ] + jalviewjsCoreClasslists += allClasslist + inputs.files(allClasslist['list']) + outputs.file(allClasslist['jsfile']) + outputs.file(allClasslist['zjsfile']) + + doFirst { + def logOutFile = file("${jalviewDirAbsolutePath}/${jalviewjsBuildDir}/${jalviewjs_j2s_closure_stdout}") + logOutFile.getParentFile().mkdirs() + logOutFile.createNewFile() + logOutFile.write(getDate("yyyy-MM-dd HH:mm:ss")+" jalviewjsBuildAllCores\n----\n") + + jalviewjsCoreClasslists.each { + jalviewjsCallCore(it.name, it.list, prefixFile, suffixFile, it.jsfile, it.zjsfile, logOutFile, jalviewjs_j2s_to_console.equals("true")) + } + } + +} + + +def jalviewjsPublishCoreTemplate(String coreName, String templateName, File inputFile, String outputFile) { + copy { + from inputFile + into file(outputFile).getParentFile() + rename { filename -> + if (filename.equals(inputFile.getName())) { + return file(outputFile).getName() + } + return null + } + filter(ReplaceTokens, + beginToken: '_', + endToken: '_', + tokens: [ + 'MAIN': '"'+mainClass+'"', + 'CODE': "null", + 'NAME': jalviewjsJalviewTemplateName+" [core ${coreName}]", + 'COREKEY': jalviewjs_core_key, + 'CORENAME': coreName + ] + ) + } } -// this Copy version of TransferSite will delete anything else in the target dir -task jalviewjsCopyTransferSite(type: Copy) { + +task jalviewjsPublishCoreTemplates { + dependsOn jalviewjsBuildAllCores + def inputFileName = "${jalviewDir}/${j2s_coretemplate_html}" + def inputFile = file(inputFileName) + def outputDir = "${jalviewDir}/${jalviewjsTransferSiteCoreDir}" + + def outputFiles = [] + jalviewjsCoreClasslists.each { cl -> + def outputFile = "${outputDir}/${jalviewjsJalviewTemplateName}_${cl.name}.html" + cl['outputfile'] = outputFile + outputFiles += outputFile + } + + doFirst { + jalviewjsCoreClasslists.each { cl -> + jalviewjsPublishCoreTemplate(cl.name, jalviewjsJalviewTemplateName, inputFile, cl.outputfile) + } + } + inputs.file(inputFile) + outputs.files(outputFiles) +} + + +task jalviewjsSyncCore (type: Sync) { + dependsOn jalviewjsBuildAllCores + dependsOn jalviewjsPublishCoreTemplates + def inputFiles = fileTree(dir: "${jalviewDir}/${jalviewjsTransferSiteCoreDir}") + def outputDir = "${jalviewDir}/${jalviewjsSiteDir}" + + from inputFiles + into outputDir + def outputFiles = [] + rename { filename -> + outputFiles += "${outputDir}/${filename}" + null + } + preserve { + include "**" + } + outputs.files outputFiles + inputs.files inputFiles +} + + +// this Copy version of TransferSiteJs will delete anything else in the target dir +task jalviewjsCopyTransferSiteJs(type: Copy) { dependsOn jalviewjsTranspile - from "${jalviewDir}/${jalviewjsTransferSiteJSDir}" + from "${jalviewDir}/${jalviewjsTransferSiteJsDir}" into "${jalviewDir}/${jalviewjsSiteDir}" } diff --cc gradle.properties index d268369,fe03c9c..784970c --- a/gradle.properties +++ b/gradle.properties @@@ -155,9 -155,6 +155,8 @@@ jalviewjs_swingjs_zip = swingjs/SwingJS jalviewjs_j2s_plugin = swingjs/net.sf.j2s.core.jar jalviewjs_libjs_dir = utils/jalviewjs/libjs jalviewjs_site_resource_dir = utils/jalviewjs/site-resources +jalviewjs_classlists_dir = utils/jalviewjs/classlists - jalviewjs_classlist_jmol = utils/jalviewjs/_j2sclasslist_jmol.txt +jalviewjs_classlist_jalview = utils/jalviewjs/_j2sclasslist.txt jalviewjs_j2s_settings = .j2s #jalviewjs_eclipse_workspace = ~/tmp/eclipse-workspace # these 3 files/dirs found in build/jalviewjs