From ccb6cade06068121bd0c01723a269bef36a2c7c2 Mon Sep 17 00:00:00 2001 From: James Fredley Date: Wed, 18 Dec 2024 21:24:51 -0500 Subject: [PATCH 1/6] Use grails-bom, ContainerGebSpec, cleanup dependencies and fix tests --- .github/renovate.json | 8 -- .github/workflows/gradle.yml | 2 +- .github/workflows/groovy-joint-workflow.yml | 5 +- boot-plugin/build.gradle | 11 ++- build.gradle | 84 +++------------- docs/build.gradle | 25 ++--- .../grails3-hibernate5-mongodb/build.gradle | 96 +++++++------------ .../tests/AuthorControllerSpec.groovy | 4 +- .../tests/BookControllerSpec.groovy | 4 +- .../resources/GebConfig.groovy | 41 -------- .../build.gradle | 79 ++++++--------- .../resources/GebConfig.groovy | 41 -------- examples/grails3-mongodb/build.gradle | 81 +++++++--------- .../tests/BookControllerSpec.groovy | 5 +- .../resources/GebConfig.groovy | 41 -------- examples/springboot-mongodb/build.gradle | 25 +---- examples/test-data-service/build.gradle | 47 +++++---- gradle.properties | 46 +-------- gradle/wrapper/gradle-wrapper.properties | 2 +- grails-datastore-gorm-bson/build.gradle | 5 +- .../datastore/bson/json/JsonWriter.java | 4 +- .../build.gradle | 3 +- grails-datastore-gorm-mongodb/build.gradle | 42 ++++---- grails-plugin/build.gradle | 30 +----- 24 files changed, 201 insertions(+), 530 deletions(-) delete mode 100644 examples/grails3-hibernate5-mongodb/src/integration-test/resources/GebConfig.groovy delete mode 100644 examples/grails3-mongodb-database-per-tenant/src/integration-test/resources/GebConfig.groovy delete mode 100644 examples/grails3-mongodb/src/integration-test/resources/GebConfig.groovy diff --git a/.github/renovate.json b/.github/renovate.json index eb3ed0af..59d87c4e 100644 --- a/.github/renovate.json +++ b/.github/renovate.json @@ -20,14 +20,6 @@ ], "groupName": "junit-jupiter monorepo" }, - { - "matchPackageNames": [ - "io.netty:netty-transport", - "io.netty:netty-handler", - "io.netty:netty-codec" - ], - "groupName": "netty monorepo" - }, { "matchPackageNames": [ "org.grails:grails-datastore-core", diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml index d0868396..13b1475a 100644 --- a/.github/workflows/gradle.yml +++ b/.github/workflows/gradle.yml @@ -37,7 +37,7 @@ jobs: env: GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GRADLE_ENTERPRISE_ACCESS_KEY }} with: - arguments: build -Dgeb.env=chromeHeadless -x test -x integrationTest + arguments: build publish: runs-on: ubuntu-latest if: github.event_name == 'push' diff --git a/.github/workflows/groovy-joint-workflow.yml b/.github/workflows/groovy-joint-workflow.yml index 05f16106..637a14dc 100644 --- a/.github/workflows/groovy-joint-workflow.yml +++ b/.github/workflows/groovy-joint-workflow.yml @@ -161,7 +161,4 @@ jobs: with: arguments: | build - -Dgeb.env=chromeHeadless - -x groovydoc - -x test - -x integrationTest \ No newline at end of file + -x groovydoc \ No newline at end of file diff --git a/boot-plugin/build.gradle b/boot-plugin/build.gradle index 951ea675..6c939fe0 100644 --- a/boot-plugin/build.gradle +++ b/boot-plugin/build.gradle @@ -1,18 +1,19 @@ dependencies { - compileOnly "org.grails:grails-shell:$grailsShellVersion", { + implementation platform("org.grails:grails-bom:$grailsVersion") + compileOnly "org.grails:grails-shell", { exclude group:'org.apache.groovy', module:'groovy' } - api "org.springframework.boot:spring-boot-autoconfigure:$springBootVersion" - api "org.apache.groovy:groovy:$groovyVersion" + api "org.springframework.boot:spring-boot-autoconfigure" + api "org.apache.groovy:groovy" api project(":grails-datastore-gorm-mongodb"), { exclude group:'org.grails', module:'grails-datastore-gorm-plugin-support' } api project(":grails-datastore-gorm-mongodb-ext"), { exclude group:'org.grails', module:'grails-datastore-gorm-mongodb' } - api "org.springframework:spring-tx:$springVersion" - testImplementation "org.grails:grails-shell:$grailsShellVersion", { + api "org.springframework:spring-tx" + testImplementation "org.grails:grails-shell", { exclude group:'org.apache.groovy', module:'groovy' } } diff --git a/build.gradle b/build.gradle index 90ab4f36..9dc5ee7f 100644 --- a/build.gradle +++ b/build.gradle @@ -6,7 +6,6 @@ buildscript { dependencies { classpath "org.grails:grails-gradle-plugin:$grailsGradlePluginVersion" classpath "org.asciidoctor:asciidoctor-gradle-jvm:$asciidoctorGradleVersion" - classpath "com.github.erdi:webdriver-binaries-gradle-plugin:$webdriverBinariesPluginVersion" classpath "io.github.gradle-nexus:publish-plugin:$gradleNexusPublishPluginVersion" } } @@ -17,7 +16,6 @@ group "org.grails" version project.projectVersion ext { - hibernatePluginVersion = project.hibernatePluginVersion isCiBuild = project.hasProperty("isCiBuild") || System.getenv().get("CI") as Boolean isBuildSnapshot = project.version.endsWith("-SNAPSHOT") isReleaseVersion = !isBuildSnapshot @@ -56,7 +54,6 @@ allprojects { ext.groovyVersion = System.getenv('CI_GROOVY_VERSION') ?: project.groovyVersion repositories { - mavenLocal() mavenCentral() maven { url = 'https://repo.grails.org/grails/core' } maven { url = 'https://oss.sonatype.org/content/repositories/snapshots' } @@ -69,16 +66,14 @@ allprojects { url = 'https://repository.apache.org/content/repositories/snapshots' } } +// mavenLocal() // do not commit uncommented, for local testing only } } subprojects { Project subproject -> - ext['h2.version'] = h2Version ext['gorm.version'] = datastoreVersion - ext['gorm.hibernate5.version'] = hibernatePluginVersion ext['junit-jupiter.version'] = junitJupiterVersion - ext['spock.version'] = spockVersion ext['mongodb.version'] = mongodbDriverVersion if (project.name.startsWith("examples")) { @@ -93,34 +88,18 @@ subprojects { Project subproject -> boolean usesGeb = project.name.contains('grails3-hibernate5-mongodb') || project.name.contains('grails3-mongodb') || project.name.contains('grails3-mongodb-database-per-tenant')|| project.name.contains('grails3-rxmongodb') - if (usesGeb) { - apply plugin:"com.github.erdi.webdriver-binaries" - } - if (project.name == "examples-test-data-service") { apply plugin:"org.grails.grails-web" } - configurations.configureEach { - resolutionStrategy.eachDependency { DependencyResolveDetails details -> - if(details.requested.group == 'org.apache.groovy' && details.requested.name.startsWith('groovy')) { - details.useVersion(groovyVersion) - } else if (details.requested.group == 'org.mongodb' && details.requested.module.name != 'mongodb-driver-rx') { - details.useVersion(mongodbDriverVersion) - } else if (details.requested.group == 'org.springframework') { - details.useVersion(springVersion) - } else if (details.requested.group == "org.springframework.boot") { - details.useVersion(springBootVersion) - } - } - } - dependencies { - testImplementation "jakarta.annotation:jakarta.annotation-api:$jakartaAnnotationApiVersion" + implementation platform("org.grails:grails-bom:$grailsVersion") + implementation "jakarta.servlet:jakarta.servlet-api" + testImplementation "jakarta.annotation:jakarta.annotation-api" testImplementation "io.micrometer:micrometer-core:latest.integration" testImplementation "org.hibernate:hibernate-validator:$hibernateValidatorVersion" - testImplementation "org.apache.groovy:groovy-test-junit5:$groovyVersion" - testImplementation "org.spockframework:spock-core:$spockVersion", { transitive = false } + testImplementation "org.apache.groovy:groovy-test-junit5" + testImplementation "org.spockframework:spock-core", { transitive = false } testImplementation "org.junit.jupiter:junit-jupiter-api:$junitJupiterVersion" testImplementation "org.junit.platform:junit-platform-runner:$junitJupiterPlatformVersion" testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine:$junitJupiterVersion" @@ -220,53 +199,14 @@ subprojects { Project subproject -> withSourcesJar() } - configurations { - all { - resolutionStrategy { - force "org.apache.groovy:groovy:$groovyVersion" - force "org.apache.groovy:groovy-dateutil:$groovyVersion" - force "org.apache.groovy:groovy-xml:$groovyVersion" - force "org.apache.groovy:groovy-templates:$groovyVersion" - } - } - } - - configurations.all { - resolutionStrategy.eachDependency { DependencyResolveDetails details -> - def dependencyName = details.requested.name - if (dependencyName.startsWith('mongodb-driver') && !dependencyName.contains('-rx')) { - details.useVersion(mongodbDriverVersion) - } else if( details.requested.group == 'org.grails' && - details.requested.name in ['grails-datastore-core', - 'grails-datastore-async', - 'grails-datastore-gorm', - 'grails-datastore-gorm-async', - 'grails-datastore-gorm-rx', - 'grails-datastore-gorm-support', - 'grails-datastore-gorm-tck', - 'grails-datastore-gorm-test', - 'grails-datastore-gorm-validation', - 'grails-datastore-web'] - ) { - details.useVersion(datastoreVersion) - } else if (details.requested.group == 'org.mongodb' && details.requested.module.name != 'mongodb-driver-rx') { - details.useVersion(mongodbDriverVersion) - } else if(details.requested.group == 'org.springframework') { - details.useVersion(springVersion) - } else if (details.requested.group == 'org.springframework.boot') { - details.useVersion(springBootVersion) - } - } - } - dependencies { - api "org.apache.groovy:groovy:$groovyVersion" - api "org.apache.groovy:groovy-templates:$groovyVersion" + api "org.apache.groovy:groovy" + api "org.apache.groovy:groovy-templates" - testImplementation "org.apache.groovy:groovy-json:$groovyVersion" - testImplementation "org.apache.groovy:groovy-templates:$groovyVersion" - testImplementation "org.apache.groovy:groovy-test-junit5:$groovyVersion" - testImplementation "org.spockframework:spock-core:$spockVersion", { transitive = false } + testImplementation "org.apache.groovy:groovy-json" + testImplementation "org.apache.groovy:groovy-templates" + testImplementation "org.apache.groovy:groovy-test-junit5" + testImplementation "org.spockframework:spock-core", { transitive = false } testImplementation "org.junit.jupiter:junit-jupiter-api:$junitJupiterVersion" testImplementation "org.junit.platform:junit-platform-runner:$junitJupiterPlatformVersion" testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine:$junitJupiterVersion" diff --git a/docs/build.gradle b/docs/build.gradle index 24b23396..b9eb3bc2 100644 --- a/docs/build.gradle +++ b/docs/build.gradle @@ -25,28 +25,15 @@ configurations { } } -configurations.all { - resolutionStrategy.eachDependency { DependencyResolveDetails details -> - if (details.requested.group == 'org.apache.groovy' && details.requested.name.startsWith('groovy')) { - details.useVersion(groovyVersion) - } else if (details.requested.group == 'org.springframework') { - details.useVersion(springVersion) - } else if (details.requested.group == "org.springframework.boot") { - details.useVersion(springBootVersion) - } else if (details.requested.group == 'org.springframework.boot') { - details.useVersion(springBootVersion) - } - } -} dependencies { - documentation "org.fusesource.jansi:jansi:$jansiVersion" - documentation "org.apache.groovy:groovy:$groovyVersion" - documentation "org.apache.groovy:groovy-templates:$groovyVersion" - documentation "org.apache.groovy:groovy-dateutil:$groovyVersion" - documentation "com.github.javaparser:javaparser-core:$javaParserCoreVersion" + documentation "org.fusesource.jansi:jansi" + documentation "org.apache.groovy:groovy" + documentation "org.apache.groovy:groovy-templates" + documentation "org.apache.groovy:groovy-dateutil" + documentation "com.github.javaparser:javaparser-core" for(p in coreProjects) { - documentation "org.grails:grails-datastore-$p:$datastoreVersion" + documentation "org.grails:grails-datastore-$p" } project.rootProject.subprojects.findAll { !it.name.contains('-rx-') }.each { subproject -> if(subproject.name != "docs" && !subproject.name.startsWith('examples')) { diff --git a/examples/grails3-hibernate5-mongodb/build.gradle b/examples/grails3-hibernate5-mongodb/build.gradle index cb7306ab..11a278e9 100644 --- a/examples/grails3-hibernate5-mongodb/build.gradle +++ b/examples/grails3-hibernate5-mongodb/build.gradle @@ -1,70 +1,42 @@ +plugins { + id "com.bertramlabs.asset-pipeline" version "5.0.4" +} + group "examples" dependencies { - implementation "org.springframework.boot:spring-boot-starter-logging" + + implementation project(":grails-plugin") + implementation "org.mongodb:mongodb-driver-sync" + testImplementation "org.testcontainers:mongodb:$testcontainersMongodbVersion" + implementation "org.grails.plugins:hibernate5" + + implementation "org.grails:grails-core" + implementation "org.grails:grails-logging" + implementation "org.grails:grails-plugin-databinding" + implementation "org.grails:grails-plugin-i18n" + implementation "org.grails:grails-plugin-interceptors" + implementation "org.grails:grails-plugin-rest" + implementation "org.grails:grails-plugin-services" + implementation "org.grails:grails-plugin-url-mappings" + implementation "org.grails:grails-web-boot" + implementation "org.grails.plugins:gsp" + implementation "org.grails.plugins:scaffolding" implementation "org.springframework.boot:spring-boot-autoconfigure" + implementation "org.springframework.boot:spring-boot-starter" implementation "org.springframework.boot:spring-boot-starter-actuator" + implementation "org.springframework.boot:spring-boot-starter-logging" implementation "org.springframework.boot:spring-boot-starter-tomcat" - implementation "jakarta.servlet:jakarta.servlet-api:$servletApiVersion" - implementation "org.grails:grails-core:$grailsVersion" - implementation "org.grails:grails-dependencies:$grailsVersion", { - exclude module:'grails-datastore-simple' - } - implementation "org.grails:grails-web-boot:$grailsVersion" - implementation "org.mongodb:mongodb-driver-sync:$mongodbDriverVersion" - implementation project(":grails-plugin") - implementation "org.grails.plugins:hibernate5:$hibernatePluginVersion" - implementation "org.hibernate:hibernate-ehcache:$hibernateCoreVersion" - - runtimeOnly "com.bertramlabs.plugins:asset-pipeline-grails:$assetPipelineVersion" - runtimeOnly "com.h2database:h2:$h2Version" - runtimeOnly "org.apache.tomcat:tomcat-jdbc:$tomcatVersion" - runtimeOnly "org.grails.plugins:scaffolding:$scaffoldingVersion" - runtimeOnly "org.grails.plugins:fields:$fieldsVersion" - - testImplementation "org.grails:grails-gorm-testing-support:$grailsTestingSupportVersion" - testImplementation "org.grails:grails-web-testing-support:$grailsTestingSupportVersion" - testImplementation "org.testcontainers:mongodb:$testcontainersMongodbVersion" - testImplementation "io.netty:netty-transport:$nettyVersion" - testImplementation "io.netty:netty-codec:$nettyVersion" - testImplementation "io.netty:netty-handler:$nettyVersion" - testImplementation "org.grails.plugins:geb:$gebPluginVersion", { - exclude group: 'org.gebish', module: 'geb-spock' - } - implementation "com.github.erdi:webdriver-binaries-gradle-plugin:$webdriverBinariesPluginVersion" - testImplementation("org.grails.plugins:geb:$gebPluginVersion") { - exclude group: 'org.gebish', module: 'geb-spock' - } - testImplementation "org.gebish:geb-spock:$gebVersion" - - testRuntimeOnly "org.seleniumhq.selenium:selenium-chrome-driver:$seleniumVersion" - testRuntimeOnly "org.seleniumhq.selenium:selenium-firefox-driver:$seleniumVersion" - testRuntimeOnly "org.seleniumhq.selenium:selenium-safari-driver:$seleniumSafariDriverVersion" - - testImplementation "org.seleniumhq.selenium:selenium-remote-driver:$seleniumVersion" - testImplementation "org.seleniumhq.selenium:selenium-api:$seleniumVersion" - testImplementation "org.seleniumhq.selenium:selenium-support:$seleniumVersion" -} - -tasks.withType(Test) { - systemProperty "geb.env", System.getProperty('geb.env') - systemProperty "geb.build.reportsDir", reporting.file("geb/integrationTest") - if (!System.getenv().containsKey('CI')) { - systemProperty 'webdriver.chrome.driver', System.getProperty('webdriver.chrome.driver') - systemProperty 'webdriver.gecko.driver', System.getProperty('webdriver.gecko.driver') - } else { - systemProperty 'webdriver.chrome.driver', "${System.getenv('CHROMEWEBDRIVER')}/chromedriver" - systemProperty 'webdriver.gecko.driver', "${System.getenv('GECKOWEBDRIVER')}/geckodriver" - } + implementation "org.springframework.boot:spring-boot-starter-validation" + console "org.grails:grails-console" + runtimeOnly "com.bertramlabs.plugins:asset-pipeline-grails" + runtimeOnly "com.h2database:h2" + runtimeOnly "org.apache.tomcat:tomcat-jdbc" + runtimeOnly "org.fusesource.jansi:jansi" + integrationTestImplementation testFixtures("org.grails.plugins:geb") + testImplementation "org.grails:grails-gorm-testing-support" + testImplementation "org.grails:grails-web-testing-support" + testImplementation "org.spockframework:spock-core" } -webdriverBinaries { - if (!System.getenv().containsKey('CI')) { - chromedriver "$chromeDriverVersion" - geckodriver "$geckodriverVersion" - } -} -//compileGroovy.groovyOptions.forkOptions.jvmArgs = ['-Xdebug','-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005'] - - - +//compileGroovy.groovyOptions.forkOptions.jvmArgs = ['-Xdebug','-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005'] \ No newline at end of file diff --git a/examples/grails3-hibernate5-mongodb/src/integration-test/groovy/functional/tests/AuthorControllerSpec.groovy b/examples/grails3-hibernate5-mongodb/src/integration-test/groovy/functional/tests/AuthorControllerSpec.groovy index e43343be..73b1d4f4 100644 --- a/examples/grails3-hibernate5-mongodb/src/integration-test/groovy/functional/tests/AuthorControllerSpec.groovy +++ b/examples/grails3-hibernate5-mongodb/src/integration-test/groovy/functional/tests/AuthorControllerSpec.groovy @@ -1,10 +1,10 @@ package functional.tests -import geb.spock.GebSpec +import grails.plugin.geb.ContainerGebSpec import grails.testing.mixin.integration.Integration @Integration(applicationClass = Application) -class AuthorControllerSpec extends GebSpec { +class AuthorControllerSpec extends ContainerGebSpec { void "Test list authors"() { when:"The home page is visited" diff --git a/examples/grails3-hibernate5-mongodb/src/integration-test/groovy/functional/tests/BookControllerSpec.groovy b/examples/grails3-hibernate5-mongodb/src/integration-test/groovy/functional/tests/BookControllerSpec.groovy index e2b1ec33..0d4fbf05 100644 --- a/examples/grails3-hibernate5-mongodb/src/integration-test/groovy/functional/tests/BookControllerSpec.groovy +++ b/examples/grails3-hibernate5-mongodb/src/integration-test/groovy/functional/tests/BookControllerSpec.groovy @@ -1,10 +1,10 @@ package functional.tests -import geb.spock.GebSpec +import grails.plugin.geb.ContainerGebSpec import grails.testing.mixin.integration.Integration @Integration(applicationClass = Application) -class BookControllerSpec extends GebSpec { +class BookControllerSpec extends ContainerGebSpec { void "Test list books"() { when:"The home page is visited" diff --git a/examples/grails3-hibernate5-mongodb/src/integration-test/resources/GebConfig.groovy b/examples/grails3-hibernate5-mongodb/src/integration-test/resources/GebConfig.groovy deleted file mode 100644 index adb480e3..00000000 --- a/examples/grails3-hibernate5-mongodb/src/integration-test/resources/GebConfig.groovy +++ /dev/null @@ -1,41 +0,0 @@ -import org.openqa.selenium.chrome.ChromeDriver -import org.openqa.selenium.chrome.ChromeOptions -import org.openqa.selenium.firefox.FirefoxDriver -import org.openqa.selenium.firefox.FirefoxOptions -import org.openqa.selenium.safari.SafariDriver - -environments { - - // You need to configure in Safari -> Develop -> Allowed Remote Automation - safari { - driver = { new SafariDriver() } - } - - // run via “./gradlew -Dgeb.env=chrome iT” - chrome { - driver = { new ChromeDriver() } - } - - // run via “./gradlew -Dgeb.env=chromeHeadless iT” - chromeHeadless { - driver = { - ChromeOptions o = new ChromeOptions() - o.addArguments('headless') - new ChromeDriver(o) - } - } - - // run via “./gradlew -Dgeb.env=firefoxHeadless iT” - firefoxHeadless { - driver = { - FirefoxOptions o = new FirefoxOptions() - o.addArguments('-headless') - new FirefoxDriver(o) - } - } - - // run via “./gradlew -Dgeb.env=firefox iT” - firefox { - driver = { new FirefoxDriver() } - } -} \ No newline at end of file diff --git a/examples/grails3-mongodb-database-per-tenant/build.gradle b/examples/grails3-mongodb-database-per-tenant/build.gradle index f0ecc2c9..2652d6c1 100644 --- a/examples/grails3-mongodb-database-per-tenant/build.gradle +++ b/examples/grails3-mongodb-database-per-tenant/build.gradle @@ -1,54 +1,35 @@ +plugins { + id "com.bertramlabs.asset-pipeline" version "5.0.4" +} + dependencies { - implementation "org.springframework.boot:spring-boot-starter-logging" + implementation project(":grails-plugin") + implementation "org.mongodb:mongodb-driver-sync" + + implementation "org.grails:grails-core" + implementation "org.grails:grails-logging" + implementation "org.grails:grails-plugin-databinding" + implementation "org.grails:grails-plugin-i18n" + implementation "org.grails:grails-plugin-interceptors" + implementation "org.grails:grails-plugin-rest" + implementation "org.grails:grails-plugin-services" + implementation "org.grails:grails-plugin-url-mappings" + implementation "org.grails:grails-web-boot" + implementation "org.grails.plugins:gsp" + implementation "org.grails.plugins:scaffolding" implementation "org.springframework.boot:spring-boot-autoconfigure" + implementation "org.springframework.boot:spring-boot-starter" implementation "org.springframework.boot:spring-boot-starter-actuator" + implementation "org.springframework.boot:spring-boot-starter-logging" implementation "org.springframework.boot:spring-boot-starter-tomcat" - implementation "jakarta.servlet:jakarta.servlet-api:$servletApiVersion" - implementation "org.grails:grails-core:$grailsVersion" - implementation "org.grails:grails-dependencies:$grailsVersion", { - exclude module:'grails-datastore-simple' - } - implementation "org.grails:grails-web-boot:$grailsVersion" - implementation project(":grails-plugin") - implementation("org.ysb33r.gradle:grolifant80:$grolifantVersion") - - runtimeOnly "com.bertramlabs.plugins:asset-pipeline-grails:$assetPipelineVersion" - runtimeOnly "com.h2database:h2:$h2Version" - - implementation "org.mongodb:mongodb-driver-sync:$mongodbDriverVersion" - runtimeOnly "org.grails.plugins:scaffolding:$scaffoldingVersion" - runtimeOnly "org.grails.plugins:fields:$fieldsVersion" - - testImplementation "org.grails:grails-gorm-testing-support:$grailsTestingSupportVersion" - testImplementation "org.grails:grails-web-testing-support:$grailsTestingSupportVersion" - testImplementation("org.grails.plugins:geb:$gebPluginVersion") { - exclude group: 'org.gebish', module: 'geb-spock' - } - testImplementation "org.gebish:geb-spock:$gebVersion" - testRuntimeOnly "org.seleniumhq.selenium:selenium-chrome-driver:$seleniumVersion" - testRuntimeOnly "org.seleniumhq.selenium:selenium-firefox-driver:$seleniumVersion" - testRuntimeOnly "org.seleniumhq.selenium:selenium-safari-driver:$seleniumSafariDriverVersion" - - testImplementation "org.seleniumhq.selenium:selenium-remote-driver:$seleniumVersion" - testImplementation "org.seleniumhq.selenium:selenium-api:$seleniumVersion" - testImplementation "org.seleniumhq.selenium:selenium-support:$seleniumVersion" -} - -tasks.withType(Test) { - systemProperty "geb.env", System.getProperty('geb.env') - systemProperty "geb.build.reportsDir", reporting.file("geb/integrationTest") - if (!System.getenv().containsKey('CI')) { - systemProperty 'webdriver.chrome.driver', System.getProperty('webdriver.chrome.driver') - systemProperty 'webdriver.gecko.driver', System.getProperty('webdriver.gecko.driver') - } else { - systemProperty 'webdriver.chrome.driver', "${System.getenv('CHROMEWEBDRIVER')}/chromedriver" - systemProperty 'webdriver.gecko.driver', "${System.getenv('GECKOWEBDRIVER')}/geckodriver" - } -} - -webdriverBinaries { - if (!System.getenv().containsKey('CI')) { - chromedriver "$chromeDriverVersion" - geckodriver "$geckodriverVersion" - } + implementation "org.springframework.boot:spring-boot-starter-validation" + console "org.grails:grails-console" + runtimeOnly "com.bertramlabs.plugins:asset-pipeline-grails" + runtimeOnly "com.h2database:h2" + runtimeOnly "org.apache.tomcat:tomcat-jdbc" + runtimeOnly "org.fusesource.jansi:jansi" + integrationTestImplementation testFixtures("org.grails.plugins:geb") + testImplementation "org.grails:grails-gorm-testing-support" + testImplementation "org.grails:grails-web-testing-support" + testImplementation "org.spockframework:spock-core" } diff --git a/examples/grails3-mongodb-database-per-tenant/src/integration-test/resources/GebConfig.groovy b/examples/grails3-mongodb-database-per-tenant/src/integration-test/resources/GebConfig.groovy deleted file mode 100644 index adb480e3..00000000 --- a/examples/grails3-mongodb-database-per-tenant/src/integration-test/resources/GebConfig.groovy +++ /dev/null @@ -1,41 +0,0 @@ -import org.openqa.selenium.chrome.ChromeDriver -import org.openqa.selenium.chrome.ChromeOptions -import org.openqa.selenium.firefox.FirefoxDriver -import org.openqa.selenium.firefox.FirefoxOptions -import org.openqa.selenium.safari.SafariDriver - -environments { - - // You need to configure in Safari -> Develop -> Allowed Remote Automation - safari { - driver = { new SafariDriver() } - } - - // run via “./gradlew -Dgeb.env=chrome iT” - chrome { - driver = { new ChromeDriver() } - } - - // run via “./gradlew -Dgeb.env=chromeHeadless iT” - chromeHeadless { - driver = { - ChromeOptions o = new ChromeOptions() - o.addArguments('headless') - new ChromeDriver(o) - } - } - - // run via “./gradlew -Dgeb.env=firefoxHeadless iT” - firefoxHeadless { - driver = { - FirefoxOptions o = new FirefoxOptions() - o.addArguments('-headless') - new FirefoxDriver(o) - } - } - - // run via “./gradlew -Dgeb.env=firefox iT” - firefox { - driver = { new FirefoxDriver() } - } -} \ No newline at end of file diff --git a/examples/grails3-mongodb/build.gradle b/examples/grails3-mongodb/build.gradle index 829ad608..548e8759 100644 --- a/examples/grails3-mongodb/build.gradle +++ b/examples/grails3-mongodb/build.gradle @@ -1,61 +1,44 @@ +plugins { + id "com.bertramlabs.asset-pipeline" version "5.0.4" +} + group "examples" dependencies { - implementation "org.springframework.boot:spring-boot-starter-logging" + + implementation project(":grails-plugin") + implementation "org.mongodb:mongodb-driver-sync" + + implementation "org.grails:grails-core" + implementation "org.grails:grails-logging" + implementation "org.grails:grails-plugin-databinding" + implementation "org.grails:grails-plugin-i18n" + implementation "org.grails:grails-plugin-interceptors" + implementation "org.grails:grails-plugin-rest" + implementation "org.grails:grails-plugin-services" + implementation "org.grails:grails-plugin-url-mappings" + implementation "org.grails:grails-web-boot" + implementation "org.grails.plugins:gsp" + implementation "org.grails.plugins:scaffolding" implementation "org.springframework.boot:spring-boot-autoconfigure" + implementation "org.springframework.boot:spring-boot-starter" implementation "org.springframework.boot:spring-boot-starter-actuator" + implementation "org.springframework.boot:spring-boot-starter-logging" implementation "org.springframework.boot:spring-boot-starter-tomcat" - implementation "jakarta.servlet:jakarta.servlet-api:$servletApiVersion" - implementation "org.grails:grails-core:$grailsVersion" - implementation "org.grails:grails-dependencies:$grailsVersion", { - exclude module:'grails-datastore-simple' - } - implementation "org.grails:grails-web-boot:$grailsVersion" - implementation project(":grails-plugin") - implementation "org.mongodb:mongodb-driver-sync:$mongodbDriverVersion" - - runtimeOnly "com.bertramlabs.plugins:asset-pipeline-grails:$assetPipelineVersion" + implementation "org.springframework.boot:spring-boot-starter-validation" + console "org.grails:grails-console" + runtimeOnly "com.bertramlabs.plugins:asset-pipeline-grails" runtimeOnly "com.h2database:h2" - runtimeOnly "org.grails.plugins:scaffolding:$scaffoldingVersion" - runtimeOnly "org.grails.plugins:fields:$fieldsVersion" - - testImplementation "org.grails:grails-gorm-testing-support:$grailsTestingSupportVersion" - testImplementation "org.grails:grails-web-testing-support:$grailsTestingSupportVersion" - testImplementation "io.netty:netty-transport:$nettyVersion" - testImplementation "io.netty:netty-codec:$nettyVersion" - testImplementation "io.netty:netty-handler:$nettyVersion" - testImplementation "org.testcontainers:mongodb:$testcontainersMongodbVersion" - - testImplementation("org.grails.plugins:geb:$gebPluginVersion") { - exclude group: 'org.gebish', module: 'geb-spock' - } - testImplementation "org.gebish:geb-spock:$gebVersion" - testImplementation "org.seleniumhq.selenium:selenium-remote-driver:$seleniumVersion" - testImplementation "org.seleniumhq.selenium:selenium-api:$seleniumVersion" - testImplementation "org.seleniumhq.selenium:selenium-support:$seleniumVersion" - - testRuntimeOnly "org.seleniumhq.selenium:selenium-chrome-driver:$seleniumVersion" - testRuntimeOnly "org.seleniumhq.selenium:selenium-firefox-driver:$seleniumVersion" - testRuntimeOnly "org.seleniumhq.selenium:selenium-safari-driver:$seleniumSafariDriverVersion" -} + runtimeOnly "org.apache.tomcat:tomcat-jdbc" + runtimeOnly "org.fusesource.jansi:jansi" + integrationTestImplementation testFixtures("org.grails.plugins:geb") + testImplementation "org.grails:grails-gorm-testing-support" + testImplementation "org.grails:grails-web-testing-support" + testImplementation "org.spockframework:spock-core" -tasks.withType(Test) { - systemProperty "geb.env", System.getProperty('geb.env') - systemProperty "geb.build.reportsDir", reporting.file("geb/integrationTest") - if (!System.getenv().containsKey('CI')) { - systemProperty 'webdriver.chrome.driver', System.getProperty('webdriver.chrome.driver') - systemProperty 'webdriver.gecko.driver', System.getProperty('webdriver.gecko.driver') - } else { - systemProperty 'webdriver.chrome.driver', "${System.getenv('CHROMEWEBDRIVER')}/chromedriver" - systemProperty 'webdriver.gecko.driver', "${System.getenv('GECKOWEBDRIVER')}/geckodriver" - } -} + testImplementation "org.testcontainers:mongodb:$testcontainersMongodbVersion" -webdriverBinaries { - if (!System.getenv().containsKey('CI')) { - chromedriver "$chromeDriverVersion" - geckodriver "$geckodriverVersion" - } + integrationTestImplementation testFixtures('org.grails.plugins:geb') } diff --git a/examples/grails3-mongodb/src/integration-test/groovy/functional/tests/BookControllerSpec.groovy b/examples/grails3-mongodb/src/integration-test/groovy/functional/tests/BookControllerSpec.groovy index b4ec5cef..0d4fbf05 100644 --- a/examples/grails3-mongodb/src/integration-test/groovy/functional/tests/BookControllerSpec.groovy +++ b/examples/grails3-mongodb/src/integration-test/groovy/functional/tests/BookControllerSpec.groovy @@ -1,11 +1,10 @@ package functional.tests +import grails.plugin.geb.ContainerGebSpec import grails.testing.mixin.integration.Integration -import geb.spock.GebSpec - @Integration(applicationClass = Application) -class BookControllerSpec extends GebSpec { +class BookControllerSpec extends ContainerGebSpec { void "Test list books"() { when:"The home page is visited" diff --git a/examples/grails3-mongodb/src/integration-test/resources/GebConfig.groovy b/examples/grails3-mongodb/src/integration-test/resources/GebConfig.groovy deleted file mode 100644 index adb480e3..00000000 --- a/examples/grails3-mongodb/src/integration-test/resources/GebConfig.groovy +++ /dev/null @@ -1,41 +0,0 @@ -import org.openqa.selenium.chrome.ChromeDriver -import org.openqa.selenium.chrome.ChromeOptions -import org.openqa.selenium.firefox.FirefoxDriver -import org.openqa.selenium.firefox.FirefoxOptions -import org.openqa.selenium.safari.SafariDriver - -environments { - - // You need to configure in Safari -> Develop -> Allowed Remote Automation - safari { - driver = { new SafariDriver() } - } - - // run via “./gradlew -Dgeb.env=chrome iT” - chrome { - driver = { new ChromeDriver() } - } - - // run via “./gradlew -Dgeb.env=chromeHeadless iT” - chromeHeadless { - driver = { - ChromeOptions o = new ChromeOptions() - o.addArguments('headless') - new ChromeDriver(o) - } - } - - // run via “./gradlew -Dgeb.env=firefoxHeadless iT” - firefoxHeadless { - driver = { - FirefoxOptions o = new FirefoxOptions() - o.addArguments('-headless') - new FirefoxDriver(o) - } - } - - // run via “./gradlew -Dgeb.env=firefox iT” - firefox { - driver = { new FirefoxDriver() } - } -} \ No newline at end of file diff --git a/examples/springboot-mongodb/build.gradle b/examples/springboot-mongodb/build.gradle index 878a5c53..3cf9361c 100644 --- a/examples/springboot-mongodb/build.gradle +++ b/examples/springboot-mongodb/build.gradle @@ -1,29 +1,12 @@ -buildscript { - repositories { - mavenCentral() - } - dependencies { - classpath("org.springframework.boot:spring-boot-gradle-plugin:$springBootVersion") - } -} - apply plugin: 'org.springframework.boot' ext['groovy.version'] = "$groovyVersion" dependencies { - implementation "org.springframework.boot:spring-boot-starter-web:$springBootVersion" - implementation "org.mongodb:mongodb-driver-sync:$mongodbDriverVersion" + implementation "org.springframework.boot:spring-boot-starter-web" + implementation "org.mongodb:mongodb-driver-sync" implementation project(":gorm-mongodb-spring-boot") - testImplementation"org.springframework.boot:spring-boot-starter-test:$springBootVersion" - testImplementation"org.spockframework:spock-core:$spockVersion" -} - -configurations.all { - resolutionStrategy.eachDependency { DependencyResolveDetails details -> - if(details.requested.group == 'jakarta.validation' && details.requested.name.equals('validation-api')) { - details.useVersion("2.0.1.Final") - } - } + testImplementation"org.springframework.boot:spring-boot-starter-test" + testImplementation"org.spockframework:spock-core" } diff --git a/examples/test-data-service/build.gradle b/examples/test-data-service/build.gradle index d4edf5e7..005d69d1 100644 --- a/examples/test-data-service/build.gradle +++ b/examples/test-data-service/build.gradle @@ -4,6 +4,7 @@ buildscript { maven { url "https://plugins.gradle.org/m2/" } } dependencies { + classpath "org.grails:grails-gradle-plugin:$grailsGradlePluginVersion" classpath "org.grails.plugins:views-gradle:$grailsViewsVersion" } } @@ -11,28 +12,40 @@ buildscript { apply plugin: "java" dependencies { - profile "org.grails.profiles:rest-api" - implementation "org.springframework.boot:spring-boot-starter-logging" - implementation "org.springframework.boot:spring-boot-autoconfigure" - implementation "org.grails:grails-core:$grailsVersion" - implementation "org.springframework.boot:spring-boot-starter-actuator" - implementation "org.springframework.boot:spring-boot-starter-tomcat" - implementation ("org.grails:grails-dependencies") { - exclude module:'grails-datastore-simple' - } implementation "org.grails:grails-plugin-codecs" - implementation "org.grails:grails-plugin-services" implementation "org.grails:grails-plugin-datasource" - implementation "org.grails:grails-web-boot" - implementation "org.grails:grails-logging" implementation "org.grails.plugins:cache" implementation "org.grails.plugins:events" implementation project(":grails-plugin") - implementation "org.mongodb:mongodb-driver-sync:$mongodbDriverVersion" - implementation "org.grails.plugins:views-json:$grailsViewsVersion" - implementation "org.grails.plugins:views-json-templates:$grailsViewsVersion" + implementation "org.mongodb:mongodb-driver-sync" implementation "org.grails.plugins:spring-security-core:$grailsSpringSecurityCoreVersion" implementation "org.grails.plugins:spring-security-rest:$grailsSpringSecurityRestVersion" - testImplementation "org.grails:grails-gorm-testing-support:$grailsTestingSupportVersion" - testImplementation "org.grails:grails-web-testing-support" + implementation "jakarta.servlet:jakarta.servlet-api" + + profile "org.grails.profiles:rest-api" + implementation "org.grails:grails-core" + implementation "org.grails:grails-logging" + implementation "org.grails:grails-plugin-databinding" + implementation "org.grails:grails-plugin-i18n" + implementation "org.grails:grails-plugin-interceptors" + implementation "org.grails:grails-plugin-rest" + implementation "org.grails:grails-plugin-services" + implementation "org.grails:grails-plugin-url-mappings" + implementation "org.grails:grails-web-boot" + implementation "org.grails.plugins:views-json" + implementation "org.grails.plugins:views-json-templates" + implementation "org.springframework.boot:spring-boot-autoconfigure" + implementation "org.springframework.boot:spring-boot-starter" + implementation "org.springframework.boot:spring-boot-starter-actuator" + implementation "org.springframework.boot:spring-boot-starter-logging" + implementation "org.springframework.boot:spring-boot-starter-tomcat" + implementation "org.springframework.boot:spring-boot-starter-validation" + console "org.grails:grails-console" + runtimeOnly "com.h2database:h2" + runtimeOnly "org.apache.tomcat:tomcat-jdbc" + testImplementation "org.grails:grails-gorm-testing-support" + testImplementation "org.grails:views-json-testing-support" + testImplementation "org.spockframework:spock-core" + + } diff --git a/gradle.properties b/gradle.properties index f2b67f6b..af0fde1f 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,55 +1,19 @@ projectVersion=9.0.0-SNAPSHOT -#4.0.2-4.0.3 breaks org.ysb33r.gradle:grolifant for chromedriver -asciidoctorGradleVersion=4.0.1 -assetPipelineVersion=5.0.1 +asciidoctorGradleVersion=4.0.3 caffeineVersion=3.1.8 datastoreVersion=9.0.0-SNAPSHOT -fieldsVersion=6.0.0-SNAPSHOT -gebVersion=7.0 -gebPluginVersion=5.0.0-SNAPSHOT -gormVersion=9.0.0-SNAPSHOT gradleNexusPublishPluginVersion=1.3.0 grailsGradlePluginVersion=7.0.0-SNAPSHOT -grailsShellVersion=7.0.0-SNAPSHOT -grailsSpringSecurityCoreVersion=6.0.0-SNAPSHOT -grailsSpringSecurityRestVersion=3.0.1 -grailsTestingSupportVersion=4.0.0-SNAPSHOT +grailsSpringSecurityCoreVersion=7.0.0-SNAPSHOT +grailsSpringSecurityRestVersion=6.0.0-SNAPSHOT grailsVersion=7.0.0-SNAPSHOT grailsViewsVersion=4.0.0-SNAPSHOT -grolifantVersion=4.0.0 -groovyVersion=4.0.23 -h2Version=1.4.200 -hibernateCoreVersion=5.6.15.Final -hibernatePluginVersion=9.0.0-SNAPSHOT -hibernateValidatorVersion=7.0.5.Final -jakartaElVersion=4.0.0 -jakartaValidationVersion=3.0.2 -jakartaPersistenceVersion=3.1.0 -jakartaTransactionVersion=2.0.1 -jakartaAnnotationApiVersion=3.0.0 -jakartaXmlBindVersion=4.0.2 -jansiVersion=2.4.1 -javaParserCoreVersion=3.26.2 +groovyVersion=4.0.24 +hibernateValidatorVersion=8.0.1.Final junitJupiterVersion=5.11.0 junitJupiterPlatformVersion=1.11.0 -micrometer.version=1.8.0 -micronautVersion=4.6.5 mongodbDriverVersion=5.1.4 -nettyVersion=4.1.112.Final -pluginGrailsVersion=7.0.0-SNAPSHOT -seleniumSafariDriverVersion=4.23.1 -seleniumVersion=4.23.1 -servletApiVersion=6.0.0 -scaffoldingVersion=6.0.0-SNAPSHOT -spockVersion=2.3-groovy-4.0 -springBootVersion=3.3.4 -springVersion=6.1.13 testcontainersMongodbVersion=1.20.1 -tomcatVersion=10.1.25 -webdriverBinariesPluginVersion=3.2 -chromeDriverVersion=126.0.6478.126 -geckodriverVersion=0.32.2 -edgeDriverVersion=110.0.1587.57 org.gradle.caching=true org.gradle.parallel=false diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 9355b415..e2847c82 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.10-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/grails-datastore-gorm-bson/build.gradle b/grails-datastore-gorm-bson/build.gradle index 87986132..ce4fe868 100644 --- a/grails-datastore-gorm-bson/build.gradle +++ b/grails-datastore-gorm-bson/build.gradle @@ -1,4 +1,5 @@ dependencies { - api "org.grails:grails-datastore-gorm:$datastoreVersion" - api "org.mongodb:bson:$mongodbDriverVersion" + implementation platform("org.grails:grails-bom:$grailsVersion") + api "org.grails:grails-datastore-gorm" + api "org.mongodb:bson" } diff --git a/grails-datastore-gorm-bson/src/main/groovy/org/grails/datastore/bson/json/JsonWriter.java b/grails-datastore-gorm-bson/src/main/groovy/org/grails/datastore/bson/json/JsonWriter.java index cc0834ec..147c5ece 100644 --- a/grails-datastore-gorm-bson/src/main/groovy/org/grails/datastore/bson/json/JsonWriter.java +++ b/grails-datastore-gorm-bson/src/main/groovy/org/grails/datastore/bson/json/JsonWriter.java @@ -20,12 +20,12 @@ import org.bson.json.JsonWriterSettings; import org.bson.types.Decimal128; import org.bson.types.ObjectId; -import org.springframework.util.Base64Utils; import java.io.IOException; import java.io.Writer; import java.text.DateFormat; import java.text.SimpleDateFormat; +import java.util.Base64; import java.util.Date; import java.util.TimeZone; @@ -111,7 +111,7 @@ protected void doWriteBinaryData(BsonBinary value) { try { writeNameHelper(getName()); byte[] data = value.getData(); - writer.write(Base64Utils.encodeToString(data)); + writer.write(Base64.getEncoder().encodeToString(data)); setState(getNextState()); } catch (IOException e) { throwBsonException(e); diff --git a/grails-datastore-gorm-mongodb-ext/build.gradle b/grails-datastore-gorm-mongodb-ext/build.gradle index bd2dc8e0..b2f95569 100644 --- a/grails-datastore-gorm-mongodb-ext/build.gradle +++ b/grails-datastore-gorm-mongodb-ext/build.gradle @@ -1,4 +1,5 @@ dependencies { - api "org.mongodb:mongodb-driver-sync:$mongodbDriverVersion" + implementation platform("org.grails:grails-bom:$grailsVersion") + api "org.mongodb:mongodb-driver-sync" api project(":grails-datastore-gorm-mongodb") } diff --git a/grails-datastore-gorm-mongodb/build.gradle b/grails-datastore-gorm-mongodb/build.gradle index ccf74264..2bdedf23 100644 --- a/grails-datastore-gorm-mongodb/build.gradle +++ b/grails-datastore-gorm-mongodb/build.gradle @@ -1,26 +1,27 @@ import org.gradle.api.tasks.testing.logging.TestExceptionFormat dependencies { - api "org.mongodb:mongodb-driver-sync:$mongodbDriverVersion" - api "org.grails:grails-datastore-gorm-validation:$datastoreVersion" - api "org.grails:grails-datastore-gorm:$datastoreVersion" + implementation platform("org.grails:grails-bom:$grailsVersion") + api "org.mongodb:mongodb-driver-sync" + api "org.grails:grails-datastore-gorm-validation" + api "org.grails:grails-datastore-gorm" api project(":grails-datastore-gorm-bson") - implementation "org.grails:grails-core:$grailsVersion" + implementation "org.grails:grails-core" implementation "com.github.ben-manes.caffeine:caffeine:$caffeineVersion" - compileOnly "org.grails:grails-datastore-gorm-support:$datastoreVersion", { + compileOnly "org.grails:grails-datastore-gorm-support", { exclude group:'org.grails', module:'grails-datastore-gorm-hibernate-core' } - compileOnly "jakarta.servlet:jakarta.servlet-api:$servletApiVersion" + compileOnly "jakarta.servlet:jakarta.servlet-api" testImplementation "org.grails:grails-datastore-gorm-tck:$datastoreVersion" - testImplementation "org.grails:grails-gorm-testing-support:$grailsTestingSupportVersion" + testImplementation "org.grails:grails-gorm-testing-support" testImplementation "org.hibernate:hibernate-validator:$hibernateValidatorVersion" - testImplementation "org.grails:grails-datastore-gorm-support:$datastoreVersion", { + testImplementation "org.grails:grails-datastore-gorm-support", { exclude group: "org.grails", module:"grails-datastore-gorm-hibernate-core" } - testRuntimeOnly "org.springframework:spring-aop:$springVersion" + testRuntimeOnly "org.springframework:spring-aop" } @@ -61,30 +62,29 @@ test.doFirst { else { null } - } + } def tckClassesFile = project - .configurations - .testCompileClasspath - .resolvedConfiguration - .getResolvedArtifacts() - .find { resolved -> - resolved.moduleVersion.id.name == 'grails-datastore-gorm-tck' - }.file + .configurations + .testCompileClasspath + .resolvedConfiguration + .getResolvedArtifacts() + .find { resolved -> + resolved.moduleVersion.id.name == 'grails-datastore-gorm-tck' + }.file - def tckClassesDir = project.file("${project.buildDir}/tck") + def tckClassesDir = project.file("${project.buildDir}/tck") copy { from zipTree(tckClassesFile) - into tckClassesDir + into tckClassesDir } copy { from tckClassesDir - into sourceSets.test.output.classesDirs.find { it.path.contains('classes/groovy') } + into sourceSets.test.output.classesDirs.find { it.path.contains('classes' + File.separator + 'groovy') } include "**/*.class" exclude { details -> // Do not copy across any TCK class (or nested classes of that class) // If there is a corresponding source file in the particular modules // test source tree. Allows a module to override a test/helper. - if (!details.file.isFile()) { return false } diff --git a/grails-plugin/build.gradle b/grails-plugin/build.gradle index 5595f44b..c8eb9d77 100644 --- a/grails-plugin/build.gradle +++ b/grails-plugin/build.gradle @@ -1,33 +1,13 @@ -dependencyManagement { - imports { - mavenBom "org.grails:grails-bom:$pluginGrailsVersion" - } - applyMavenExclusions false -} -configurations.all { - resolutionStrategy.eachDependency { DependencyResolveDetails details -> - if(details.requested.group == 'org.grails' && - details.requested.name.startsWith('grails-datastore') && - !details.requested.name.contains('mongodb') && - !details.requested.name.contains('bson')) { - details.useVersion(datastoreVersion) - } else if(details.requested.group == 'org.apache.groovy' && details.requested.name.startsWith('groovy')) { - details.useVersion(groovyVersion) - } else if(details.requested.group == 'org.springframework') { - details.useVersion(springVersion) - } - } -} dependencies { - compileOnly "org.grails:grails-core:$grailsVersion" - compileOnly "org.grails:grails-bootstrap:$grailsVersion" - compileOnly "org.spockframework:spock-core:$spockVersion", { + compileOnly "org.grails:grails-core" + compileOnly "org.grails:grails-bootstrap" + compileOnly "org.spockframework:spock-core", { exclude group: "junit", module: "junit-dep" exclude group: 'org.hamcrest', module: 'hamcrest-core' } - api "org.grails:grails-datastore-web:$datastoreVersion" - api "org.grails:grails-datastore-gorm-support:$datastoreVersion", { + api "org.grails:grails-datastore-web" + api "org.grails:grails-datastore-gorm-support", { exclude group:'org.springframework', module:'spring-context' exclude group:'org.springframework', module:'spring-core' exclude group:'org.springframework', module:'spring-beans' From 0dd006528ae1e3e5e545929e12a3e4b5abadcb01 Mon Sep 17 00:00:00 2001 From: James Fredley Date: Wed, 18 Dec 2024 21:58:51 -0500 Subject: [PATCH 2/6] remove unused ext variables --- build.gradle | 5 ----- 1 file changed, 5 deletions(-) diff --git a/build.gradle b/build.gradle index 9dc5ee7f..a19989ce 100644 --- a/build.gradle +++ b/build.gradle @@ -71,11 +71,6 @@ allprojects { } subprojects { Project subproject -> - - ext['gorm.version'] = datastoreVersion - ext['junit-jupiter.version'] = junitJupiterVersion - ext['mongodb.version'] = mongodbDriverVersion - if (project.name.startsWith("examples")) { apply plugin: 'groovy' From 9492acf95a183cd3098c9c7afa61a89f94ea1e62 Mon Sep 17 00:00:00 2001 From: James Fredley Date: Thu, 19 Dec 2024 10:26:03 -0500 Subject: [PATCH 3/6] Use versions from grails-bom -> spring-boot-dependencies --- build.gradle | 14 +++++++------- gradle.properties | 4 ---- grails-datastore-gorm-mongodb/build.gradle | 4 ++-- 3 files changed, 9 insertions(+), 13 deletions(-) diff --git a/build.gradle b/build.gradle index a19989ce..f2278394 100644 --- a/build.gradle +++ b/build.gradle @@ -92,12 +92,12 @@ subprojects { Project subproject -> implementation "jakarta.servlet:jakarta.servlet-api" testImplementation "jakarta.annotation:jakarta.annotation-api" testImplementation "io.micrometer:micrometer-core:latest.integration" - testImplementation "org.hibernate:hibernate-validator:$hibernateValidatorVersion" + testImplementation "org.hibernate:hibernate-validator" testImplementation "org.apache.groovy:groovy-test-junit5" testImplementation "org.spockframework:spock-core", { transitive = false } - testImplementation "org.junit.jupiter:junit-jupiter-api:$junitJupiterVersion" - testImplementation "org.junit.platform:junit-platform-runner:$junitJupiterPlatformVersion" - testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine:$junitJupiterVersion" + testImplementation "org.junit.jupiter:junit-jupiter-api" + testImplementation "org.junit.platform:junit-platform-runner" + testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine" } tasks.withType(Test) { @@ -202,9 +202,9 @@ subprojects { Project subproject -> testImplementation "org.apache.groovy:groovy-templates" testImplementation "org.apache.groovy:groovy-test-junit5" testImplementation "org.spockframework:spock-core", { transitive = false } - testImplementation "org.junit.jupiter:junit-jupiter-api:$junitJupiterVersion" - testImplementation "org.junit.platform:junit-platform-runner:$junitJupiterPlatformVersion" - testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine:$junitJupiterVersion" + testImplementation "org.junit.jupiter:junit-jupiter-api" + testImplementation "org.junit.platform:junit-platform-runner" + testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine" } publishing { diff --git a/gradle.properties b/gradle.properties index af0fde1f..6ddc002a 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,5 @@ projectVersion=9.0.0-SNAPSHOT asciidoctorGradleVersion=4.0.3 -caffeineVersion=3.1.8 datastoreVersion=9.0.0-SNAPSHOT gradleNexusPublishPluginVersion=1.3.0 grailsGradlePluginVersion=7.0.0-SNAPSHOT @@ -9,9 +8,6 @@ grailsSpringSecurityRestVersion=6.0.0-SNAPSHOT grailsVersion=7.0.0-SNAPSHOT grailsViewsVersion=4.0.0-SNAPSHOT groovyVersion=4.0.24 -hibernateValidatorVersion=8.0.1.Final -junitJupiterVersion=5.11.0 -junitJupiterPlatformVersion=1.11.0 mongodbDriverVersion=5.1.4 testcontainersMongodbVersion=1.20.1 diff --git a/grails-datastore-gorm-mongodb/build.gradle b/grails-datastore-gorm-mongodb/build.gradle index 2bdedf23..5cb6d108 100644 --- a/grails-datastore-gorm-mongodb/build.gradle +++ b/grails-datastore-gorm-mongodb/build.gradle @@ -8,7 +8,7 @@ dependencies { api project(":grails-datastore-gorm-bson") implementation "org.grails:grails-core" - implementation "com.github.ben-manes.caffeine:caffeine:$caffeineVersion" + implementation "com.github.ben-manes.caffeine:caffeine" compileOnly "org.grails:grails-datastore-gorm-support", { exclude group:'org.grails', module:'grails-datastore-gorm-hibernate-core' @@ -17,7 +17,7 @@ dependencies { testImplementation "org.grails:grails-datastore-gorm-tck:$datastoreVersion" testImplementation "org.grails:grails-gorm-testing-support" - testImplementation "org.hibernate:hibernate-validator:$hibernateValidatorVersion" + testImplementation "org.hibernate:hibernate-validator" testImplementation "org.grails:grails-datastore-gorm-support", { exclude group: "org.grails", module:"grails-datastore-gorm-hibernate-core" } From 8dfea49ccc499df94eca7ab20610edad3d843775 Mon Sep 17 00:00:00 2001 From: James Fredley Date: Thu, 19 Dec 2024 15:37:16 -0500 Subject: [PATCH 4/6] update dependencies --- build.gradle | 2 +- examples/grails3-mongodb/build.gradle | 2 -- grails-datastore-gorm-mongodb/build.gradle | 2 +- 3 files changed, 2 insertions(+), 4 deletions(-) diff --git a/build.gradle b/build.gradle index f2278394..eda57b6d 100644 --- a/build.gradle +++ b/build.gradle @@ -92,7 +92,7 @@ subprojects { Project subproject -> implementation "jakarta.servlet:jakarta.servlet-api" testImplementation "jakarta.annotation:jakarta.annotation-api" testImplementation "io.micrometer:micrometer-core:latest.integration" - testImplementation "org.hibernate:hibernate-validator" + testImplementation "org.hibernate.validator:hibernate-validator" testImplementation "org.apache.groovy:groovy-test-junit5" testImplementation "org.spockframework:spock-core", { transitive = false } testImplementation "org.junit.jupiter:junit-jupiter-api" diff --git a/examples/grails3-mongodb/build.gradle b/examples/grails3-mongodb/build.gradle index 548e8759..1c06aff3 100644 --- a/examples/grails3-mongodb/build.gradle +++ b/examples/grails3-mongodb/build.gradle @@ -37,8 +37,6 @@ dependencies { testImplementation "org.spockframework:spock-core" testImplementation "org.testcontainers:mongodb:$testcontainersMongodbVersion" - - integrationTestImplementation testFixtures('org.grails.plugins:geb') } diff --git a/grails-datastore-gorm-mongodb/build.gradle b/grails-datastore-gorm-mongodb/build.gradle index 5cb6d108..b299b59e 100644 --- a/grails-datastore-gorm-mongodb/build.gradle +++ b/grails-datastore-gorm-mongodb/build.gradle @@ -17,7 +17,7 @@ dependencies { testImplementation "org.grails:grails-datastore-gorm-tck:$datastoreVersion" testImplementation "org.grails:grails-gorm-testing-support" - testImplementation "org.hibernate:hibernate-validator" + testImplementation "org.hibernate.validator:hibernate-validator" testImplementation "org.grails:grails-datastore-gorm-support", { exclude group: "org.grails", module:"grails-datastore-gorm-hibernate-core" } From 11a5fc4d1c023240c606d4c42ec6834a08299ef1 Mon Sep 17 00:00:00 2001 From: James Fredley Date: Thu, 19 Dec 2024 15:43:13 -0500 Subject: [PATCH 5/6] remove unused property usesGeb --- build.gradle | 2 -- 1 file changed, 2 deletions(-) diff --git a/build.gradle b/build.gradle index eda57b6d..f908bca0 100644 --- a/build.gradle +++ b/build.gradle @@ -81,8 +81,6 @@ subprojects { Project subproject -> apply plugin:"org.grails.grails-gsp" } - boolean usesGeb = project.name.contains('grails3-hibernate5-mongodb') || project.name.contains('grails3-mongodb') || project.name.contains('grails3-mongodb-database-per-tenant')|| project.name.contains('grails3-rxmongodb') - if (project.name == "examples-test-data-service") { apply plugin:"org.grails.grails-web" } From 2e30bf9538981052c8a82a4618dfffdbc4f24172 Mon Sep 17 00:00:00 2001 From: James Fredley Date: Thu, 19 Dec 2024 16:32:57 -0500 Subject: [PATCH 6/6] remove unneeded dependencies --- build.gradle | 2 -- examples/test-data-service/build.gradle | 1 - 2 files changed, 3 deletions(-) diff --git a/build.gradle b/build.gradle index f908bca0..44997948 100644 --- a/build.gradle +++ b/build.gradle @@ -87,8 +87,6 @@ subprojects { Project subproject -> dependencies { implementation platform("org.grails:grails-bom:$grailsVersion") - implementation "jakarta.servlet:jakarta.servlet-api" - testImplementation "jakarta.annotation:jakarta.annotation-api" testImplementation "io.micrometer:micrometer-core:latest.integration" testImplementation "org.hibernate.validator:hibernate-validator" testImplementation "org.apache.groovy:groovy-test-junit5" diff --git a/examples/test-data-service/build.gradle b/examples/test-data-service/build.gradle index 005d69d1..55b0f9ac 100644 --- a/examples/test-data-service/build.gradle +++ b/examples/test-data-service/build.gradle @@ -20,7 +20,6 @@ dependencies { implementation "org.mongodb:mongodb-driver-sync" implementation "org.grails.plugins:spring-security-core:$grailsSpringSecurityCoreVersion" implementation "org.grails.plugins:spring-security-rest:$grailsSpringSecurityRestVersion" - implementation "jakarta.servlet:jakarta.servlet-api" profile "org.grails.profiles:rest-api" implementation "org.grails:grails-core"