import groovy.transform.ExternalizeMethods
import groovy.util.XmlParser
import groovy.xml.XmlUtil
+
import com.vladsch.flexmark.util.ast.Node
import com.vladsch.flexmark.html.HtmlRenderer
import com.vladsch.flexmark.parser.Parser
return o == null ? "" : o.toString()
}
+
def overrideProperties(String propsFileName, boolean output = false) {
if (propsFileName == null) {
return
// datestamp
buildDate = new Date().format("yyyyMMdd")
-
// essentials
bareSourceDir = string(source_dir)
sourceDir = string("${jalviewDir}/${bareSourceDir}")
//cloverTestClassesDir = cloverClassesDir
cloverDb = string("${cloverBuildDir}/clover.db")
+
testSourceDir = useClover ? cloverTestInstrDir : testDir
testClassesDir = useClover ? cloverTestClassesDir : "${jalviewDir}/${test_output_dir}"
install4jDMGDSStore = "${install4j_images_dir}/${install4j_dmg_ds_store}"
install4jDMGBackgroundImage = "${install4j_images_dir}/${install4j_dmg_background}"
install4jInstallerName = "${jalview_name} Non-Release Installer"
- install4jExecutableName = jalview_name.replaceAll("[^\\w]+", "_").toLowerCase()
+ install4jExecutableName = install4j_executable_name
install4jExtraScheme = "jalviewx"
install4jMacIconsFile = string("${install4j_images_dir}/${install4j_mac_icons_file}")
install4jWindowsIconsFile = string("${install4j_images_dir}/${install4j_windows_icons_file}")
.replaceAll("_*-_*", "-") // collapse _-_
.toLowerCase()
+ getdownWrapperLink = install4jUnixApplicationFolder // e.g. "jalview_local"
getdownAppDir = string("${getdownWebsiteDir}/${getdownAppDistDir}")
//getdownJ11libDir = "${getdownWebsiteDir}/${getdown_j11lib_dir}"
getdownResourceDir = string("${getdownWebsiteDir}/${getdown_resource_dir}")
'--add-modules', j11modules
]
*/
- } else if (JAVA_VERSION.equals("12") || JAVA_VERSION.equals("13")) {
- JAVA_INTEGER_VERSION = JAVA_VERSION
- libDir = j11libDir
- libDistDir = j11libDir
- compile_source_compatibility = JAVA_VERSION
- compile_target_compatibility = JAVA_VERSION
+ } else if (JAVA_VERSION.equals("17")) {
+ JAVA_INTEGER_VERSION = string("17")
+ libDir = j17libDir
+ libDistDir = j17libDir
+ compile_source_compatibility = 17
+ compile_target_compatibility = 17
getdownAltJavaMinVersion = string(findProperty("getdown_alt_java11_min_version"))
getdownAltJavaMaxVersion = string(findProperty("getdown_alt_java11_max_version"))
getdownAltMultiJavaLocation = string(findProperty("getdown_alt_java11_txt_multi_java_location"))
- eclipseJavaRuntimeName = string("JavaSE-11")
+ eclipseJavaRuntimeName = string("JavaSE-17")
/* compile without modules -- using classpath libraries
additional_compiler_args += [
'--module-path', modules_compileClasspath.asPath,
helpBuildDir = string("${resourceBuildDir}/help_build")
docBuildDir = string("${resourceBuildDir}/doc_build")
+
if (buildProperties == null) {
buildProperties = string("${resourcesBuildDir}/${build_properties_file}")
}
srcDirs = [ resourcesBuildDir, docBuildDir, helpBuildDir ]
}
+
compileClasspath = files(sourceSets.main.java.outputDir)
compileClasspath += fileTree(dir: "${jalviewDir}/${libDir}", include: ["*.jar"])
def htmlFilePath = mdFile.getPath().replaceAll(/\..*?$/, ".html")
htmlFiles.add(file(htmlFilePath))
}
+
outputs.files(htmlFiles)
}
outputs.file(outputFile)
}
-
task buildIndices(type: JavaExec) {
dependsOn copyHelp
classpath = sourceSets.main.compileClasspath
dependsOn createBuildProperties
}
+
task prepare {
dependsOn buildResources
dependsOn copyDocs
compileJava.dependsOn prepare
run.dependsOn compileJava
//run.dependsOn prepare
-
-
//testReportDirName = "test-reports" // note that test workingDir will be $jalviewDir
test {
dependsOn prepare
}
+
+
task compileLinkCheck(type: JavaCompile) {
options.fork = true
classpath = files("${jalviewDir}/${utils_dir}")
args = [ "${helpBuildDir}/${help_dir}", "-nointernet" ]
def outFOS = new FileOutputStream(helpLinksCheckerOutFile, false) // false == don't append
- def errFOS = outFOS
standardOutput = new org.apache.tools.ant.util.TeeOutputStream(
outFOS,
- standardOutput)
+ System.out)
errorOutput = new org.apache.tools.ant.util.TeeOutputStream(
outFOS,
- errorOutput)
+ System.err)
inputs.dir(helpBuildDir)
outputs.file(helpLinksCheckerOutFile)
}
-
// import the pubhtmlhelp target
ant.properties.basedir = "${jalviewDir}"
ant.properties.helpBuildDir = "${helpBuildDir}/${help_dir}"
def outputDir = "${jalviewDir}/${package_dir}"
destinationDirectory = file(outputDir)
archiveFileName = rootProject.name+".jar"
+ duplicatesStrategy "EXCLUDE"
exclude "cache*/**"
exclude "*.jar"
dependsOn clean
}
-
shadowJar {
group = "distribution"
description = "Create a single jar file with all dependency libraries merged. Can be run with java -jar"
attributes "Implementation-Version": JALVIEW_VERSION,
"Application-Name": install4jApplicationName
}
+ duplicatesStrategy "INCLUDE"
mainClassName = shadow_jar_main_class
mergeServiceFiles()
classifier = "all-"+JALVIEW_VERSION+"-j"+JAVA_VERSION
}
}
- def getdownWrapperScripts = [ getdown_bash_wrapper_script, getdown_powershell_wrapper_script ]
+ def getdownWrapperScripts = [ getdown_bash_wrapper_script, getdown_powershell_wrapper_script, getdown_batch_wrapper_script ]
getdownWrapperScripts.each{ script ->
- def s = file( "${jalviewDir}/utils/getdown/${script}" )
+ def s = file( "${jalviewDir}/utils/getdown/${getdown_wrapper_script_dir}/${script}" )
if (s.exists()) {
copy {
from s
- into getdownWebsiteDir
+ into "${getdownWebsiteDir}/${getdown_wrapper_script_dir}"
}
- getdownTextString += "resource = ${script}\n"
+ getdownTextString += "resource = ${getdown_wrapper_script_dir}/${script}\n"
}
}
}
}
+
// write install4j file
install4jConfFile.text = XmlUtil.serialize(install4jConfigXml)
}
'WINDOWS_APPLICATION_ID': install4jWinApplicationId,
'MACOS_DMG_DS_STORE': install4jDMGDSStore,
'MACOS_DMG_BG_IMAGE': install4jDMGBackgroundImage,
- 'MACOS_DMG_WRAPPER_LINK': getdown_bash_wrapper_script,
- 'MACOS_WRAPPER_SCRIPT': getdown_bash_wrapper_script,
+ 'WRAPPER_LINK': getdownWrapperLink,
+ 'BASH_WRAPPER_SCRIPT': getdown_bash_wrapper_script,
+ 'POWERSHELL_WRAPPER_SCRIPT': getdown_powershell_wrapper_script,
+ 'WRAPPER_SCRIPT_BIN_DIR': getdown_wrapper_script_dir,
'INSTALLER_NAME': install4jInstallerName,
'INSTALL4J_UTILS_DIR': install4j_utils_dir,
'GETDOWN_WEBSITE_DIR': getdown_website_dir,
'WINDOWS_ICONS_FILE': install4jWindowsIconsFile,
'PNG_ICON_FILE': install4jPngIconFile,
'BACKGROUND': install4jBackground,
-
]
//println("INSTALL4J VARIABLES:")
println("Using projectFile "+projectFile)
if (!disableNotarization) { println("Will notarize OSX App DMG") }
}
- verbose=true
+ //verbose=true
inputs.dir(getdownWebsiteDir)
inputs.file(install4jConfFile)
dependsOn createBuildProperties
dependsOn convertMdFiles
-
def VERSION_UNDERSCORES = JALVIEW_VERSION.replaceAll("\\.", "_")
def outputFileName = "${project.name}_${VERSION_UNDERSCORES}.tar.gz"
archiveFileName = outputFileName
// exclude(EXCLUDE_FILES)
// exclude(PROCESS_FILES)
// }
-
from(file(buildProperties).getParent()) {
include(file(buildProperties).getName())
rename(file(buildProperties).getName(), "build_properties")
line.replaceAll("^INSTALLATION=.*\$","INSTALLATION=Source Release"+" git-commit\\\\:"+gitHash+" ["+gitBranch+"]")
})
}
-
}
property(jalviewjs_j2s_alt_file_property_config, jalviewjs_j2s_alt_file_property)
}
}
-
-
task jalviewjsSetEclipseWorkspace {
def propKey = "jalviewjs_eclipse_workspace"
def propVal = null
preserve {
include "**"
}
+ // should this be exclude really ?
+ duplicatesStrategy "INCLUDE"
outputs.files outputFiles
inputs.files inputFiles
}
new org.apache.tools.ant.util.TeeOutputStream(
logOutFOS,
stdout),
- standardOutput)
+ System.out)
errorOutput = new org.apache.tools.ant.util.TeeOutputStream(
new org.apache.tools.ant.util.TeeOutputStream(
logErrFOS,
stderr),
- errorOutput)
+ System.err)
} else {
standardOutput = new org.apache.tools.ant.util.TeeOutputStream(
logOutFOS,
new org.apache.tools.ant.util.TeeOutputStream(
logErrFOS,
stderr),
- errorOutput)
+ System.err)
} else {
standardOutput = new org.apache.tools.ant.util.TeeOutputStream(
logOutFOS,
def htmlFile = "${jalviewDirAbsolutePath}/${filename}"
doLast {
- SimpleHttpFileServerFactory factory = new SimpleHttpFileServerFactory()
+ def factory
+ try {
+ def f = Class.forName("org.gradle.plugins.javascript.envjs.http.simple.SimpleHttpFileServerFactory")
+ factory = f.newInstance()
+ } catch (ClassNotFoundException e) {
+ throw new GradleException("Unable to create SimpleHttpFileServerFactory")
+ }
def port = Integer.valueOf(jalviewjs_server_port)
def start = port
def running = false