Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update to Apache Groovy 4 #12491

Open
wants to merge 6 commits into
base: 7.0.x
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/gradle.yml
Expand Up @@ -16,7 +16,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
java: ['8', '11', '14']
java: ['11', '14', '17']
env:
WORKSPACE: ${{ github.workspace }}
GRADLE_OPTS: -Xmx1500m -Dfile.encoding=UTF-8
Expand Down
3 changes: 3 additions & 0 deletions .github/workflows/groovy-joint-workflow.yml
Expand Up @@ -48,6 +48,9 @@ jobs:
run: env

# Select correct Groovy branch for this build:
- name: Checkout Groovy 4_0_X (Grails 6.0.x)
run: cd .. && git clone --depth 1 https://github.com/apache/groovy.git -b GROOVY_4_0_X --single-branch
if: github.ref == 'refs/heads/6.0.x' || github.base_ref == '6.0.x'
- name: Checkout Groovy 3_0_X (Grails 4.1.x)
run: cd .. && git clone --depth 1 https://github.com/apache/groovy.git -b GROOVY_3_0_X --single-branch
if: github.ref == 'refs/heads/5.2.x' || github.base_ref == '5.2.x' || github.ref == 'refs/heads/5.1.x' || github.base_ref == '5.1.x' || github.ref == 'refs/heads/5.0.x' || github.base_ref == '5.0.x' || github.ref == 'refs/heads/master' || github.base_ref == 'master'
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release.yml
Expand Up @@ -7,7 +7,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
java: ['8']
java: ['11']
env:
GIT_USER_NAME: puneetbehl
GIT_USER_EMAIL: behlp@objectcomputing.com
Expand Down
26 changes: 18 additions & 8 deletions build.gradle
Expand Up @@ -91,7 +91,7 @@ ext {
],
groovy: [
version: groovyVersion,
group : 'org.codehaus.groovy',
group : 'org.apache.groovy',
names : ['groovy'],
modules: ['', 'xml', 'swing', 'console', 'json', 'ant', 'sql', 'templates', 'nio', 'dateutil', 'macro']
],
Expand Down Expand Up @@ -196,7 +196,7 @@ if (jointBuildGroovyJarProperty) {
throw new GradleException("The groovy.jar system property points to ${jointBuildGroovyJar.absolutePath} which does not exist.")
}
} else {
groovyDependency = dependencies.create("org.codehaus.groovy:groovy:${groovyVersion}") {
groovyDependency = dependencies.create("org.apache.groovy:groovy:${groovyVersion}") {
exclude module:"commons-cli"
exclude module:"ant"
}
Expand Down Expand Up @@ -247,12 +247,16 @@ allprojects {
cacheChangingModulesFor cacheHours, 'hours'
eachDependency { DependencyResolveDetails details ->
//specifying a fixed version for all libraries with 'org.gradle' group
if (details.requested.group == 'org.codehaus.groovy') {
if (details.requested.group == 'org.apache.groovy') {
details.useVersion groovyVersion
}
if (details.requested.group == "org.spockframework") {
details.useVersion(spockVersion)
}
if (details.requested.group == 'org.codehaus.groovy') {
details.useTarget(group: "org.apache.groovy", name: details.requested.name, version: groovyVersion)
details.because "The dependency coordinates are changed in Apache Groovy 4"
}
}
}
}
Expand Down Expand Up @@ -418,8 +422,12 @@ subprojects { project ->
if(project.name == 'grails-dependencies') return
if(project.name == 'grails-bom') return

sourceCompatibility = "1.8"
targetCompatibility = "1.8"
sourceCompatibility = 1.11
targetCompatibility = 1.11

java {
disableAutoTargetJvm()
}

if(project.name =~ /^(grails-web|grails-plugin-|grails-test-suite|grails-test)/) {
dependencies {
Expand Down Expand Up @@ -479,13 +487,15 @@ subprojects { project ->
dependencies {
documentation("org.fusesource.jansi:jansi:$jansiVersion")
documentation("jline:jline:$jlineVersion")
documentation "org.codehaus.groovy:groovy-ant:$groovyVersion"
documentation "org.codehaus.groovy:groovy-cli-picocli:$groovyVersion"
documentation "org.apache.groovy:groovy-ant:$groovyVersion"
documentation "org.apache.groovy:groovy-cli-picocli:$groovyVersion"
documentation ("com.github.javaparser:javaparser-core:$javaParserCoreVersion")

api platform("org.apache.groovy:groovy-bom:$groovyVersion")
annotationProcessor platform("org.apache.groovy:groovy-bom:$groovyVersion")
api groovyDependency

testImplementation "org.codehaus.groovy:groovy-test-junit5:${groovyVersion}"
testImplementation "org.apache.groovy:groovy-test-junit5:${groovyVersion}"
testImplementation "org.junit.jupiter:junit-jupiter-api:5.9.0"
testImplementation "org.junit.platform:junit-platform-runner:1.9.0"
testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine:5.9.0"
Expand Down
4 changes: 2 additions & 2 deletions gradle.properties
@@ -1,4 +1,4 @@
projectVersion=5.2.4-SNAPSHOT
projectVersion=6.0.0-SNAPSHOT
antVersion=1.10.12
aspectjVersion=1.9.9.1
asyncVersion=4.0.0
Expand All @@ -11,7 +11,7 @@ gdocEngineVersion=1.0.1
gradleNexusPluginVersion=2.3.1
gradleNexusStagingPluginVersion=0.12.0
gradleSdkVendorVersion=1.2.1
groovyVersion=3.0.11
groovyVersion=4.0.4
gspVersion=5.2.1
h2.version=1.4.199
h2Version=1.4.200
Expand Down
4 changes: 2 additions & 2 deletions gradle/docs.gradle
Expand Up @@ -14,7 +14,7 @@ configurations {
}

dependencies {
documentation "org.codehaus.groovy:groovy-groovydoc:$groovyVersion"
documentation "org.apache.groovy:groovy-groovydoc:$groovyVersion"
}

task stubs {
Expand All @@ -23,7 +23,7 @@ task stubs {
def isolatedAnt = services.get(org.gradle.api.internal.project.IsolatedAntBuilder)
isolatedAnt.execute {
mkdir(dir: destinationDir)
taskdef(name: "generatestubs", classname: "org.codehaus.groovy.grails.cli.GenerateStubsTask") {
taskdef(name: "generatestubs", classname: "org.apache.groovy.grails.cli.GenerateStubsTask") {
classpath {
for(sub in subprojects) {
pathelement path: sub.sourceSets.main.compileClasspath.asPath
Expand Down
2 changes: 1 addition & 1 deletion grails-bom/build.gradle
Expand Up @@ -61,7 +61,7 @@ publishing {
mkp.artifactId 'jna'
}
mkp.exclusion {
mkp.groupId 'org.codehaus.groovy'
mkp.groupId 'org.apache.groovy'
mkp.artifactId 'groovy-ant'
}
}
Expand Down
6 changes: 3 additions & 3 deletions grails-bootstrap/build.gradle
@@ -1,8 +1,8 @@
import org.apache.tools.ant.filters.ReplaceTokens

dependencies {
api ( "org.codehaus.groovy:groovy-xml:$groovyVersion" )
api ( "org.codehaus.groovy:groovy-templates:$groovyVersion" )
api ( "org.apache.groovy:groovy-xml:$groovyVersion" )
api ( "org.apache.groovy:groovy-templates:$groovyVersion" )
api "org.yaml:snakeyaml:1.30"
api "io.micronaut:micronaut-inject:$micronautVersion"

Expand All @@ -12,7 +12,7 @@ dependencies {
compileOnly("net.java.dev.jna:jna:$jnaVersion")

// Ant
compileOnly "org.codehaus.groovy:groovy-ant:$groovyVersion"
compileOnly "org.apache.groovy:groovy-ant:$groovyVersion"

testImplementation("org.fusesource.jansi:jansi:$jansiVersion")
testImplementation("jline:jline:$jlineVersion")
Expand Down
Expand Up @@ -627,6 +627,7 @@ static String convertValidPropertyMethodSuffix(String suffix) {
* @return true if it is a javabean property getter
* @deprecated use {@link #isGetter(String, Class, Class[])} instead because this method has a defect for "is.." method with Boolean return types.
*/
@Deprecated
public static boolean isGetter(String name, Class<?>[] args) {
return isGetter(name, boolean.class, args);
}
Expand Down
Expand Up @@ -15,7 +15,7 @@
*/
package org.grails.io.support;

import groovy.util.XmlSlurper;
import groovy.xml.XmlSlurper;
import groovy.xml.FactorySupport;
import org.xml.sax.SAXException;
import javax.xml.XMLConstants;
Expand Down
6 changes: 3 additions & 3 deletions grails-console/build.gradle
@@ -1,8 +1,8 @@
dependencies {
api project(":grails-core")
api "org.codehaus.groovy:groovy-console:$groovyVersion"
api "org.codehaus.groovy:groovy-swing:$groovyVersion"
api "org.codehaus.groovy:groovy-groovysh:$groovyVersion"
api "org.apache.groovy:groovy-console:$groovyVersion"
api "org.apache.groovy:groovy-swing:$groovyVersion"
api "org.apache.groovy:groovy-groovysh:$groovyVersion"
implementation "org.fusesource.jansi:jansi:$jansiVersion",
"jline:jline:$jlineVersion",
"net.java.dev.jna:jna:$jnaVersion"
Expand Down
Expand Up @@ -17,7 +17,7 @@ package grails.ui.shell.support

import grails.core.GrailsApplication
import grails.ui.support.DevelopmentWebApplicationContext
import org.codehaus.groovy.tools.shell.Groovysh
import org.apache.groovy.groovysh.Groovysh
import org.codehaus.groovy.tools.shell.IO
import org.springframework.context.support.GenericApplicationContext

Expand Down
Expand Up @@ -19,7 +19,7 @@ import grails.core.GrailsApplication
import grails.ui.support.DevelopmentWebApplicationContext
import groovy.transform.CompileStatic
import groovy.transform.InheritConstructors
import org.codehaus.groovy.tools.shell.Groovysh
import org.apache.groovy.groovysh.Groovysh
import org.codehaus.groovy.tools.shell.IO


Expand Down
9 changes: 5 additions & 4 deletions grails-core/build.gradle
@@ -1,7 +1,9 @@
dependencies {
compileOnly "io.micronaut:micronaut-inject-java:$micronautVersion"
compileOnly "io.micronaut:micronaut-inject-groovy:$micronautVersion"
compileOnly "io.micronaut.spring:micronaut-spring-annotation:$micronautSpringVersion"
compileOnly ("io.micronaut.spring:micronaut-spring-annotation:$micronautSpringVersion") {
exclude group: "org.codehaus.groovy", module: "groovy-bom"
}
compileOnly "io.micronaut.cache:micronaut-cache-core:$micronautCacheVersion"
compileOnly "io.micronaut:micronaut-runtime:$micronautVersion"
compileOnly "org.aspectj:aspectjrt:$aspectjVersion",
Expand Down Expand Up @@ -39,16 +41,15 @@ dependencies {
compileOnly("org.springframework:spring-test:${springVersion}") {
exclude group: 'commons-logging', module:'commons-logging'
}
compileOnly("org.codehaus.groovy:groovy-templates:$groovyVersion")

compileOnly("org.apache.groovy:groovy-templates:$groovyVersion")

api project(":grails-bootstrap"), {
exclude group:"org.fusesource.jansi", module:"jansi"
exclude group:"jline", module:"jline"
exclude group:"net.java.dev.jna", module:"jna"

// Ant
exclude group:"org.codehaus.groovy", module:"groovy-ant"
exclude group:"org.apache.groovy", module:"groovy-ant"
exclude group:"org.apache.ant", module:"ant"
exclude group:"org.apache.ant", module:"ant-launcher"
exclude group:"org.apache.ivy", module:"ivy"
Expand Down
2 changes: 1 addition & 1 deletion grails-core/src/main/groovy/grails/util/GrailsUtil.java
Expand Up @@ -19,7 +19,7 @@
import groovy.lang.Binding;
import groovy.lang.GroovyShell;
import groovy.lang.Writable;
import groovy.util.slurpersupport.GPathResult;
import groovy.xml.slurpersupport.GPathResult;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.grails.core.io.CachingPathMatchingResourcePatternResolver;
Expand Down
Expand Up @@ -11,7 +11,8 @@ import grails.util.GrailsUtil
import groovy.transform.CompilationUnitAware
import groovy.transform.CompileDynamic
import groovy.transform.CompileStatic
import groovy.util.slurpersupport.GPathResult
import groovy.xml.XmlSlurper
import groovy.xml.slurpersupport.GPathResult
import groovy.xml.MarkupBuilder
import groovy.xml.StreamingMarkupBuilder
import org.codehaus.groovy.ast.*
Expand Down Expand Up @@ -221,7 +222,7 @@ class GlobalGrailsClassInjectorTransformation implements ASTTransformation, Comp

protected static void generatePluginXml(ClassNode pluginClassNode, String pluginVersion, Set<String> transformedClasses, File pluginXmlFile) {
def pluginXmlExists = pluginXmlFile.exists()
Set pluginClasses = []
Set<String> pluginClasses = []
pluginClasses.addAll(transformedClasses)
pluginClasses.addAll(pendingPluginClasses)

Expand Down
Expand Up @@ -120,7 +120,7 @@ private static void initializeState() {
final ClassReader classReader = new ClassReader(inputStream);
final String astTransformerClassName = AstTransformer.class.getSimpleName();
final ClassLoader finalClassLoader = classLoader;
classReader.accept(new ClassVisitor(Opcodes.ASM4) {
classReader.accept(new ClassVisitor(Opcodes.ASM7) {
@Override
public AnnotationVisitor visitAnnotation(String desc, boolean visible) {
try {
Expand Down
Expand Up @@ -15,7 +15,7 @@
*/
package org.grails.plugins;

import groovy.util.slurpersupport.GPathResult;
import groovy.xml.slurpersupport.GPathResult;
import org.grails.core.exceptions.GrailsConfigurationException;
import org.grails.io.support.SpringIOUtils;
import org.springframework.core.io.Resource;
Expand Down
2 changes: 1 addition & 1 deletion grails-databinding/build.gradle
@@ -1,4 +1,4 @@
dependencies {
api "org.codehaus.groovy:groovy-xml:$groovyVersion"
api "org.apache.groovy:groovy-xml:$groovyVersion"
}

Expand Up @@ -16,7 +16,7 @@
package grails.databinding;

import grails.databinding.events.DataBindingListener;
import groovy.util.slurpersupport.GPathResult;
import groovy.xml.slurpersupport.GPathResult;

import java.util.List;

Expand Down
Expand Up @@ -21,7 +21,7 @@ import grails.databinding.events.DataBindingListener
import grails.databinding.initializers.ValueInitializer
import groovy.transform.CompileStatic
import groovy.transform.TypeCheckingMode
import groovy.util.slurpersupport.GPathResult
import groovy.xml.slurpersupport.GPathResult
import org.grails.databinding.ClosureValueConverter
import org.grails.databinding.ClosureValueInitializer
import org.grails.databinding.IndexedPropertyReferenceDescriptor
Expand Down
Expand Up @@ -20,7 +20,7 @@ import groovy.transform.CompileStatic
@CompileStatic
class SimpleMapDataBindingSource implements DataBindingSource {

protected Map map
protected Map<String, ?> map
boolean dataSourceAware = true

SimpleMapDataBindingSource(Map map) {
Expand Down
Expand Up @@ -19,7 +19,7 @@ import grails.databinding.CollectionDataBindingSource;
import grails.databinding.DataBindingSource;
import grails.databinding.SimpleMapDataBindingSource;
import groovy.transform.CompileStatic
import groovy.util.slurpersupport.GPathResult
import groovy.xml.slurpersupport.GPathResult

@CompileStatic
class GPathResultCollectionDataBindingSource implements CollectionDataBindingSource {
Expand Down
Expand Up @@ -15,9 +15,9 @@
*/
package org.grails.databinding.xml

import groovy.util.slurpersupport.GPathResult
import groovy.util.slurpersupport.Node
import groovy.util.slurpersupport.NodeChild
import groovy.xml.slurpersupport.GPathResult
import groovy.xml.slurpersupport.Node
import groovy.xml.slurpersupport.NodeChild

/**
* @author Jeff Brown
Expand Down
2 changes: 1 addition & 1 deletion grails-dependencies/build.gradle
Expand Up @@ -31,7 +31,7 @@ publishing {
delegate.artifactId 'jna'
}
delegate.exclusion {
delegate.groupId 'org.codehaus.groovy'
delegate.groupId 'org.apache.groovy'
delegate.artifactId 'groovy-ant'
}
}
Expand Down
2 changes: 1 addition & 1 deletion grails-docs/build.gradle
Expand Up @@ -10,7 +10,7 @@ dependencies {
"org.apache.ant:ant:$antVersion",
'org.grails:grails-gdoc-engine:1.0.1',
'org.yaml:snakeyaml:1.30',
"org.codehaus.groovy:groovy-ant:$groovyVersion"
"org.apache.groovy:groovy-ant:$groovyVersion"

api 'org.asciidoctor:asciidoctorj:2.5.5'
api('org.xhtmlrenderer:core-renderer:8.0') {
Expand Down
2 changes: 1 addition & 1 deletion grails-encoder/build.gradle
@@ -1,6 +1,6 @@
dependencies {
api project(":grails-core")
// HtmlUtils is used from spring-web
api "org.codehaus.groovy:groovy-json:$groovyVersion"
api "org.apache.groovy:groovy-json:$groovyVersion"
api "org.springframework:spring-web:${springVersion}"
}
Expand Up @@ -27,7 +27,7 @@ import grails.web.mime.MimeUtility
import groovy.json.StreamingJsonBuilder
import groovy.transform.CompileStatic
import groovy.transform.Generated
import groovy.util.slurpersupport.GPathResult
import groovy.xml.slurpersupport.GPathResult
import groovy.xml.StreamingMarkupBuilder
import org.grails.gsp.GroovyPageTemplate
import org.grails.io.support.SpringIOUtils
Expand Down
2 changes: 1 addition & 1 deletion grails-plugin-datasource/build.gradle
Expand Up @@ -3,7 +3,7 @@ dependencies {
exclude group: 'commons-logging', module:'commons-logging'
}

api "org.codehaus.groovy:groovy-sql:$groovyVersion"
api "org.apache.groovy:groovy-sql:$groovyVersion"

api("org.springframework:spring-context:${springVersion}") {
exclude group: 'commons-logging', module:'commons-logging'
Expand Down
2 changes: 1 addition & 1 deletion grails-plugin-i18n/build.gradle
@@ -1,5 +1,5 @@
dependencies {
api project(":grails-web")

api "org.codehaus.groovy:groovy-ant:$groovyVersion"
api "org.apache.groovy:groovy-ant:$groovyVersion"
}