1 --- build.gradle.orig 2024-05-22 09:14:54.544344630 +0200
2 +++ build.gradle 2024-05-22 09:45:40.809642258 +0200
7 - id "com.diffplug.gradle.spotless" version "3.28.0"
8 - id 'com.github.johnrengelman.shadow' version '6.0.0'
9 + id "com.diffplug.spotless" version "6.18.0"
10 + id 'com.github.johnrengelman.shadow' version '8.1.1'
11 id 'com.install4j.gradle' version '10.0.3'
12 id 'com.dorongold.task-tree' version '2.1.1' // only needed to display task dependency tree with gradle task1 [task2 ...] taskTree
13 id 'com.palantir.git-version' version '0.13.0' apply false
15 testDir = string("${jalviewDir}/${bareTestSourceDir}")
17 classesDir = string("${jalviewDir}/${classes_dir}")
18 + destinationDirectory = file(classesDir)
21 useClover = clover.equals("true")
26 - outputDir = file(classesDir)
27 + destinationDirectory = file(classesDir)
31 srcDirs = [ resourcesBuildDir, docBuildDir, helpBuildDir ]
34 - compileClasspath = files(sourceSets.main.java.outputDir)
35 + compileClasspath = files(sourceSets.main.java.destinationDirectory)
36 compileClasspath += fileTree(dir: "${jalviewDir}/${libDir}", include: ["*.jar"])
38 runtimeClasspath = compileClasspath
42 srcDirs cloverInstrDir
43 - outputDir = cloverClassesDir
44 + destinationDirectory = cloverClassesDir
48 srcDirs = sourceSets.main.resources.srcDirs
51 - compileClasspath = files( sourceSets.clover.java.outputDir )
52 + compileClasspath = files( sourceSets.clover.java.destinationDirectory )
53 //compileClasspath += files( testClassesDir )
54 compileClasspath += fileTree(dir: "${jalviewDir}/${libDir}", include: ["*.jar"])
55 compileClasspath += fileTree(dir: "${jalviewDir}/${clover_lib_dir}", include: ["*.jar"])
60 - outputDir = file(testClassesDir)
61 + destinationDirectory = file(testClassesDir)
65 srcDirs = useClover ? sourceSets.clover.resources.srcDirs : sourceSets.main.resources.srcDirs
68 - compileClasspath = files( sourceSets.test.java.outputDir )
69 + compileClasspath = files( sourceSets.test.java.destinationDirectory )
70 compileClasspath += useClover ? sourceSets.clover.compileClasspath : sourceSets.main.compileClasspath
71 compileClasspath += fileTree(dir: "${jalviewDir}/${utils_dir}/testnglibs", include: ["**/*.jar"])
77 - //defaultOutputDir = sourceSets.main.java.outputDir
78 + //defaultOutputDir = sourceSets.main.java.destinationDirectory
79 configurations.each{ c->
80 if (c.isCanBeResolved()) {
81 minusConfigurations += [c]
83 HashMap<String, Boolean> alreadyAddedLibPath = new HashMap<>();
85 sourceSets.main.compileClasspath.findAll { it.name.endsWith(".jar") }.any {
86 - //don't want to add outputDir as eclipse is using its own output dir in bin/main
87 + //don't want to add destinationDirectory as eclipse is using its own output dir in bin/main
88 if (it.isDirectory() || ! it.exists()) {
89 // don't add dirs to classpath, especially if they don't exist
90 return false // groovy "continue" in .any closure
94 sourceSets.test.compileClasspath.findAll { it.name.endsWith(".jar") }.any {
95 - //no longer want to add outputDir as eclipse is using its own output dir in bin/main
96 + //no longer want to add destinationDirectory as eclipse is using its own output dir in bin/main
97 if (it.isDirectory() || ! it.exists()) {
98 // don't add dirs to classpath
99 return false // groovy "continue" in .any closure
100 @@ -1094,7 +1095,7 @@
104 - delete sourceSets.main.java.outputDir
105 + delete sourceSets.main.java.destinationDirectory
109 @@ -1102,7 +1103,7 @@
111 dependsOn cleanClover
113 - delete sourceSets.test.java.outputDir
114 + delete sourceSets.test.java.destinationDirectory
118 @@ -1194,7 +1195,7 @@
120 task copyDocs(type: Copy) {
121 def inputDir = "${jalviewDir}/${doc_dir}"
122 - def outputDir = "${docBuildDir}/${doc_dir}"
123 + def destinationDirectory = "${docBuildDir}/${doc_dir}"
127 @@ -1215,10 +1216,10 @@
132 + into destinationDirectory
135 - outputs.dir(outputDir)
136 + outputs.dir(destinationDirectory)
140 @@ -1283,15 +1284,15 @@
144 - if (m = line =~ /^date:\s*(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2})/) {
145 + if (m == line =~ /^date:\s*(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2})/) {
146 map["date"] = new Date().parse("yyyy-MM-dd HH:mm:ss", m[0][1])
147 - } else if (m = line =~ /^date:\s*(\d{4}-\d{2}-\d{2})/) {
148 + } else if (m == line =~ /^date:\s*(\d{4}-\d{2}-\d{2})/) {
149 map["date"] = new Date().parse("yyyy-MM-dd", m[0][1])
150 - } else if (m = line =~ /^channel:\s*(\S+)/) {
151 + } else if (m == line =~ /^channel:\s*(\S+)/) {
152 map["channel"] = m[0][1]
153 - } else if (m = line =~ /^version:\s*(\S+)/) {
154 + } else if (m == line =~ /^version:\s*(\S+)/) {
155 map["version"] = m[0][1]
156 - } else if (m = line =~ /^\s*([^:]+)\s*:\s*(\S.*)/) {
157 + } else if (m == line =~ /^\s*([^:]+)\s*:\s*(\S.*)/) {
158 map[ m[0][1] ] = m[0][2]
160 if (dateOnly && map["date"] != null) {
161 @@ -1350,7 +1351,7 @@
162 def inSection = false
163 changes.eachLine { line ->
165 - if (m = line =~ /^##([^#].*)$/) {
166 + if (m == line =~ /^##([^#].*)$/) {
168 changesHugo += "</div>\n\n"
170 @@ -1360,7 +1361,7 @@
171 section = section.replaceAll(/[^a-z0-9_\-]/, "")
172 changesHugo += "<div class=\"${section}\">\n\n"
174 - } else if (m = line =~ /^(\s*-\s*)<!--([^>]+)-->(.*?)(<br\/?>)?\s*$/) {
175 + } else if (m == line =~ /^(\s*-\s*)<!--([^>]+)-->(.*?)(<br\/?>)?\s*$/) {
176 def comment = m[0][2].trim()
178 comment = comment.replaceAll('"', """)
179 @@ -1430,7 +1431,7 @@
180 def sectionName = null
181 content.eachLine { line ->
183 - if (m = line =~ /^##([^#].*)$/) {
184 + if (m == line =~ /^##([^#].*)$/) {
185 if (sectionName != null) {
186 sections[sectionName] = sectionContent
188 @@ -1453,7 +1454,7 @@
190 task copyHelp(type: Copy) {
191 def inputDir = helpSourceDir
192 - def outputDir = "${helpBuildDir}/${help_dir}"
193 + def destinationDirectory = "${helpBuildDir}/${help_dir}"
197 @@ -1478,14 +1479,15 @@
202 + into destinationDirectory
205 outputs.files(helpFile)
206 - outputs.dir(outputDir)
207 + outputs.dir(destinationDirectory)
212 task releasesTemplates {
214 description "Recreate whatsNew.html and releases.html from markdown files and templates in help"
215 @@ -1562,9 +1564,9 @@
217 def rContentProcessed = ""
218 rContent.eachLine { line ->
219 - if (lm = line =~ /^(\s*-)(\s*<!--[^>]*?-->)(.*)$/) {
220 + if (lm == line =~ /^(\s*-)(\s*<!--[^>]*?-->)(.*)$/) {
221 line = "${lm[0][1]}${lm[0][3]}${lm[0][2]}"
222 - } else if (lm = line =~ /^###([^#]+.*)$/) {
223 + } else if (lm == line =~ /^###([^#]+.*)$/) {
224 line = "_${lm[0][1].trim()}_"
226 rContentProcessed += line + "\n"
227 @@ -1622,13 +1624,14 @@
228 outputs.file(whatsnewHtmlFile)
233 task copyResources(type: Copy) {
235 description = "Copy (and make text substitutions in) the resources dir to the build area"
237 def inputDir = resourceDir
238 - def outputDir = resourcesBuildDir
239 + def destinationDirectory = resourcesBuildDir
243 @@ -1649,10 +1652,10 @@
248 + into destinationDirectory
251 - outputs.dir(outputDir)
252 + outputs.dir(destinationDirectory)
255 task copyChannelResources(type: Copy) {
256 @@ -1683,6 +1686,7 @@
258 task createBuildProperties(type: WriteProperties) {
259 dependsOn copyResources
260 + dependsOn copyChannelResources
262 description = "Create the ${buildProperties} file"
264 @@ -1706,6 +1710,7 @@
266 task buildIndices(type: JavaExec) {
268 + //dependsOn releasesTemplates
269 classpath = sourceSets.main.compileClasspath
270 main = "com.sun.java.help.search.Indexer"
271 workingDir = "${helpBuildDir}/${help_dir}"
272 @@ -1733,7 +1738,7 @@
273 dependsOn buildResources
276 - dependsOn releasesTemplates
277 + //dependsOn releasesTemplates
278 dependsOn convertMdFiles
279 dependsOn buildIndices
281 @@ -1742,6 +1747,14 @@
282 compileJava.dependsOn prepare
283 run.dependsOn compileJava
284 compileTestJava.dependsOn compileJava
285 +compileTestJava.dependsOn buildIndices
286 +processResources.dependsOn copyChannelResources
287 +processResources.dependsOn copyResources
288 +processResources.dependsOn createBuildProperties
289 +processResources.dependsOn copyDocs
290 +processResources.dependsOn convertMdFiles
291 +processResources.dependsOn copyHelp
292 +processResources.dependsOn buildIndices
296 @@ -2037,6 +2050,7 @@
297 /* END of test tasks results summary */
301 task compileLinkCheck(type: JavaCompile) {
303 classpath = files("${jalviewDir}/${utils_dir}")
304 @@ -2071,6 +2085,7 @@
305 inputs.dir(helpBuildDir)
306 outputs.file(helpLinksCheckerOutFile)
311 // import the pubhtmlhelp target
312 @@ -2085,10 +2100,14 @@
316 +// block of dependencies
317 +//compileTestJava.dependsOn compileLinkCheck //
318 +//copyChannelResources.dependsOn compileLinkCheck //
319 +//convertMdFiles.dependsOn compileLinkCheck //
323 - dependsOn linkCheck
324 + dependsOn //linkCheck
327 attributes "Main-Class": main_class,
328 @@ -2098,8 +2117,8 @@
329 "Implementation-Version": JALVIEW_VERSION
332 - def outputDir = "${jalviewDir}/${package_dir}"
333 - destinationDirectory = file(outputDir)
334 + def destinationDirectory = "${jalviewDir}/${package_dir}"
335 + destinationDirectory = file(destinationDirectory)
336 archiveFileName = rootProject.name+".jar"
337 duplicatesStrategy "EXCLUDE"
339 @@ -2110,11 +2129,11 @@
343 - inputs.dir(sourceSets.main.java.outputDir)
344 + inputs.dir(sourceSets.main.java.destinationDirectory)
345 sourceSets.main.resources.srcDirs.each{ dir ->
348 - outputs.file("${outputDir}/${archiveFileName}")
349 + outputs.file("${destinationDirectory}/${archiveFileName}")
353 @@ -2207,7 +2226,7 @@
354 // this mainClassName is mandatory but gets ignored due to manifest created in doFirst{}. Set the Main-Class as an attribute in launcherJar instead
355 mainClassName = shadow_jar_main_class
357 - classifier = "all-"+JALVIEW_VERSION+"-j"+JAVA_VERSION
358 + archiveClassifier = "all-"+JALVIEW_VERSION+"-j"+JAVA_VERSION
362 @@ -3388,10 +3407,10 @@
364 def inputFiles = fileTree(dir: "${jalviewDir}/${jalviewjs_eclipse_dropins_dir}", include: "*.jar")
365 inputFiles += file("${jalviewDir}/${jalviewjsJ2sPlugin}")
366 - def outputDir = "${jalviewDir}/${jalviewjsBuildDir}/${jalviewjs_eclipse_tmp_dropins_dir}"
367 + def destinationDirectory = "${jalviewDir}/${jalviewjsBuildDir}/${jalviewjs_eclipse_tmp_dropins_dir}"
371 + into destinationDirectory
375 @@ -3499,13 +3518,13 @@
376 dependsOn jalviewjsTransferUnzipAllLibs
377 def inputFiles = fileTree(dir: "${jalviewDir}/${jalviewjsTransferSiteLibDir}")
378 inputFiles += fileTree(dir: "${jalviewDir}/${jalviewjsTransferSiteSwingJsDir}")
379 - def outputDir = "${jalviewDir}/${jalviewjsSiteDir}"
380 + def destinationDirectory = "${jalviewDir}/${jalviewjsSiteDir}"
384 + into destinationDirectory
387 - outputFiles += "${outputDir}/${filename}"
388 + outputFiles += "${destinationDirectory}/${filename}"
392 @@ -3524,13 +3543,13 @@
393 dependsOn buildResources
395 def inputFiles = fileTree(dir: resourcesBuildDir)
396 - def outputDir = "${jalviewDir}/${jalviewjsSiteDir}/${jalviewjs_j2s_subdir}"
397 + def destinationDirectory = "${jalviewDir}/${jalviewjsSiteDir}/${jalviewjs_j2s_subdir}"
401 + into destinationDirectory
404 - outputFiles += "${outputDir}/${filename}"
405 + outputFiles += "${destinationDirectory}/${filename}"
409 @@ -3543,13 +3562,13 @@
411 task jalviewjsSyncSiteResources (type: Sync) {
412 def inputFiles = fileTree(dir: "${jalviewDir}/${jalviewjs_site_resource_dir}")
413 - def outputDir = "${jalviewDir}/${jalviewjsSiteDir}"
414 + def destinationDirectory = "${jalviewDir}/${jalviewjsSiteDir}"
418 + into destinationDirectory
421 - outputFiles += "${outputDir}/${filename}"
422 + outputFiles += "${destinationDirectory}/${filename}"
426 @@ -3563,13 +3582,13 @@
427 task jalviewjsSyncBuildProperties (type: Sync) {
428 dependsOn createBuildProperties
429 def inputFiles = [file(buildProperties)]
430 - def outputDir = "${jalviewDir}/${jalviewjsSiteDir}/${jalviewjs_j2s_subdir}"
431 + def destinationDirectory = "${jalviewDir}/${jalviewjsSiteDir}/${jalviewjs_j2s_subdir}"
435 + into destinationDirectory
438 - outputFiles += "${outputDir}/${filename}"
439 + outputFiles += "${destinationDirectory}/${filename}"
443 @@ -3788,7 +3807,7 @@
444 def swingJ2sDir = "${jalviewDir}/${jalviewjsTransferSiteSwingJsDir}/${jalviewjs_j2s_subdir}"
445 def libJ2sDir = "${jalviewDir}/${jalviewjsTransferSiteLibDir}/${jalviewjs_j2s_subdir}"
446 def jsDir = "${jalviewDir}/${jalviewjsTransferSiteSwingJsDir}/${jalviewjs_js_subdir}"
447 - def outputDir = "${jalviewDir}/${jalviewjsTransferSiteCoreDir}/${jalviewjs_j2s_subdir}/core"
448 + def destinationDirectory = "${jalviewDir}/${jalviewjsTransferSiteCoreDir}/${jalviewjs_j2s_subdir}/core"
449 def prefixFile = "${jsDir}/core/coretop2.js"
450 def suffixFile = "${jsDir}/core/corebottom2.js"
452 @@ -3832,8 +3851,8 @@
454 def list = fileTree(dir: j2sDir, includes: filelist)
456 - def jsfile = "${outputDir}/core${name}.js"
457 - def zjsfile = "${outputDir}/core${name}.z.js"
458 + def jsfile = "${destinationDirectory}/core${name}.js"
459 + def zjsfile = "${destinationDirectory}/core${name}.z.js"
461 jalviewjsCoreClasslists += [
463 @@ -3851,8 +3870,8 @@
464 // _stevesoft core. add any cores without a classlist here (and the inputs and outputs)
465 def stevesoftClasslistName = "_stevesoft"
466 def stevesoftClasslist = [
467 - 'jsfile': "${outputDir}/core${stevesoftClasslistName}.js",
468 - 'zjsfile': "${outputDir}/core${stevesoftClasslistName}.z.js",
469 + 'jsfile': "${destinationDirectory}/core${stevesoftClasslistName}.js",
470 + 'zjsfile': "${destinationDirectory}/core${stevesoftClasslistName}.z.js",
471 'list': fileTree(dir: j2sDir, include: "com/stevesoft/pat/**/*.js"),
472 'name': stevesoftClasslistName
474 @@ -3885,8 +3904,8 @@
478 - 'jsfile': "${outputDir}/core${allClasslistName}.js",
479 - 'zjsfile': "${outputDir}/core${allClasslistName}.z.js",
480 + 'jsfile': "${destinationDirectory}/core${allClasslistName}.js",
481 + 'zjsfile': "${destinationDirectory}/core${allClasslistName}.z.js",
483 'name': allClasslistName
485 @@ -3939,11 +3958,11 @@
486 dependsOn jalviewjsBuildAllCores
487 def inputFileName = "${jalviewDir}/${j2s_coretemplate_html}"
488 def inputFile = file(inputFileName)
489 - def outputDir = "${jalviewDir}/${jalviewjsTransferSiteCoreDir}"
490 + def destinationDirectory = "${jalviewDir}/${jalviewjsTransferSiteCoreDir}"
493 jalviewjsCoreClasslists.each { cl ->
494 - def outputFile = "${outputDir}/${jalviewjsJalviewTemplateName}_${cl.name}.html"
495 + def outputFile = "${destinationDirectory}/${jalviewjsJalviewTemplateName}_${cl.name}.html"
496 cl['outputfile'] = outputFile
497 outputFiles += outputFile
499 @@ -3962,13 +3981,13 @@
500 dependsOn jalviewjsBuildAllCores
501 dependsOn jalviewjsPublishCoreTemplates
502 def inputFiles = fileTree(dir: "${jalviewDir}/${jalviewjsTransferSiteCoreDir}")
503 - def outputDir = "${jalviewDir}/${jalviewjsSiteDir}"
504 + def destinationDirectory = "${jalviewDir}/${jalviewjsSiteDir}"
508 + into destinationDirectory
511 - outputFiles += "${outputDir}/${filename}"
512 + outputFiles += "${destinationDirectory}/${filename}"