JAL-3210 merge. j2sclasslist_jmol seems to be removed
authorsoares <bsoares@dundee.ac.uk>
Tue, 12 Nov 2019 20:24:45 +0000 (20:24 +0000)
committersoares <bsoares@dundee.ac.uk>
Tue, 12 Nov 2019 20:24:45 +0000 (20:24 +0000)
1  2 
build.gradle
gradle.properties

diff --cc 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}"
  }
  
@@@ -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