Skip to content
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.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ export GRADLE_OPTS="-Xms2G -Xmx5G"
| Groovy | 4.0.x |
| Spring Boot | 4.0.x |
| Spring Framework | 7.0.x |
| Spock | 2.3-groovy-4.0 |
| Spock | 2.4-groovy-4.0 |
| Gradle | 8.14.x |
| Jakarta EE | 10 |

Expand Down
4 changes: 2 additions & 2 deletions dependencies.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ ext {
'commons-text.version' : '1.15.0',
'directory-watcher.version' : '0.19.1',
'gradle-groovy.version' : '4.0.32',
'gradle-spock.version' : '2.3-groovy-4.0',
'gradle-spock.version' : '2.4-groovy-4.0',
'grails-publish-plugin.version' : '1.0.0-M1',
'jansi.version' : '2.4.2',
'javaparser-core.version' : '3.28.0',
Expand Down Expand Up @@ -92,7 +92,7 @@ ext {
'rxjava3.version' : '3.1.12',
'selenium.version' : '4.38.0',
'sitemesh.version' : '2.6.0',
'spock.version' : '2.3-groovy-4.0',
'spock.version' : '2.4-groovy-4.0',
'starter-sitemesh.version' : '3.3.0-SNAPSHOT',
'spring-webmvc-sitemesh.version': '3.3.0-SNAPSHOT',
// Spring Boot 4 no longer manages spring-retry; pin it here so the
Expand Down
4 changes: 2 additions & 2 deletions grails-async/core/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -45,8 +45,8 @@ dependencies {

testImplementation 'org.spockframework:spock-core'

testRuntimeOnly 'net.bytebuddy:byte-buddy'
testRuntimeOnly 'org.objenesis:objenesis'
testRuntimeOnly 'net.bytebuddy:byte-buddy' // Required by Spock's mocking support
testRuntimeOnly 'org.objenesis:objenesis' // Required by Spock for mocking classes without default constructor

testRuntimeOnly 'org.slf4j:slf4j-nop' // Get rid of warning about missing slf4j implementation during test task
}
Expand Down
5 changes: 1 addition & 4 deletions grails-bootstrap/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -74,10 +74,7 @@ dependencies {

// Testing
testImplementation 'org.slf4j:slf4j-simple'
testImplementation('org.spockframework:spock-core') { transitive = false }
// Required by Spock's Mocking
testRuntimeOnly 'net.bytebuddy:byte-buddy'
testImplementation 'org.objenesis:objenesis'
testImplementation 'org.spockframework:spock-core'
}

processResources {
Expand Down
7 changes: 3 additions & 4 deletions grails-cache/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -54,10 +54,9 @@ dependencies {

testImplementation project(':grails-testing-support-datamapping')
testImplementation project(':grails-testing-support-web')
testImplementation 'org.spockframework:spock-core', {
exclude group: 'org.apache.groovy'
}
testImplementation 'org.mockito:mockito-core' // to allow for correct mocking with Mock()
testImplementation 'org.spockframework:spock-core'

testRuntimeOnly 'net.bytebuddy:byte-buddy' // Required by Spock's mocking support
}

apply {
Expand Down
5 changes: 1 addition & 4 deletions grails-codecs-core/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -52,10 +52,7 @@ dependencies {

// Testing
testImplementation 'org.slf4j:slf4j-simple'
testImplementation('org.spockframework:spock-core') { transitive = false }
// Required by Spock's Mocking
testRuntimeOnly 'net.bytebuddy:byte-buddy'
testImplementation 'org.objenesis:objenesis'
testImplementation 'org.spockframework:spock-core'
}

apply {
Expand Down
5 changes: 1 addition & 4 deletions grails-codecs/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -62,10 +62,7 @@ dependencies {

// Testing
testImplementation 'org.slf4j:slf4j-simple'
testImplementation('org.spockframework:spock-core') { transitive = false }
// Required by Spock's Mocking
testRuntimeOnly 'net.bytebuddy:byte-buddy'
testImplementation 'org.objenesis:objenesis'
testImplementation 'org.spockframework:spock-core'
}

apply {
Expand Down
5 changes: 1 addition & 4 deletions grails-console/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -67,10 +67,7 @@ dependencies {

// Testing
testImplementation 'org.slf4j:slf4j-simple'
testImplementation('org.spockframework:spock-core') { transitive = false }
// Required by Spock's Mocking
testRuntimeOnly 'net.bytebuddy:byte-buddy'
testImplementation 'org.objenesis:objenesis'
testImplementation 'org.spockframework:spock-core'
}

apply {
Expand Down
5 changes: 1 addition & 4 deletions grails-controllers/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -76,10 +76,7 @@ dependencies {

// Testing
testImplementation 'org.slf4j:slf4j-simple'
testImplementation('org.spockframework:spock-core') { transitive = false }
// Required by Spock's Mocking
testRuntimeOnly 'net.bytebuddy:byte-buddy'
testImplementation 'org.objenesis:objenesis'
testImplementation 'org.spockframework:spock-core'
}

apply {
Expand Down
7 changes: 3 additions & 4 deletions grails-converters/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -71,10 +71,9 @@ dependencies {

// Testing
testImplementation 'org.slf4j:slf4j-simple'
testImplementation('org.spockframework:spock-core') { transitive = false }
// Required by Spock's Mocking
testRuntimeOnly 'net.bytebuddy:byte-buddy'
testImplementation 'org.objenesis:objenesis'
testImplementation 'org.spockframework:spock-core'

testRuntimeOnly 'net.bytebuddy:byte-buddy' // Required by Spock's mocking support
}

apply {
Expand Down
8 changes: 4 additions & 4 deletions grails-core/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -82,10 +82,10 @@ dependencies {

// Testing
testImplementation 'org.slf4j:slf4j-simple'
testImplementation('org.spockframework:spock-core') { transitive = false }
// Required by Spock's Mocking
testRuntimeOnly 'net.bytebuddy:byte-buddy'
testImplementation 'org.objenesis:objenesis'
testImplementation 'org.spockframework:spock-core'

testRuntimeOnly 'net.bytebuddy:byte-buddy' // Required by Spock's mocking support
testRuntimeOnly 'org.objenesis:objenesis' // Required by Spock for mocking classes without default constructor
}

TaskProvider<WriteProperties> writeProps = tasks.register('writeGrailsProperties', WriteProperties)
Expand Down
4 changes: 2 additions & 2 deletions grails-data-graphql/core/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -60,9 +60,9 @@ dependencies {
testImplementation 'com.h2database:h2'
testImplementation 'org.apache.tomcat:tomcat-jdbc'
testImplementation 'org.slf4j:slf4j-api'
testImplementation 'org.objenesis:objenesis'
testImplementation 'net.bytebuddy:byte-buddy'
testImplementation 'org.spockframework:spock-core'

testRuntimeOnly 'org.objenesis:objenesis' // Required by Spock for mocking classes without default constructor
}

apply {
Expand Down
4 changes: 3 additions & 1 deletion grails-data-graphql/plugin/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -84,8 +84,10 @@ dependencies {
compileOnly "io.micronaut.rxjava2:micronaut-rxjava2-http-client:$micronautRxjava2Version"

testImplementation project(':grails-testing-support-web')
testImplementation 'net.bytebuddy:byte-buddy'
testImplementation 'org.spockframework:spock-core'

testRuntimeOnly 'net.bytebuddy:byte-buddy' // Required by Spock's mocking support
testRuntimeOnly 'org.objenesis:objenesis' // Required by Spock for mocking classes without default constructor
}

compileGsonViews {
Expand Down
6 changes: 1 addition & 5 deletions grails-databinding-core/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -54,11 +54,7 @@ dependencies {

// Testing
testImplementation 'org.slf4j:slf4j-simple'
testImplementation('org.spockframework:spock-core') { transitive = false }

// Required by Spock's Mocking
testRuntimeOnly 'net.bytebuddy:byte-buddy'
testImplementation 'org.objenesis:objenesis'
testImplementation 'org.spockframework:spock-core'
}

apply {
Expand Down
5 changes: 1 addition & 4 deletions grails-databinding/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -68,10 +68,7 @@ dependencies {

// Testing
testImplementation 'org.slf4j:slf4j-simple'
testImplementation('org.spockframework:spock-core') { transitive = false }
// Required by Spock's Mocking
testRuntimeOnly 'net.bytebuddy:byte-buddy'
testImplementation 'org.objenesis:objenesis'
testImplementation 'org.spockframework:spock-core'
}

apply {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -197,8 +197,11 @@ import grails.gorm.transactions.Transactional
mySpec.getDeclaredMethod('$spock_feature_0_0', Object, Object, Object)
mySpec.getDeclaredMethod('$tt__$spock_feature_0_0', Object, Object, Object, TransactionStatus)

and:"The spec can be called"
mySpec.newInstance().'$tt__$spock_feature_0_0'(2,2,4,new DefaultTransactionStatus(null, new Object(), true, true, false, false, false, null))
// Do not invoke the transformed Spock feature method directly here: Spock 2.4
// requires an active iteration context for closures that reference data variables,
// so a reflective call outside Spock's runner throws IllegalStateException. The
// GroovyShell compilation above plus the transformed method signature checks
// already cover this regression (@Rollback must produce a valid, well-formed spec).


}
Expand Down Expand Up @@ -231,8 +234,11 @@ import grails.gorm.transactions.Transactional
mySpec.getDeclaredMethod('$spock_feature_0_0')
mySpec.getDeclaredMethod('$tt__$spock_feature_0_0', TransactionStatus)

and:"The spec can be called"
mySpec.newInstance().'$tt__$spock_feature_0_0'(new DefaultTransactionStatus(null, new Object(), true, true, false, false, false, null))
// Do not invoke the transformed Spock feature method directly here: Spock 2.4
// requires an active iteration context for closures containing conditions, so a
// reflective call outside Spock's runner throws IllegalStateException. The
// GroovyShell compilation above plus the transformed method signature checks
// already cover this regression (@Rollback must produce a valid, well-formed spec).


}
Expand Down
5 changes: 1 addition & 4 deletions grails-datasource/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -69,10 +69,7 @@ dependencies {

// Testing
testImplementation 'org.slf4j:slf4j-simple'
testImplementation('org.spockframework:spock-core') { transitive = false }
// Required by Spock's Mocking
testRuntimeOnly 'net.bytebuddy:byte-buddy'
testImplementation 'org.objenesis:objenesis'
testImplementation 'org.spockframework:spock-core'
}

apply {
Expand Down
5 changes: 1 addition & 4 deletions grails-domain-class/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -79,10 +79,7 @@ dependencies {

// Testing
testImplementation 'org.slf4j:slf4j-simple'
testImplementation('org.spockframework:spock-core') { transitive = false }
// Required by Spock's Mocking
testRuntimeOnly 'net.bytebuddy:byte-buddy'
testImplementation 'org.objenesis:objenesis'
testImplementation 'org.spockframework:spock-core'
}

apply {
Expand Down
5 changes: 1 addition & 4 deletions grails-encoder/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -56,10 +56,7 @@ dependencies {

// Testing
testImplementation 'org.slf4j:slf4j-simple'
testImplementation('org.spockframework:spock-core') { transitive = false }
// Required by Spock's Mocking
testRuntimeOnly 'net.bytebuddy:byte-buddy'
testImplementation 'org.objenesis:objenesis'
testImplementation 'org.spockframework:spock-core'
}

apply {
Expand Down
2 changes: 1 addition & 1 deletion grails-fields/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ dependencies {
exclude module: 'asm'
}

testRuntimeOnly 'net.bytebuddy:byte-buddy'
testRuntimeOnly 'org.objenesis:objenesis' // Required by Spock for mocking classes without default constructor
}

apply {
Expand Down
7 changes: 1 addition & 6 deletions grails-gradle/model/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -73,12 +73,7 @@ dependencies {
testImplementation 'org.apache.groovy:groovy'
testImplementation 'org.apache.groovy:groovy-xml'
testImplementation 'org.slf4j:slf4j-simple'
testImplementation('org.spockframework:spock-core') {
transitive = false
}
// Required by Spock's Mocking
testRuntimeOnly 'net.bytebuddy:byte-buddy'
testImplementation 'org.objenesis:objenesis'
testImplementation 'org.spockframework:spock-core'
}

apply {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ class IOUtilsSpec extends Specification {
void "Test findJarResource finds a JAR resource"() {
expect:
IOUtils.findJarResource(Specification)
IOUtils.findJarResource(Specification).path.endsWith('spock-core-2.3-groovy-4.0.jar!/')
IOUtils.findJarResource(Specification).path.endsWith('spock-core-2.4-groovy-4.0.jar!/')
}

void 'findRootResourcesURL - appends / if not present'() {
Expand Down
5 changes: 3 additions & 2 deletions grails-gsp/grails-sitemesh3/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -58,8 +58,9 @@ dependencies {
testImplementation 'org.spockframework:spock-core'
testImplementation 'org.springframework:spring-test'
testImplementation project(':grails-testing-support-web')
testImplementation 'org.objenesis:objenesis'
testRuntimeOnly 'net.bytebuddy:byte-buddy'

testRuntimeOnly 'net.bytebuddy:byte-buddy' // Required by Spock's mocking support
testRuntimeOnly 'org.objenesis:objenesis' // Required by Spock for mocking classes without default constructor
testRuntimeOnly 'org.slf4j:slf4j-nop'
}

Expand Down
5 changes: 1 addition & 4 deletions grails-i18n/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -63,10 +63,7 @@ dependencies {

// Testing
testImplementation 'org.slf4j:slf4j-simple'
testImplementation('org.spockframework:spock-core') { transitive = false }
// Required by Spock's Mocking
testRuntimeOnly 'net.bytebuddy:byte-buddy'
testImplementation 'org.objenesis:objenesis'
testImplementation 'org.spockframework:spock-core'
}

apply {
Expand Down
5 changes: 1 addition & 4 deletions grails-interceptors/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -61,10 +61,7 @@ dependencies {

// Testing
testImplementation 'org.slf4j:slf4j-simple'
testImplementation('org.spockframework:spock-core') { transitive = false }
// Required by Spock's Mocking
testRuntimeOnly 'net.bytebuddy:byte-buddy'
testImplementation 'org.objenesis:objenesis'
testImplementation 'org.spockframework:spock-core'
}

apply {
Expand Down
5 changes: 1 addition & 4 deletions grails-logging/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -52,10 +52,7 @@ dependencies {

// Testing
testImplementation 'org.slf4j:slf4j-simple'
testImplementation('org.spockframework:spock-core') { transitive = false }
// Required by Spock's Mocking
testRuntimeOnly 'net.bytebuddy:byte-buddy'
testImplementation 'org.objenesis:objenesis'
testImplementation 'org.spockframework:spock-core'
}

apply {
Expand Down
5 changes: 1 addition & 4 deletions grails-mimetypes/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -60,10 +60,7 @@ dependencies {

// Testing
testImplementation 'org.slf4j:slf4j-simple'
testImplementation('org.spockframework:spock-core') { transitive = false }
// Required by Spock's Mocking
testRuntimeOnly 'net.bytebuddy:byte-buddy'
testImplementation 'org.objenesis:objenesis'
testImplementation 'org.spockframework:spock-core'
}

apply {
Expand Down
5 changes: 1 addition & 4 deletions grails-rest-transforms/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -76,10 +76,7 @@ dependencies {

// Testing
testImplementation 'org.slf4j:slf4j-simple'
testImplementation('org.spockframework:spock-core') { transitive = false }
// Required by Spock's Mocking
testRuntimeOnly 'net.bytebuddy:byte-buddy'
testImplementation 'org.objenesis:objenesis'
testImplementation 'org.spockframework:spock-core'
}

apply {
Expand Down
5 changes: 1 addition & 4 deletions grails-services/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -63,10 +63,7 @@ dependencies {

// Testing
testImplementation 'org.slf4j:slf4j-simple'
testImplementation('org.spockframework:spock-core') { transitive = false }
// Required by Spock's Mocking
testRuntimeOnly 'net.bytebuddy:byte-buddy'
testImplementation 'org.objenesis:objenesis'
testImplementation 'org.spockframework:spock-core'
}

apply {
Expand Down
7 changes: 3 additions & 4 deletions grails-shell-cli/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -106,10 +106,9 @@ dependencies {

// Testing
testImplementation 'org.slf4j:slf4j-simple'
testImplementation('org.spockframework:spock-core') { transitive = false }
// Required by Spock's Mocking
testRuntimeOnly 'net.bytebuddy:byte-buddy'
testImplementation 'org.objenesis:objenesis'
testImplementation 'org.spockframework:spock-core'

testRuntimeOnly 'net.bytebuddy:byte-buddy' // Required by Spock's mocking support

// any project that should be included in the end distribution should be included here
// historically these were the included projects so we have trimmed them back down to pre7.0
Expand Down
5 changes: 1 addition & 4 deletions grails-spring/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -56,10 +56,7 @@ dependencies {

// Testing
testImplementation 'org.slf4j:slf4j-simple'
testImplementation('org.spockframework:spock-core') { transitive = false }
// Required by Spock's Mocking
testRuntimeOnly 'net.bytebuddy:byte-buddy'
testImplementation 'org.objenesis:objenesis'
testImplementation 'org.spockframework:spock-core'
}

apply {
Expand Down
Loading
Loading