diff --git a/build.gradle b/build.gradle index bb01104de0..b0288512c6 100644 --- a/build.gradle +++ b/build.gradle @@ -103,8 +103,8 @@ allprojects { // Documentation required libraries groovyDoc 'org.fusesource.jansi:jansi:2.4.0' - groovyDoc "org.apache.groovy:groovy-groovydoc:4.0.27" - groovyDoc "org.apache.groovy:groovy-ant:4.0.27" + groovyDoc "org.apache.groovy:groovy-groovydoc:5.0.0-beta-1" + groovyDoc "org.apache.groovy:groovy-ant:5.0.0-beta-1" } test { diff --git a/modules/nextflow/build.gradle b/modules/nextflow/build.gradle index f36382ec7b..f28f476670 100644 --- a/modules/nextflow/build.gradle +++ b/modules/nextflow/build.gradle @@ -25,12 +25,12 @@ dependencies { api(project(':nf-commons')) api(project(':nf-httpfs')) api(project(':nf-lang')) - api "org.apache.groovy:groovy:4.0.27" - api "org.apache.groovy:groovy-nio:4.0.27" - api "org.apache.groovy:groovy-xml:4.0.27" - api "org.apache.groovy:groovy-json:4.0.27" - api "org.apache.groovy:groovy-templates:4.0.27" - api "org.apache.groovy:groovy-yaml:4.0.27" + api "org.apache.groovy:groovy:5.0.0-beta-1" + api "org.apache.groovy:groovy-nio:5.0.0-beta-1" + api "org.apache.groovy:groovy-xml:5.0.0-beta-1" + api "org.apache.groovy:groovy-json:5.0.0-beta-1" + api "org.apache.groovy:groovy-templates:5.0.0-beta-1" + api "org.apache.groovy:groovy-yaml:5.0.0-beta-1" api "org.slf4j:jcl-over-slf4j:2.0.16" api "org.slf4j:jul-to-slf4j:2.0.16" api "org.slf4j:log4j-over-slf4j:2.0.16" @@ -57,7 +57,7 @@ dependencies { testImplementation 'org.subethamail:subethasmtp:3.1.7' testImplementation (project(':nf-lineage')) // test configuration - testFixturesApi ("org.apache.groovy:groovy-test:4.0.27") { exclude group: 'org.apache.groovy' } + testFixturesApi ("org.apache.groovy:groovy-test:5.0.0-beta-1") { exclude group: 'org.apache.groovy' } testFixturesApi ("org.objenesis:objenesis:3.4") testFixturesApi ("net.bytebuddy:byte-buddy:1.14.17") testFixturesApi ("org.spockframework:spock-core:2.3-groovy-4.0") { exclude group: 'org.apache.groovy' } diff --git a/modules/nextflow/src/main/groovy/nextflow/Session.groovy b/modules/nextflow/src/main/groovy/nextflow/Session.groovy index d45f26c528..4c728605af 100644 --- a/modules/nextflow/src/main/groovy/nextflow/Session.groovy +++ b/modules/nextflow/src/main/groovy/nextflow/Session.groovy @@ -1301,7 +1301,7 @@ class Session implements ISession { def fetchContainers() { def result = [:] - if( config.process instanceof Map ) { + if( config.process instanceof Map ) { /* * look for `container` definition at process level diff --git a/modules/nextflow/src/main/groovy/nextflow/cli/CmdLog.groovy b/modules/nextflow/src/main/groovy/nextflow/cli/CmdLog.groovy index 66d88980d1..63b9a70063 100644 --- a/modules/nextflow/src/main/groovy/nextflow/cli/CmdLog.groovy +++ b/modules/nextflow/src/main/groovy/nextflow/cli/CmdLog.groovy @@ -220,6 +220,7 @@ class CmdLog extends CmdBase implements CacheBase { /** * Wrap a {@link TraceRecord} instance as a {@link Map} or a {@link Binding} object */ + @Slf4j private static class TraceAdaptor extends Binding { static private int MAX_LINES = 100 @@ -299,7 +300,7 @@ class CmdLog extends CmdBase implements CacheBase { def result = new StringBuilder() path.withReader { reader -> String line - while( (line=reader.readLine()) && c++> executorsMap - private Map,? extends Executor> executors = new HashMap<>() + private Map,Executor> executors = new HashMap<>() - @PackageScope Map,? extends Executor> getExecutors() { executors } + @PackageScope Map,Executor> getExecutors() { executors } ExecutorFactory() { init0(Collections.>emptyList()) diff --git a/modules/nextflow/src/main/groovy/nextflow/extension/CombineOp.groovy b/modules/nextflow/src/main/groovy/nextflow/extension/CombineOp.groovy index 8ef6765faf..ad408fbd19 100644 --- a/modules/nextflow/src/main/groovy/nextflow/extension/CombineOp.groovy +++ b/modules/nextflow/src/main/groovy/nextflow/extension/CombineOp.groovy @@ -75,7 +75,7 @@ class CombineOp { } CombineOp setPivot( pivot ) { - this.pivot = (List)(pivot instanceof List ? pivot : [pivot]) + this.pivot = (List)(pivot instanceof List ? pivot : [pivot]) return this } diff --git a/modules/nextflow/src/main/groovy/nextflow/extension/DumpOp.groovy b/modules/nextflow/src/main/groovy/nextflow/extension/DumpOp.groovy index 24116f63c4..e971ef9558 100644 --- a/modules/nextflow/src/main/groovy/nextflow/extension/DumpOp.groovy +++ b/modules/nextflow/src/main/groovy/nextflow/extension/DumpOp.groovy @@ -76,8 +76,8 @@ class DumpOp { DataflowWriteChannel apply() { if( !isEnabled() ) { - if( source instanceof DataflowWriteChannel ) - return (DataflowWriteChannel)source + if( source instanceof DataflowWriteChannel dwc ) + return dwc throw new IllegalArgumentException("Illegal dump operator source channel") } diff --git a/modules/nextflow/src/main/groovy/nextflow/extension/PublishOp.groovy b/modules/nextflow/src/main/groovy/nextflow/extension/PublishOp.groovy index 12eaeb0c4b..6905be2fa1 100644 --- a/modules/nextflow/src/main/groovy/nextflow/extension/PublishOp.groovy +++ b/modules/nextflow/src/main/groovy/nextflow/extension/PublishOp.groovy @@ -61,10 +61,10 @@ class PublishOp { this.source = source this.publishOpts = opts this.path = opts.path as String - if( opts.pathResolver instanceof Closure ) - this.pathResolver = opts.pathResolver as Closure - if( opts.index ) - this.indexOpts = new IndexOpts(session.outputDir, opts.index as Map) + if( opts.pathResolver instanceof Closure cl ) + this.pathResolver = cl + if( opts.index instanceof Map indexOpts ) + this.indexOpts = new IndexOpts(session.outputDir, indexOpts) } boolean getComplete() { complete } @@ -140,7 +140,7 @@ class PublishOp { // if the closure contained publish statements, use // the resulting mapping to create a saveAs closure final mapping = dsl.build() - if( mapping instanceof Map ) + if( mapping instanceof Map ) return { filename -> outputDir.resolve(mapping[filename]) } // if the resolved publish path is a string, resolve it @@ -160,11 +160,11 @@ class PublishOp { if( source instanceof Path ) { publish0(source, target) } - else if( source instanceof Collection ) { + else if( source instanceof Collection ) { if( !target.endsWith('/') ) throw new ScriptRuntimeException("Invalid publish target '${target}' -- should be a directory (end with a `/`) when publishing a collection of files") for( final path : source ) - publish0(path, target) + publish0((Path) path, target) } else { throw new ScriptRuntimeException("Publish source should be a file or collection of files, but received a ${source.class.name}") @@ -267,7 +267,7 @@ class PublishOp { return value.collect { el -> if( el instanceof Path ) return normalizePath(el, targetResolver) - if( el instanceof Collection ) + if( el instanceof Collection ) return normalizePaths(el, targetResolver) return el } @@ -279,7 +279,7 @@ class PublishOp { .collectEntries { k, v -> if( v instanceof Path ) return Map.entry(k, normalizePath(v, targetResolver)) - if( v instanceof Collection ) + if( v instanceof Collection ) return Map.entry(k, normalizePaths(v, targetResolver)) return Map.entry(k, v) } @@ -304,7 +304,7 @@ class PublishOp { // if the target resolver is a closure, use it to transform // the source filename to the target path - if( targetResolver instanceof Closure ) + if( targetResolver instanceof Closure ) return (targetResolver.call(path.getName()) as Path).normalize() // if the target resolver is a directory, resolve the source diff --git a/modules/nextflow/src/main/groovy/nextflow/extension/SplitOp.groovy b/modules/nextflow/src/main/groovy/nextflow/extension/SplitOp.groovy index db0e58462e..e9e00e7c07 100644 --- a/modules/nextflow/src/main/groovy/nextflow/extension/SplitOp.groovy +++ b/modules/nextflow/src/main/groovy/nextflow/extension/SplitOp.groovy @@ -94,7 +94,7 @@ class SplitOp { multiSplit = true pairedEnd = true } - if( params.elem instanceof List ) { + if( params.elem instanceof List ) { indexes = params.elem as List multiSplit = true } diff --git a/modules/nextflow/src/main/groovy/nextflow/file/DirListener.groovy b/modules/nextflow/src/main/groovy/nextflow/file/DirListener.groovy index 2bac280727..bfb047e12a 100644 --- a/modules/nextflow/src/main/groovy/nextflow/file/DirListener.groovy +++ b/modules/nextflow/src/main/groovy/nextflow/file/DirListener.groovy @@ -49,7 +49,7 @@ interface DirListener { * @param events the list of events to watch * @return */ - default WatchEvent.Kind[] stringToWatchEvents(String events = null){ + default WatchEvent.Kind[] stringToWatchEvents(String events) { def result = [] if( !events ) result << ENTRY_CREATE diff --git a/modules/nextflow/src/main/groovy/nextflow/processor/PublishDir.groovy b/modules/nextflow/src/main/groovy/nextflow/processor/PublishDir.groovy index b82e227e60..4a14b90736 100644 --- a/modules/nextflow/src/main/groovy/nextflow/processor/PublishDir.groovy +++ b/modules/nextflow/src/main/groovy/nextflow/processor/PublishDir.groovy @@ -151,7 +151,7 @@ class PublishDir { void setPath( def value ) { final resolved = value instanceof Closure ? value.call() : value - if( resolved instanceof String || resolved instanceof GString ) + if( resolved instanceof CharSequence ) nullPathWarn = checkNull(resolved.toString()) this.path = FileHelper.toCanonicalPath(resolved) } @@ -169,7 +169,7 @@ class PublishDir { ? tags.call() : tags - if( result instanceof Map ) + if( result instanceof Map ) return result throw new IllegalArgumentException("Invalid publishDir tags attribute: $tags") diff --git a/modules/nextflow/src/main/groovy/nextflow/processor/TaskConfig.groovy b/modules/nextflow/src/main/groovy/nextflow/processor/TaskConfig.groovy index 4d8871e092..76d675375b 100644 --- a/modules/nextflow/src/main/groovy/nextflow/processor/TaskConfig.groovy +++ b/modules/nextflow/src/main/groovy/nextflow/processor/TaskConfig.groovy @@ -80,8 +80,8 @@ class TaskConfig extends LazyMap implements Cloneable { this.cache.clear() // set the binding context for 'ext' map - if( target.ext instanceof LazyMap ) - (target.ext as LazyMap).binding = context + if( getTarget().ext instanceof LazyMap ext ) + ext.binding = context // set the this object in the task context in order to allow task properties to be resolved in process script context.put(TASK_CONTEXT_PROPERTY_NAME, this) @@ -133,7 +133,7 @@ class TaskConfig extends LazyMap implements Cloneable { } final getRawValue(String key) { - return target.get(key) + return getTarget().get(key) } def get( String key ) { @@ -142,11 +142,11 @@ class TaskConfig extends LazyMap implements Cloneable { def result if( key == 'ext' ) { - if( target.containsKey(key) ) - result = target.get(key) + if( getTarget().containsKey(key) ) + result = getTarget().get(key) else { result = new LazyMap() - target.put(key, result) + getTarget().put(key, result) } } else @@ -167,7 +167,7 @@ class TaskConfig extends LazyMap implements Cloneable { super.setDynamic(flag) } } - target.put(key, value) + getTarget().put(key, value) } else if( key == 'ext' && value instanceof Map ) { super.put( key, new LazyMap(value) ) @@ -181,8 +181,8 @@ class TaskConfig extends LazyMap implements Cloneable { if( super.isDynamic() ) return true - if( target.ext instanceof LazyMap ) - return (target.ext as LazyMap).isDynamic() + if( getTarget().ext instanceof LazyMap ext ) + return ext.isDynamic() return false } @@ -551,7 +551,7 @@ class TaskConfig extends LazyMap implements Cloneable { */ protected boolean getWhenGuard(boolean defValue=true) throws FailedGuardException { - final code = target.get(NextflowDSLImpl.PROCESS_WHEN) + final code = getTarget().get(NextflowDSLImpl.PROCESS_WHEN) if( code == null ) return defValue @@ -571,7 +571,7 @@ class TaskConfig extends LazyMap implements Cloneable { protected TaskClosure getStubBlock() { - final code = target.get(NextflowDSLImpl.PROCESS_STUB) + final code = getTarget().get(NextflowDSLImpl.PROCESS_STUB) if( !code ) return null if( code instanceof TaskClosure ) diff --git a/modules/nextflow/src/main/groovy/nextflow/processor/TaskProcessor.groovy b/modules/nextflow/src/main/groovy/nextflow/processor/TaskProcessor.groovy index c4860deaeb..d0fb7f60fd 100644 --- a/modules/nextflow/src/main/groovy/nextflow/processor/TaskProcessor.groovy +++ b/modules/nextflow/src/main/groovy/nextflow/processor/TaskProcessor.groovy @@ -1409,7 +1409,7 @@ class TaskProcessor { if( value instanceof Path ) { files.add((Path)value) } - else if( value instanceof Collection ) { + else if( value instanceof Collection ) { files.addAll(value) } else if( value != null ) { diff --git a/modules/nextflow/src/main/groovy/nextflow/scm/AssetManager.groovy b/modules/nextflow/src/main/groovy/nextflow/scm/AssetManager.groovy index b35f1a06d2..895c722c14 100644 --- a/modules/nextflow/src/main/groovy/nextflow/scm/AssetManager.groovy +++ b/modules/nextflow/src/main/groovy/nextflow/scm/AssetManager.groovy @@ -1006,7 +1006,7 @@ class AssetManager { return List filter = [] - if( modules instanceof List ) { + if( modules instanceof List ) { filter.addAll(modules) } else if( modules instanceof String ) { diff --git a/modules/nextflow/src/main/groovy/nextflow/script/ScriptBinding.groovy b/modules/nextflow/src/main/groovy/nextflow/script/ScriptBinding.groovy index 9ef4999905..393c4191a9 100644 --- a/modules/nextflow/src/main/groovy/nextflow/script/ScriptBinding.groovy +++ b/modules/nextflow/src/main/groovy/nextflow/script/ScriptBinding.groovy @@ -70,7 +70,8 @@ class ScriptBinding extends WorkflowBinding { // create and populate args args = new ArrayList<>() if( vars.args ) { - if( !(vars.args instanceof List) ) throw new IllegalArgumentException("ScriptBinding 'args' must be a List value") + if( !(vars.args instanceof List) ) + throw new IllegalArgumentException("ScriptBinding 'args' must be a List value") args.addAll((List)vars.args) } vars.put('args', args) @@ -78,7 +79,8 @@ class ScriptBinding extends WorkflowBinding { // create and populate args params = new ParamsMap() if( vars.params ) { - if( !(vars.params instanceof Map) ) throw new IllegalArgumentException("ScriptBinding 'params' must be a Map value") + if( !(vars.params instanceof Map) ) + throw new IllegalArgumentException("ScriptBinding 'params' must be a Map value") params.putAll((Map)vars.params) } vars.params = params @@ -203,6 +205,7 @@ class ScriptBinding extends WorkflowBinding { /** * Implements immutable params map */ + @Slf4j @CompileStatic static class ParamsMap implements Map { @@ -237,7 +240,7 @@ class ScriptBinding extends WorkflowBinding { final msg = "Access to undefined parameter `$key` -- Initialise it to a default value eg. `params.$key = some_value`" if( NF.isStrictMode() ) throw new AbortOperationException(msg) - log.warn1(msg, firstOnly: true) + log.warn1(msg) return null } return target.get(key) diff --git a/modules/nextflow/src/main/groovy/nextflow/trace/ResourcesAggregator.groovy b/modules/nextflow/src/main/groovy/nextflow/trace/ResourcesAggregator.groovy index 1851fcae99..baf1d872c1 100644 --- a/modules/nextflow/src/main/groovy/nextflow/trace/ResourcesAggregator.groovy +++ b/modules/nextflow/src/main/groovy/nextflow/trace/ResourcesAggregator.groovy @@ -65,7 +65,7 @@ class ResourcesAggregator { final summary = summaries[process] summary.names.each { String series -> // the task execution turn a triple - tasks << { return [ process, series, summary.compute(series)] } as Callable + tasks.add({ -> [process, series, summary.compute(series)] } as Callable) } // initialise the result entry result.put(process, new HashMap(10)) diff --git a/modules/nextflow/src/main/groovy/nextflow/util/SerializationHelper.groovy b/modules/nextflow/src/main/groovy/nextflow/util/SerializationHelper.groovy index 05bae4acfc..23c73ed9fa 100644 --- a/modules/nextflow/src/main/groovy/nextflow/util/SerializationHelper.groovy +++ b/modules/nextflow/src/main/groovy/nextflow/util/SerializationHelper.groovy @@ -97,7 +97,7 @@ class KryoHelper { if( v instanceof Class ) kryo.register(k,(Serializer)v.newInstance()) - else if( v instanceof Closure ) + else if( v instanceof Closure ) kryo.register(k, v.call(kryo)) else diff --git a/modules/nextflow/src/main/groovy/nextflow/util/SimpleAgent.groovy b/modules/nextflow/src/main/groovy/nextflow/util/SimpleAgent.groovy index 7b2bc12ee3..c8790e4d39 100644 --- a/modules/nextflow/src/main/groovy/nextflow/util/SimpleAgent.groovy +++ b/modules/nextflow/src/main/groovy/nextflow/util/SimpleAgent.groovy @@ -106,6 +106,7 @@ class SimpleAgent { } } + @Slf4j @CompileStatic private static class RetrieveValueClosure extends Closure { diff --git a/modules/nextflow/src/main/groovy/nextflow/util/ThreadPoolHelper.groovy b/modules/nextflow/src/main/groovy/nextflow/util/ThreadPoolHelper.groovy index d06addfa73..4cb078dd8c 100644 --- a/modules/nextflow/src/main/groovy/nextflow/util/ThreadPoolHelper.groovy +++ b/modules/nextflow/src/main/groovy/nextflow/util/ThreadPoolHelper.groovy @@ -61,13 +61,12 @@ class ThreadPoolHelper { } } - static protected int pending(ExecutorService pool) { - if( pool instanceof ThreadPoolExecutor) { - final p1 = ((ThreadPoolExecutor)pool) - return p1.getTaskCount() - p1.getCompletedTaskCount() + static protected long pending(ExecutorService pool) { + if( pool instanceof ThreadPoolExecutor tpe ) { + return tpe.getTaskCount() - tpe.getCompletedTaskCount() } - else if( pool instanceof ThreadContainer ) { - return pool.threadCount() + else if( pool instanceof ThreadContainer tc ) { + return tc.threadCount() } return -1 } diff --git a/modules/nf-commons/build.gradle b/modules/nf-commons/build.gradle index f5049bb4a0..c95383d6c6 100644 --- a/modules/nf-commons/build.gradle +++ b/modules/nf-commons/build.gradle @@ -26,8 +26,8 @@ sourceSets { dependencies { api "ch.qos.logback:logback-classic:1.5.16" - api "org.apache.groovy:groovy:4.0.27" - api "org.apache.groovy:groovy-nio:4.0.27" + api "org.apache.groovy:groovy:5.0.0-beta-1" + api "org.apache.groovy:groovy-nio:5.0.0-beta-1" api "commons-lang:commons-lang:2.6" api 'com.google.guava:guava:33.0.0-jre' api 'org.pf4j:pf4j:3.12.0' @@ -40,7 +40,7 @@ dependencies { testImplementation(testFixtures(project(":nextflow"))) testFixturesImplementation(project(":nextflow")) - testImplementation "org.apache.groovy:groovy-json:4.0.27" // needed by wiremock + testImplementation "org.apache.groovy:groovy-json:5.0.0-beta-1" // needed by wiremock testImplementation ('com.github.tomakehurst:wiremock:3.0.0-beta-1') { exclude module: 'groovy-all' } testImplementation ('com.github.tomjankes:wiremock-groovy:0.2.0') { exclude module: 'groovy-all' } } diff --git a/modules/nf-commons/src/main/nextflow/plugin/PluginSpec.groovy b/modules/nf-commons/src/main/nextflow/plugin/PluginSpec.groovy index 2aed3252f2..418f1b2d1c 100644 --- a/modules/nf-commons/src/main/nextflow/plugin/PluginSpec.groovy +++ b/modules/nf-commons/src/main/nextflow/plugin/PluginSpec.groovy @@ -19,15 +19,15 @@ package nextflow.plugin import com.google.common.hash.Hasher import groovy.transform.Canonical -import nextflow.util.CacheFunnel -import nextflow.util.CacheHelper +import groovy.transform.CompileStatic /** * Model a plugin Id and version * * @author Paolo Di Tommaso */ @Canonical -class PluginSpec implements CacheFunnel, Comparable { +@CompileStatic +class PluginSpec implements Comparable { /** * Plugin unique ID @@ -56,14 +56,6 @@ class PluginSpec implements CacheFunnel, Comparable { return new PluginSpec(id) } - @Override - Hasher funnel(Hasher hasher, CacheHelper.HashMode mode) { - hasher.putUnencodedChars(id) - if( version ) - hasher.putUnencodedChars(version) - return hasher - } - @Override String toString() { version ? "${id}@${version}" : id diff --git a/modules/nf-commons/src/main/nextflow/util/CacheFunnel.groovy b/modules/nf-commons/src/main/nextflow/util/CacheFunnel.groovy deleted file mode 100644 index 2fdcb7ba24..0000000000 --- a/modules/nf-commons/src/main/nextflow/util/CacheFunnel.groovy +++ /dev/null @@ -1,16 +0,0 @@ -package nextflow.util - -import com.google.common.hash.Hasher -import groovy.transform.CompileStatic -/** - * Interface to delegate cache hashing to - * a the implementing object - * - * @author Paolo Di Tommaso - */ -@CompileStatic -interface CacheFunnel { - - Hasher funnel(Hasher hasher, CacheHelper.HashMode mode) - -} diff --git a/modules/nf-commons/src/main/nextflow/util/CacheFunnel.java b/modules/nf-commons/src/main/nextflow/util/CacheFunnel.java new file mode 100644 index 0000000000..77e32e103f --- /dev/null +++ b/modules/nf-commons/src/main/nextflow/util/CacheFunnel.java @@ -0,0 +1,14 @@ +package nextflow.util; + +import com.google.common.hash.Hasher; +/** + * Interface to delegate cache hashing to + * a the implementing object + * + * @author Paolo Di Tommaso + */ +interface CacheFunnel { + + Hasher funnel(Hasher hasher, CacheHelper.HashMode mode); + +} diff --git a/modules/nf-commons/src/main/nextflow/util/CmdLineOptionMap.groovy b/modules/nf-commons/src/main/nextflow/util/CmdLineOptionMap.groovy index 6006001afc..2ca41c3aa7 100644 --- a/modules/nf-commons/src/main/nextflow/util/CmdLineOptionMap.groovy +++ b/modules/nf-commons/src/main/nextflow/util/CmdLineOptionMap.groovy @@ -14,7 +14,7 @@ import groovy.transform.ToString @CompileStatic @ToString(includes = 'options', includeFields = true) @EqualsAndHashCode(includes = 'options', includeFields = true) -class CmdLineOptionMap implements CacheFunnel { +class CmdLineOptionMap { final private Map> options = new LinkedHashMap>() final private static CmdLineOptionMap EMPTY = new CmdLineOptionMap() @@ -74,9 +74,4 @@ class CmdLineOptionMap implements CacheFunnel { } return "[${serialized.join(', ')}]" } - - @Override - Hasher funnel(Hasher hasher, CacheHelper.HashMode mode) { - return CacheHelper.hasher(hasher, options, mode) - } } diff --git a/modules/nf-httpfs/build.gradle b/modules/nf-httpfs/build.gradle index 8346770858..b483c7ad64 100644 --- a/modules/nf-httpfs/build.gradle +++ b/modules/nf-httpfs/build.gradle @@ -30,12 +30,12 @@ sourceSets { dependencies { api project(':nf-commons') api "ch.qos.logback:logback-classic:1.5.16" - api "org.apache.groovy:groovy:4.0.27" - api "org.apache.groovy:groovy-nio:4.0.27" + api "org.apache.groovy:groovy:5.0.0-beta-1" + api "org.apache.groovy:groovy-nio:5.0.0-beta-1" api("com.esotericsoftware.kryo:kryo:2.24.0") { exclude group: 'com.esotericsoftware.minlog', module: 'minlog' } /* testImplementation inherited from top gradle build file */ - testImplementation "org.apache.groovy:groovy-json:4.0.27" // needed by wiremock + testImplementation "org.apache.groovy:groovy-json:5.0.0-beta-1" // needed by wiremock testImplementation ('com.github.tomakehurst:wiremock:1.57') { exclude module: 'groovy-all' } testImplementation ('com.github.tomjankes:wiremock-groovy:0.2.0') { exclude module: 'groovy-all' } diff --git a/modules/nf-lang/build.gradle b/modules/nf-lang/build.gradle index 8a70a8aeca..12ee710257 100644 --- a/modules/nf-lang/build.gradle +++ b/modules/nf-lang/build.gradle @@ -18,8 +18,8 @@ plugins { } dependencies { - antlr 'me.sunlan:antlr4:4.13.2.6' - api 'org.apache.groovy:groovy:4.0.27' + antlr 'me.sunlan:antlr4:4.13.2.7' + api 'org.apache.groovy:groovy:5.0.0-beta-1' api 'org.pf4j:pf4j:3.12.0' testFixturesApi 'com.google.jimfs:jimfs:1.2' diff --git a/modules/nf-lineage/build.gradle b/modules/nf-lineage/build.gradle index 7931521290..f20179ded4 100644 --- a/modules/nf-lineage/build.gradle +++ b/modules/nf-lineage/build.gradle @@ -33,7 +33,7 @@ dependencies { api project(':nextflow') testImplementation(testFixtures(project(":nextflow"))) - testImplementation "org.apache.groovy:groovy:4.0.27" - testImplementation "org.apache.groovy:groovy-nio:4.0.27" + testImplementation "org.apache.groovy:groovy:5.0.0-beta-1" + testImplementation "org.apache.groovy:groovy-nio:5.0.0-beta-1" } diff --git a/plugins/nf-amazon/build.gradle b/plugins/nf-amazon/build.gradle index 46bc2c7b9d..ac3af22159 100644 --- a/plugins/nf-amazon/build.gradle +++ b/plugins/nf-amazon/build.gradle @@ -60,6 +60,6 @@ dependencies { testImplementation(testFixtures(project(":nextflow"))) testImplementation project(':nextflow') - testImplementation "org.apache.groovy:groovy:4.0.27" - testImplementation "org.apache.groovy:groovy-nio:4.0.27" + testImplementation "org.apache.groovy:groovy:5.0.0-beta-1" + testImplementation "org.apache.groovy:groovy-nio:5.0.0-beta-1" } diff --git a/plugins/nf-azure/build.gradle b/plugins/nf-azure/build.gradle index 4d1497f13d..9f2fefd4ff 100644 --- a/plugins/nf-azure/build.gradle +++ b/plugins/nf-azure/build.gradle @@ -53,6 +53,6 @@ dependencies { testImplementation(testFixtures(project(":nextflow"))) testImplementation project(':nextflow') - testImplementation "org.apache.groovy:groovy:4.0.27" - testImplementation "org.apache.groovy:groovy-nio:4.0.27" + testImplementation "org.apache.groovy:groovy:5.0.0-beta-1" + testImplementation "org.apache.groovy:groovy-nio:5.0.0-beta-1" } diff --git a/plugins/nf-cloudcache/build.gradle b/plugins/nf-cloudcache/build.gradle index 1efb6111dc..51c17d6553 100644 --- a/plugins/nf-cloudcache/build.gradle +++ b/plugins/nf-cloudcache/build.gradle @@ -35,7 +35,7 @@ dependencies { compileOnly 'org.pf4j:pf4j:3.12.0' testImplementation(testFixtures(project(":nextflow"))) - testImplementation "org.apache.groovy:groovy:4.0.27" - testImplementation "org.apache.groovy:groovy-nio:4.0.27" + testImplementation "org.apache.groovy:groovy:5.0.0-beta-1" + testImplementation "org.apache.groovy:groovy-nio:5.0.0-beta-1" } diff --git a/plugins/nf-codecommit/build.gradle b/plugins/nf-codecommit/build.gradle index 418677bec6..e7ff1eb972 100644 --- a/plugins/nf-codecommit/build.gradle +++ b/plugins/nf-codecommit/build.gradle @@ -42,6 +42,6 @@ dependencies { testImplementation(testFixtures(project(":nextflow"))) testImplementation project(':nextflow') - testImplementation "org.apache.groovy:groovy:4.0.27" - testImplementation "org.apache.groovy:groovy-nio:4.0.27" + testImplementation "org.apache.groovy:groovy:5.0.0-beta-1" + testImplementation "org.apache.groovy:groovy-nio:5.0.0-beta-1" } diff --git a/plugins/nf-console/build.gradle b/plugins/nf-console/build.gradle index 57cde86271..aca6e7aadb 100644 --- a/plugins/nf-console/build.gradle +++ b/plugins/nf-console/build.gradle @@ -38,13 +38,13 @@ dependencies { compileOnly 'org.pf4j:pf4j:3.12.0' api("org.apache.groovy:groovy-console:4.0.21-patch.2") { transitive=false } - api("org.apache.groovy:groovy-swing:4.0.27") { transitive=false } + api("org.apache.groovy:groovy-swing:5.0.0-beta-1") { transitive=false } // this is required by 'groovy-console' api("com.github.javaparser:javaparser-core:3.25.8") testImplementation(testFixtures(project(":nextflow"))) testImplementation project(':nextflow') - testImplementation "org.apache.groovy:groovy:4.0.27" - testImplementation "org.apache.groovy:groovy-nio:4.0.27" + testImplementation "org.apache.groovy:groovy:5.0.0-beta-1" + testImplementation "org.apache.groovy:groovy-nio:5.0.0-beta-1" } diff --git a/plugins/nf-google/build.gradle b/plugins/nf-google/build.gradle index 7f4317f657..7c8825e612 100644 --- a/plugins/nf-google/build.gradle +++ b/plugins/nf-google/build.gradle @@ -45,8 +45,8 @@ dependencies { api 'com.google.code.gson:gson:2.10.1' testImplementation(testFixtures(project(":nextflow"))) - testImplementation "org.apache.groovy:groovy:4.0.27" - testImplementation "org.apache.groovy:groovy-nio:4.0.27" + testImplementation "org.apache.groovy:groovy:5.0.0-beta-1" + testImplementation "org.apache.groovy:groovy-nio:5.0.0-beta-1" } test { diff --git a/plugins/nf-k8s/build.gradle b/plugins/nf-k8s/build.gradle index a81b45cff5..8941524f95 100644 --- a/plugins/nf-k8s/build.gradle +++ b/plugins/nf-k8s/build.gradle @@ -41,8 +41,8 @@ dependencies { api 'org.bouncycastle:bcpkix-jdk18on:1.78.1' testImplementation(testFixtures(project(":nextflow"))) - testImplementation "org.apache.groovy:groovy:4.0.27" - testImplementation "org.apache.groovy:groovy-nio:4.0.27" + testImplementation "org.apache.groovy:groovy:5.0.0-beta-1" + testImplementation "org.apache.groovy:groovy-nio:5.0.0-beta-1" } test { diff --git a/plugins/nf-tower/build.gradle b/plugins/nf-tower/build.gradle index 74197720db..31cfe59da1 100644 --- a/plugins/nf-tower/build.gradle +++ b/plugins/nf-tower/build.gradle @@ -37,9 +37,9 @@ dependencies { api "com.fasterxml.jackson.core:jackson-databind:2.12.7.1" testImplementation(testFixtures(project(":nextflow"))) - testImplementation "org.apache.groovy:groovy:4.0.27" - testImplementation "org.apache.groovy:groovy-nio:4.0.27" - testImplementation "org.apache.groovy:groovy-json:4.0.27" + testImplementation "org.apache.groovy:groovy:5.0.0-beta-1" + testImplementation "org.apache.groovy:groovy-nio:5.0.0-beta-1" + testImplementation "org.apache.groovy:groovy-json:5.0.0-beta-1" // wiremock required by TowerFusionEnvTest testImplementation "org.wiremock:wiremock:3.5.4" } diff --git a/plugins/nf-wave/build.gradle b/plugins/nf-wave/build.gradle index d1aef40ffd..3419d36a8b 100644 --- a/plugins/nf-wave/build.gradle +++ b/plugins/nf-wave/build.gradle @@ -41,6 +41,6 @@ dependencies { api 'io.seqera:wave-utils:0.15.1' testImplementation(testFixtures(project(":nextflow"))) - testImplementation "org.apache.groovy:groovy:4.0.27" - testImplementation "org.apache.groovy:groovy-nio:4.0.27" + testImplementation "org.apache.groovy:groovy:5.0.0-beta-1" + testImplementation "org.apache.groovy:groovy-nio:5.0.0-beta-1" }