JAL-3541 2g heap for clover xml and clover html - remove verbose on xml generation...
[jalview.git] / build.gradle
index 861fa21..2067782 100644 (file)
@@ -8,7 +8,7 @@ import groovy.transform.ExternalizeMethods
 
 buildscript {
   dependencies {
-    classpath 'org.openclover:clover:4.3.1'
+    classpath 'org.openclover:clover:4.4.1'
     classpath 'org.apache.commons:commons-compress:1.18'
   }
 }
@@ -61,6 +61,9 @@ ext {
 
     case "BUILD":
     // TODO: get bamboo build artifact URL for getdown artifacts
+    getdown_channel_base = bamboo_channelbase
+    getdown_channel_name = bamboo_planKey + '/'+JAVA_VERSION
+    getdown_app_base = bamboo_channelbase + '/'+ bamboo_planKey + bamboo_getdown_channel_suffix + '/'+JAVA_VERSION
     getdown_app_dir = getdown_app_dir_alt
     buildProperties = jalviewDir + "/" + classesDir +"/" + buildPropertiesFile
     break
@@ -269,7 +272,7 @@ sourceSets {
     compileClasspath = files( sourceSets.test.java.outputDir )
 
     if (use_clover) {
-      compileClasspath += sourceSets.clover.compileClasspath
+      compileClasspath = sourceSets.clover.compileClasspath
     } else {
       compileClasspath += files(sourceSets.main.java.outputDir)
     }
@@ -284,8 +287,8 @@ sourceSets {
 // clover bits
 dependencies {
   if (use_clover) {
-    cloverCompile 'org.openclover:clover:4.3.1'
-    testCompile 'org.openclover:clover:4.3.1'
+    cloverCompile 'org.openclover:clover:4.4.1'
+    testCompile 'org.openclover:clover:4.4.1'
   }
 }
 
@@ -449,7 +452,7 @@ eclipse {
 
 task cloverInstr() {
   // only instrument source, we build test classes as normal
-  inputs.files files (sourceSets.main.allJava) // , fileTree(dir:"$jalviewDir/$testSourceDir", include: ["**/*.java"]))
+  inputs.files files (sourceSets.main.allJava,sourceSets.test.allJava) // , fileTree(dir:"$jalviewDir/$testSourceDir", include: ["**/*.java"]))
   outputs.dir cloverInstrDir
 
   doFirst {
@@ -466,25 +469,35 @@ task cloverInstr() {
 }
 
 
+task cloverReportHTML (type: JavaExec) {
+    inputs.dir "${buildDir}/clover"
+    outputs.dir "${reportsDir}/clover"
+
+    classpath configurations.cloverRuntime
+    maxHeapSize "2g"
+    main = "com.atlassian.clover.reporters.html.HtmlReporter"
+    args "--initstring", "${buildDir}/clover/clover.db",
+    "-o", "${reportsDir}/clover"
+}
+
+task cloverReportXML (type: JavaExec) {
+    inputs.dir "${buildDir}/clover"
+    outputs.dir "${reportsDir}/clover"
+    maxHeapSize "2g"
+    classpath configurations.cloverRuntime
+    main = "com.atlassian.clover.reporters.xml.XMLReporter"
+    args "--initstring", "${buildDir}/clover/clover.db", "-o", "${reportsDir}/clover/clover.xml"
+}
 task cloverReport {
   group = "Verification"
-    description = "Createst the Clover report"
+    description = "Creates 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"]
-    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()
-    com.atlassian.clover.reporters.xml.XMLReporter.runReport(args)
-  }
+    dependsOn cloverReportXML
+    dependsOn cloverReportHTML
 }
 
 // end clover bits
@@ -638,7 +651,7 @@ task copyHelp(type: Copy) {
     exclude '**/*.gif'
       exclude '**/*.jpg'
       exclude '**/*.png'
-      filter(ReplaceTokens, beginToken: '$$', endToken: '$$', tokens: ['Version-Rel': JALVIEW_VERSION])
+      filter(ReplaceTokens, beginToken: '$$', endToken: '$$', tokens: ['Version-Rel': JALVIEW_VERSION,'Year-Rel': getDate("yyyy")])
   }
   from(inputDir) {
     include '**/*.gif'
@@ -1170,61 +1183,88 @@ clean {
 task sourceDist (type: Tar) {
   
   def VERSION_UNDERSCORES = JALVIEW_VERSION.replaceAll("\\.", "_")
-  archiveFileName = project.name + "_" + VERSION_UNDERSCORES + ".tar.gz"
+  def outputFileName = project.name + "_" + VERSION_UNDERSCORES + ".tar.gz"
+  // cater for buildship < 3.1 [3.0.1 is max version in eclipse 2018-09]
+  try {
+    archiveFileName = outputFileName
+  } catch (Exception e) {
+    archiveName = outputFileName
+  }
   
   compression Compression.GZIP
   
-  from jalviewDir
   into project.name
-   
-  exclude (".*")
-  exclude ("**/.*")
-  exclude ("*.class")
-  exclude ("**/*.class")
-  include (eclipse_extra_jdt_prefs_file)
-  include ("AUTHORS")
-  include ("CITATION")
-  include ("FEATURETODO")
-  include ("JAVA-11-README")
-  include ("FEATURETODO")
-  include ("LICENSE")
-  include ("README")
-  include ("RELEASE")
-  include ("THIRDPARTYLIBS")
-  include ("build.gradle")
-  include ("gradle.properties")
-  include ("$sourceDir/*.java")
-  include ("$sourceDir/**/*.java")
-  include ("$sourceDir/**/*.cdr")
-  include ("$j8libDir/**/*.jar")
-  include ("$j11libDir/**/*.jar")
-  include ("$resourceDir/**/*")
-  include ("$helpDir/**/*")
-  include ("$schemaDir/**/*")
-  include ("$utilsDir/**/*")
-  include ("$docDir/**/*")
-  include ("$examplesDir/**/*")
-  include ("getdown/**/*")
-  //include ("jalview-jalopy.xml")
-  //include ("JalviewApplet.jpx")
-  //include ("JalviewX.jpx")
-  //include ("nbbuild.xml")
-  //include ("nbproject/genfiles.properties")
-  //include ("nbproject/project.properties")
-  //include ("nbproject/project.xml")
-  
-  exclude ("appletlib")
-  exclude ("**/*locales")
-  exclude ("*locales/**")
-  exclude ("utils/InstallAnywhere")
-  exclude (libDir)
-  exclude (getdown_files_dir)
-  exclude (getdown_website_dir)
 
-  // exluding these as not using jars as modules yet
-  exclude ("$j11modDir/**/*.jar")
+  def EXCLUDE_FILES=[
+    "build/*",
+    "bin/*",
+    "test-output/",
+    "test-reports",
+    "tests",
+    "clover*/*",
+    ".*",
+    "benchmarking/*",
+    "**/.*",
+    "*.class",
+    "**/*.class","$j11modDir/**/*.jar","appletlib","**/*locales",
+    "*locales/**",
+    "utils/InstallAnywhere",
+    "**/*.log",
+  ] 
+  def PROCESS_FILES=[
+    "AUTHORS",
+    "CITATION",
+    "FEATURETODO",
+    "JAVA-11-README",
+    "FEATURETODO",
+    "LICENSE",
+    "**/README",
+    "RELEASE",
+    "THIRDPARTYLIBS",
+    "TESTNG",
+    "build.gradle",
+    "gradle.properties",
+    "**/*.java",
+    "**/*.html",
+    "**/*.xml",
+    "**/*.gradle",
+    "**/*.groovy",
+    "**/*.properties",
+    "**/*.perl",
+    "**/*.sh",
+  ]
+  def INCLUDE_FILES=[
+    ".settings/org.eclipse.jdt.core.jalview.prefs",
+  ]
 
+  from(jalviewDir) {
+    exclude (EXCLUDE_FILES)
+    include (PROCESS_FILES)
+    filter(ReplaceTokens, beginToken: '$$', endToken: '$$', tokens: ['Version-Rel': JALVIEW_VERSION,'Year-Rel': getDate("yyyy")])
+  }
+  from(jalviewDir) {
+    exclude (EXCLUDE_FILES)
+    exclude (PROCESS_FILES)
+    exclude ("appletlib")
+    exclude ("**/*locales")
+    exclude ("*locales/**")
+    exclude ("utils/InstallAnywhere")
+
+    exclude (getdown_files_dir)
+    exclude (getdown_website_dir)
+
+    // exluding these as not using jars as modules yet
+    exclude ("$j11modDir/**/*.jar")
+  }
+  from(jalviewDir) {
+    include(INCLUDE_FILES)
+  }
+//  from (jalviewDir) {
+//    // explicit includes for stuff that seemed to not get included
+//    include(fileTree("test/**/*."))
+//    exclude(EXCLUDE_FILES)
+//    exclude(PROCESS_FILES)
+//  }
 }
 
 task helppages  {
@@ -1232,5 +1272,5 @@ task helppages  {
   dependsOn pubhtmlhelp
   
   inputs.dir("$classes/$helpDir")
-  outputs.file("build/distribution/help/helpTOC.html")
+  outputs.dir("$helpOutputDir")
 }