Skip to content

Gradle updated to use version catalogs #1620

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

Merged
merged 2 commits into from
Feb 5, 2025
Merged
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
16 changes: 8 additions & 8 deletions bson-kotlin/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,12 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinCompile

plugins {
id("org.jetbrains.kotlin.jvm")
`java-library`
id("java-library")

// Test based plugins
id("com.diffplug.spotless")
id("org.jetbrains.dokka")
id("io.gitlab.arturbosch.detekt")
alias(libs.plugins.spotless)
alias(libs.plugins.dokka)
alias(libs.plugins.detekt)
}

repositories {
Expand All @@ -39,13 +39,13 @@ ext.set("pomName", "Bson Kotlin")

dependencies {
// Align versions of all Kotlin components
implementation(platform("org.jetbrains.kotlin:kotlin-bom"))
implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8")
implementation(platform(libs.kotlin.bom))
implementation(libs.kotlin.stdlib.jdk8)

api(project(path = ":bson", configuration = "default"))
implementation("org.jetbrains.kotlin:kotlin-reflect")
implementation(libs.kotlin.reflect)

testImplementation("org.jetbrains.kotlin:kotlin-test-junit")
testImplementation(libs.junit.kotlin)
testImplementation(project(path = ":driver-core", configuration = "default"))
}

Expand Down
32 changes: 14 additions & 18 deletions bson-kotlinx/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,12 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
plugins {
id("org.jetbrains.kotlin.jvm")
kotlin("plugin.serialization")
`java-library`
id("java-library")

// Test based plugins
id("com.diffplug.spotless")
id("org.jetbrains.dokka")
id("io.gitlab.arturbosch.detekt")
alias(libs.plugins.spotless)
alias(libs.plugins.dokka)
alias(libs.plugins.detekt)
}

repositories {
Expand All @@ -38,32 +38,28 @@ description = "Bson Kotlinx Codecs"

ext.set("pomName", "Bson Kotlinx")

ext.set("kotlinxDatetimeVersion", "0.4.0")

val kotlinxDatetimeVersion: String by ext

java {
registerFeature("dateTimeSupport") { usingSourceSet(sourceSets["main"]) }
registerFeature("jsonSupport") { usingSourceSet(sourceSets["main"]) }
}

dependencies {
// Align versions of all Kotlin components
implementation(platform("org.jetbrains.kotlin:kotlin-bom"))
implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8")
implementation(platform(libs.kotlin.bom))
implementation(libs.kotlin.stdlib.jdk8)

implementation(platform("org.jetbrains.kotlinx:kotlinx-serialization-bom:1.5.0"))
implementation("org.jetbrains.kotlinx:kotlinx-serialization-core")
"dateTimeSupportImplementation"("org.jetbrains.kotlinx:kotlinx-datetime:$kotlinxDatetimeVersion")
"jsonSupportImplementation"("org.jetbrains.kotlinx:kotlinx-serialization-json")
implementation(platform(libs.kotlinx.serialization))
implementation(libs.kotlinx.serialization.core)
"dateTimeSupportImplementation"(libs.kotlinx.serialization.datetime)
"jsonSupportImplementation"(libs.kotlinx.serialization.json)

api(project(path = ":bson", configuration = "default"))
implementation("org.jetbrains.kotlin:kotlin-reflect")
implementation(libs.kotlin.reflect)

testImplementation("org.jetbrains.kotlin:kotlin-test-junit")
testImplementation(project(path = ":driver-core", configuration = "default"))
testImplementation("org.jetbrains.kotlinx:kotlinx-datetime:$kotlinxDatetimeVersion")
testImplementation("org.jetbrains.kotlinx:kotlinx-serialization-json")
testImplementation(libs.junit.kotlin)
testImplementation(libs.kotlinx.serialization.datetime)
testImplementation(libs.kotlinx.serialization.json)
}

kotlin { explicitApi() }
Expand Down
111 changes: 38 additions & 73 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -14,33 +14,21 @@
* limitations under the License.
*/

apply plugin: 'eclipse'
apply plugin: 'idea'

buildscript {
repositories {
mavenLocal()
mavenCentral()
maven { url "https://plugins.gradle.org/m2/" }
}
dependencies {
classpath 'com.netflix.nebula:gradle-extra-configurations-plugin:7.0.0'
classpath "com.github.spotbugs.snom:spotbugs-gradle-plugin:6.0.15"
classpath 'biz.aQute.bnd:biz.aQute.bnd.gradle:5.1.2'

// Scala plugins
classpath "com.adtran:scala-multiversion-plugin:2.0.4"
classpath "com.diffplug.spotless:spotless-plugin-gradle:6.14.0"

// kotlin plugins
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.8.10"
classpath "org.jetbrains.kotlin:kotlin-serialization:1.8.10"
classpath "org.jetbrains.dokka:dokka-gradle-plugin:1.8.10"
classpath "io.gitlab.arturbosch.detekt:detekt-gradle-plugin:1.21.0"

// Test logging plugin
classpath 'com.adarshr:gradle-test-logger-plugin:2.1.0'
}
plugins {
id("eclipse")
id("idea")

alias(libs.plugins.bnd) apply false
alias(libs.plugins.detekt) apply false
alias(libs.plugins.dokka) apply false
alias(libs.plugins.download) apply false
alias(libs.plugins.kotlin) apply false
alias(libs.plugins.kotlin.serialization) apply false
alias(libs.plugins.optional) apply false
alias(libs.plugins.scala.multiversion) apply false
alias(libs.plugins.spotbugs) apply false
alias(libs.plugins.spotless) apply false
alias(libs.plugins.test.logger) apply false
}

//////////////////////////////////////////
Expand All @@ -49,17 +37,6 @@ buildscript {

ext {
configDir = new File(rootDir, 'config')
jnrUnixsocketVersion = '0.38.17'
nettyVersion = '4.1.87.Final'
snappyVersion = '1.1.10.3'
zstdVersion = '1.5.5-3'
awsSdkV2Version = '2.18.9'
awsSdkV1Version = '1.12.337'
projectReactorVersion = '2022.0.0'
junitBomVersion = '5.10.2'
logbackVersion = '1.3.14'
graalSdkVersion = '24.0.0'
reflectionsVersion = '0.9.10'
gitVersion = getGitVersion()
}

Expand Down Expand Up @@ -109,27 +86,21 @@ configure(javaProjects) {
}

configure(scalaProjects) {
apply plugin: 'scala'
apply plugin: 'java-library'
apply plugin: 'idea'
apply plugin: "java-library"
apply plugin: "scala"
apply plugin: "com.adtran.scala-multiversion-plugin"
apply plugin: "com.diffplug.spotless"

group = 'org.mongodb.scala'

dependencies {
api ('org.scala-lang:scala-library:%scala-version%')
api ('org.scala-lang:scala-reflect:%scala-version%')

testImplementation(platform("org.junit:junit-bom:$junitBomVersion"))
testImplementation("org.junit.vintage:junit-vintage-engine")

testImplementation('org.scalatest:scalatest-flatspec_%%:3.2.9')
testImplementation('org.scalatest:scalatest-shouldmatchers_%%:3.2.9')
testImplementation('org.scalatestplus:junit-4-13_%%:3.2.9.0')
testImplementation('org.scalatestplus:mockito-3-12_%%:3.2.10.0')
testImplementation("ch.qos.logback:logback-classic:$logbackVersion")
testImplementation("org.reflections:reflections:$reflectionsVersion")
api(libs.scala.library)
api(libs.scala.reflect)

testImplementation(platform(libs.junit.bom))
testImplementation(libs.bundles.junit.vintage)
testImplementation(libs.bundles.scalatest)
testImplementation(libs.reflections)
}

test{
Expand Down Expand Up @@ -177,12 +148,12 @@ configure(javaMainProjects) {
apply plugin: 'java-library'

dependencies {
compileOnly 'com.google.code.findbugs:jsr305:1.3.9'
api 'org.slf4j:slf4j-api:1.7.6', optional
testImplementation 'com.google.code.findbugs:jsr305:1.3.9'
compileOnly(libs.findbugs.jsr)
api(libs.slf4j, optional)

testImplementation(libs.findbugs.jsr)
// https://issues.apache.org/jira/browse/GROOVY-10194
testImplementation 'org.codehaus.groovy:groovy-all:3.0.9'
testImplementation(libs.groovy)
}

/* Compiling */
Expand Down Expand Up @@ -251,25 +222,19 @@ configure(javaCodeCheckedProjects) {
apply plugin: 'com.adarshr.test-logger'

dependencies {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some dependencies were removed here, are they redundant?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Here we take advantage of bundles in the version catalog - which expands out to the same thing.

testImplementation(platform("org.junit:junit-bom:$junitBomVersion"))
testImplementation('org.junit.jupiter:junit-jupiter')
testImplementation('org.junit.jupiter:junit-jupiter-params')
testImplementation('org.junit.jupiter:junit-jupiter-engine')
testImplementation('org.junit.vintage:junit-vintage-engine')

testImplementation platform('org.spockframework:spock-bom:2.1-groovy-3.0')
testImplementation 'org.spockframework:spock-core'
testImplementation 'org.spockframework:spock-junit4'
testImplementation(platform(libs.junit.bom))
testImplementation(libs.bundles.junit.vintage)

testImplementation(platform(libs.spock.bom))
testImplementation(libs.bundles.spock)

if ('8'.equals(findProperty("javaVersion"))) {
testImplementation("org.mockito:mockito-core:4.6.1")
testImplementation("org.mockito:mockito-inline:4.6.1")
testImplementation(libs.bundles.mockito.java8)
} else {
testImplementation("org.mockito:mockito-core:5.11.0")
testImplementation(libs.bundles.mockito)
}
testImplementation 'cglib:cglib-nodep:2.2.2'
testImplementation 'org.objenesis:objenesis:1.3'
testImplementation 'org.hamcrest:hamcrest-all:1.3'
testImplementation "ch.qos.logback:logback-classic:$logbackVersion"
testImplementation(libs.cglib)
testImplementation(libs.objenesis)
testImplementation project(':util:spock') //Adding categories to classpath
}

Expand Down
2 changes: 1 addition & 1 deletion driver-benchmarks/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ sourceSets {
dependencies {
api project(':driver-sync')
api project(':mongodb-crypt')
implementation "ch.qos.logback:logback-classic:$logbackVersion"
implementation(libs.logback.classic)
}

javadoc {
Expand Down
37 changes: 16 additions & 21 deletions driver-core/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@


plugins {
id 'com.github.gmazzo.buildconfig' version '3.0.3'
alias(libs.plugins.build.config)
}

archivesBaseName = 'mongodb-driver-core'
Expand All @@ -33,38 +33,33 @@ configurations {
}
}

def classifiers = ["linux-x86_64", "linux-aarch_64", "osx-x86_64", "osx-aarch_64", "windows-x86_64"]
dependencies {
api project(path: ':bson', configuration: 'default')
implementation project(path: ':bson-record-codec', configuration: 'default')
implementation project(path: ':bson-kotlin', configuration: 'default'), optional
implementation project(path: ':bson-kotlinx', configuration: 'default'), optional
implementation project(path: ':mongodb-crypt', configuration: 'default'), optional

implementation "com.github.jnr:jnr-unixsocket:$jnrUnixsocketVersion", optional
api platform("io.netty:netty-bom:$nettyVersion")
api "io.netty:netty-buffer", optional
api "io.netty:netty-transport", optional
api "io.netty:netty-handler", optional
compileOnly "org.graalvm.sdk:graal-sdk:$graalSdkVersion"
implementation(libs.jnr.unixsocket, optional)
api(platform(libs.netty.bom), optional)
api(libs.bundles.netty, optional)
compileOnly(libs.graal.sdk)

// Optionally depend on both AWS SDK v2 and v1. The driver will use v2 is present, v1 if present, or built-in functionality if
// neither are present
implementation "software.amazon.awssdk:auth:$awsSdkV2Version", optional
implementation "software.amazon.awssdk:sts:$awsSdkV2Version", optional
implementation "com.amazonaws:aws-java-sdk-core:$awsSdkV1Version", optional
implementation "com.amazonaws:aws-java-sdk-sts:$awsSdkV1Version", optional
// Optionally depend on both AWS SDK v2 and v1.
// The driver will use v2 is present, v1 if present, or built-in functionality if neither are present
implementation(libs.bundles.aws.java.sdk.v1, optional)
implementation(libs.bundles.aws.java.sdk.v2, optional)

implementation "org.xerial.snappy:snappy-java:$snappyVersion", optional
implementation "com.github.luben:zstd-jni:$zstdVersion", optional
implementation(libs.snappy.java, optional)
implementation(libs.zstd.jni, optional)

testImplementation project(':bson').sourceSets.test.output
testImplementation('org.junit.jupiter:junit-jupiter-api')
testImplementation("org.reflections:reflections:$reflectionsVersion")
testRuntimeOnly "io.netty:netty-tcnative-boringssl-static"
testImplementation(libs.bundles.junit)
testImplementation(libs.reflections)

classifiers.forEach {
testRuntimeOnly "io.netty:netty-tcnative-boringssl-static::$it"
testRuntimeOnly(libs.netty.boringssl)
["linux-x86_64", "linux-aarch_64", "osx-x86_64", "osx-aarch_64", "windows-x86_64"].each { arch ->
testRuntimeOnly(variantOf(libs.netty.boringssl) { classifier(arch) })
}
}

Expand Down
33 changes: 16 additions & 17 deletions driver-kotlin-coroutine/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,12 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinCompile

plugins {
id("org.jetbrains.kotlin.jvm")
`java-library`
id("java-library")

// Test based plugins
id("com.diffplug.spotless")
id("org.jetbrains.dokka")
id("io.gitlab.arturbosch.detekt")
alias(libs.plugins.spotless)
alias(libs.plugins.dokka)
alias(libs.plugins.detekt)
}

repositories {
Expand Down Expand Up @@ -56,26 +56,25 @@ val integrationTestImplementation: Configuration by

dependencies {
// Align versions of all Kotlin components
implementation(platform("org.jetbrains.kotlin:kotlin-bom"))
implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8")
implementation(platform(libs.kotlin.bom))
implementation(libs.kotlin.stdlib.jdk8)

implementation(platform("org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.6.4"))
api("org.jetbrains.kotlinx:kotlinx-coroutines-core")
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-reactive")
implementation(platform(libs.kotlinx.coroutines.bom))
api(libs.kotlinx.coroutines.core)
implementation(libs.kotlinx.coroutines.reactive)

api(project(path = ":bson", configuration = "default"))
api(project(path = ":driver-reactive-streams", configuration = "default"))
implementation(project(path = ":bson-kotlin", configuration = "default"))

testImplementation("org.jetbrains.kotlin:kotlin-reflect")
testImplementation("org.jetbrains.kotlin:kotlin-test-junit")
testImplementation("org.mockito.kotlin:mockito-kotlin:4.1.0")
testImplementation("org.mockito:mockito-junit-jupiter:4.11.0")
testImplementation("org.assertj:assertj-core:3.24.2")
testImplementation("io.github.classgraph:classgraph:4.8.154")
testImplementation(libs.kotlin.reflect)
testImplementation(libs.junit.kotlin)
testImplementation(libs.bundles.mockito.kotlin)
testImplementation(libs.assertj)
testImplementation(libs.classgraph)

integrationTestImplementation("org.jetbrains.kotlin:kotlin-test-junit")
integrationTestImplementation("org.jetbrains.kotlinx:kotlinx-coroutines-test")
integrationTestImplementation(libs.junit.kotlin)
integrationTestImplementation(libs.kotlinx.coroutines.test)
integrationTestImplementation(project(path = ":driver-sync"))
integrationTestImplementation(project(path = ":driver-core"))
integrationTestImplementation(project(path = ":bson"))
Expand Down
Loading