diff --git a/.github/workflows/continuous-integration-workflow.yml b/.github/workflows/continuous-integration-workflow.yml index e632b359f5..4a4b6e4856 100644 --- a/.github/workflows/continuous-integration-workflow.yml +++ b/.github/workflows/continuous-integration-workflow.yml @@ -83,7 +83,7 @@ jobs: export GRADLE_ENTERPRISE_CACHE_USERNAME="$GRADLE_ENTERPRISE_CACHE_USER" export GRADLE_ENTERPRISE_CACHE_PASSWORD="$GRADLE_ENTERPRISE_CACHE_PASSWORD" export GRADLE_ENTERPRISE_ACCESS_KEY="$GRADLE_ENTERPRISE_SECRET_ACCESS_KEY" - ./gradlew test --refresh-dependencies -PartifactoryUsername="$ARTIFACTORY_USERNAME" -PartifactoryPassword="$ARTIFACTORY_PASSWORD" -PforceMavenRepositories=snapshot -PspringVersion='5.+' -PreactorVersion='20+' -PspringDataVersion='Neumann-BUILD-SNAPSHOT' -PrsocketVersion=1.1.0-SNAPSHOT -PspringBootVersion=2.4.0-SNAPSHOT -PlocksDisabled --stacktrace + ./gradlew test --refresh-dependencies -PartifactoryUsername="$ARTIFACTORY_USERNAME" -PartifactoryPassword="$ARTIFACTORY_PASSWORD" -PforceMavenRepositories=snapshot -PisOverrideVersionCatalog -PspringVersion='5.+' -PreactorVersion='20+' -PspringDataVersion='Neumann-BUILD-SNAPSHOT' -PrsocketVersion=1.1.0-SNAPSHOT -PspringBootVersion=2.4.0-SNAPSHOT -PlocksDisabled --stacktrace check_samples: name: Check Samples project needs: [prerequisites] diff --git a/build.gradle b/build.gradle index 3d44f13d38..da2d4b49f2 100644 --- a/build.gradle +++ b/build.gradle @@ -3,11 +3,11 @@ import trang.RncToXsd buildscript { dependencies { - classpath "io.spring.javaformat:spring-javaformat-gradle-plugin:$springJavaformatVersion" - classpath 'io.spring.nohttp:nohttp-gradle:0.0.11' - classpath "io.freefair.gradle:aspectj-plugin:6.6-rc1" - classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion" - classpath "com.netflix.nebula:nebula-project-plugin:8.2.0" + classpath libs.io.spring.javaformat.spring.javaformat.gradle.plugin + classpath libs.io.spring.nohttp.nohttp.gradle + classpath libs.io.freefair.gradle.aspectj.plugin + classpath libs.org.jetbrains.kotlin.kotlin.gradle.plugin + classpath libs.com.netflix.nebula.nebula.project.plugin } repositories { maven { url 'https://plugins.gradle.org/m2/' } @@ -142,7 +142,7 @@ allprojects { pluginManager.withPlugin("io.spring.convention.checkstyle", { plugin -> configure(plugin) { dependencies { - checkstyle "io.spring.javaformat:spring-javaformat-checkstyle:$springJavaformatVersion" + checkstyle libs.io.spring.javaformat.spring.javaformat.checkstyle } checkstyle { toolVersion = '8.34' diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index 11e81a1d3a..856f4ab47f 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -79,34 +79,37 @@ configurations { } dependencies { - implementation 'com.google.code.gson:gson:2.8.6' - implementation 'com.thaiopensource:trang:20091111' - implementation 'net.sourceforge.saxon:saxon:9.1.0.8' - implementation 'org.yaml:snakeyaml:1.30' + implementation platform(libs.io.projectreactor.reactor.bom) + + implementation libs.com.google.code.gson.gson + implementation libs.com.thaiopensource.trag + implementation libs.net.sourceforge.saxon.saxon + implementation libs.org.yaml.snakeyaml implementation localGroovy() - implementation 'io.github.gradle-nexus:publish-plugin:1.1.0' - implementation 'io.projectreactor:reactor-core:3.5.9' - implementation 'org.gretty:gretty:4.0.3' - implementation 'com.apollographql.apollo:apollo-runtime:2.4.5' - implementation 'com.github.ben-manes:gradle-versions-plugin:0.38.0' - implementation 'com.github.spullara.mustache.java:compiler:0.9.4' - implementation 'io.spring.javaformat:spring-javaformat-gradle-plugin:0.0.15' - implementation 'io.spring.nohttp:nohttp-gradle:0.0.11' - implementation 'net.sourceforge.htmlunit:htmlunit:2.37.0' - implementation 'org.hidetake:gradle-ssh-plugin:2.10.1' - implementation 'org.jfrog.buildinfo:build-info-extractor-gradle:4.29.0' - implementation 'org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:2.7.1' + implementation libs.io.github.gradle.nexus.publish.plugin + implementation 'io.projectreactor:reactor-core' + implementation libs.org.gretty.gretty + implementation libs.com.apollographql.apollo.apollo.runtime + implementation libs.com.github.ben.manes.gradle.versions.plugin + implementation libs.com.github.spullara.mustache.java.compiler + implementation libs.io.spring.javaformat.spring.javaformat.gradle.plugin + implementation libs.io.spring.nohttp.nohttp.gradle + implementation libs.net.sourceforge.htmlunit + implementation libs.org.hidetake.gradle.ssh.plugin + implementation libs.org.jfrog.buildinfo.build.info.extractor.gradle + implementation libs.org.sonarsource.scanner.gradle.sonarqube.gradle.plugin - testImplementation platform('org.junit:junit-bom:5.9.3') + testImplementation platform(libs.org.junit.junit.bom) + testImplementation platform(libs.org.mockito.mockito.bom) testImplementation "org.junit.jupiter:junit-jupiter-api" testImplementation "org.junit.jupiter:junit-jupiter-params" testImplementation "org.junit.jupiter:junit-jupiter-engine" - testImplementation 'org.apache.commons:commons-io:1.3.2' - testImplementation 'org.assertj:assertj-core:3.13.2' - testImplementation 'org.mockito:mockito-core:3.12.4' - testImplementation 'org.mockito:mockito-junit-jupiter:3.12.4' - testImplementation "com.squareup.okhttp3:mockwebserver:3.14.9" + testImplementation libs.org.apache.commons.commons.io + testImplementation libs.org.assertj.assertj.core + testImplementation 'org.mockito:mockito-core' + testImplementation 'org.mockito:mockito-junit-jupiter' + testImplementation libs.com.squareup.okhttp3.mockwebserver } diff --git a/buildSrc/settings.gradle b/buildSrc/settings.gradle new file mode 100644 index 0000000000..0aba7326a4 --- /dev/null +++ b/buildSrc/settings.gradle @@ -0,0 +1,7 @@ +dependencyResolutionManagement { + versionCatalogs { + libs { + from(files("../gradle/libs.versions.toml")) + } + } +} diff --git a/buildSrc/src/main/groovy/io/spring/gradle/convention/CheckstylePlugin.groovy b/buildSrc/src/main/groovy/io/spring/gradle/convention/CheckstylePlugin.groovy index 4ed89b8bef..15ba096adf 100644 --- a/buildSrc/src/main/groovy/io/spring/gradle/convention/CheckstylePlugin.groovy +++ b/buildSrc/src/main/groovy/io/spring/gradle/convention/CheckstylePlugin.groovy @@ -1,5 +1,5 @@ /* - * Copyright 2016-2019 the original author or authors. + * Copyright 2016-2023 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of @@ -18,6 +18,7 @@ package io.spring.gradle.convention import org.gradle.api.Plugin import org.gradle.api.Project +import org.gradle.api.artifacts.VersionCatalogsExtension import org.gradle.api.plugins.JavaPlugin /** @@ -31,12 +32,14 @@ class CheckstylePlugin implements Plugin { @Override void apply(Project project) { + def versionCatalog = project.rootProject.extensions.getByType(VersionCatalogsExtension.class) + .named("libs") project.plugins.withType(JavaPlugin) { def checkstyleDir = project.rootProject.file(CHECKSTYLE_DIR) if (checkstyleDir.exists() && checkstyleDir.directory) { project.getPluginManager().apply('checkstyle') - project.dependencies.add('checkstyle', 'io.spring.javaformat:spring-javaformat-checkstyle:0.0.15') - project.dependencies.add('checkstyle', 'io.spring.nohttp:nohttp-checkstyle:0.0.11') + project.dependencies.add('checkstyle', versionCatalog.findLibrary('io-spring-javaformat-spring-javaformat-checkstyle').get()) + project.dependencies.add('checkstyle', versionCatalog.findLibrary('io-spring-nohttp-nohttp-checkstyle').get()) project.checkstyle { configDirectory = checkstyleDir diff --git a/buildSrc/src/main/java/org/springframework/gradle/sagan/SaganCreateReleaseTask.java b/buildSrc/src/main/java/org/springframework/gradle/sagan/SaganCreateReleaseTask.java index 0d1262a980..7c37a02143 100644 --- a/buildSrc/src/main/java/org/springframework/gradle/sagan/SaganCreateReleaseTask.java +++ b/buildSrc/src/main/java/org/springframework/gradle/sagan/SaganCreateReleaseTask.java @@ -1,5 +1,5 @@ /* - * Copyright 2019-2020 the original author or authors. + * Copyright 2019-2023 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -19,13 +19,13 @@ package org.springframework.gradle.sagan; import java.util.regex.Matcher; import java.util.regex.Pattern; -import org.eclipse.core.runtime.Assert; import org.gradle.api.DefaultTask; import org.gradle.api.tasks.Input; import org.gradle.api.tasks.TaskAction; import org.springframework.gradle.github.user.GitHubUserApi; import org.springframework.gradle.github.user.User; +import org.springframework.util.Assert; public class SaganCreateReleaseTask extends DefaultTask { diff --git a/dependencies/spring-security-dependencies.gradle b/dependencies/spring-security-dependencies.gradle index e54201f371..5a24cbae39 100644 --- a/dependencies/spring-security-dependencies.gradle +++ b/dependencies/spring-security-dependencies.gradle @@ -7,72 +7,79 @@ javaPlatform { } dependencies { - api platform("org.springframework:spring-framework-bom:$springFrameworkVersion") - api platform("io.projectreactor:reactor-bom:$reactorVersion") - api platform("io.rsocket:rsocket-bom:1.1.4") - api platform("org.junit:junit-bom:5.9.3") - api platform("org.mockito:mockito-bom:4.8.1") - api platform("org.springframework.data:spring-data-bom:2022.0.9") - api platform("org.jetbrains.kotlin:kotlin-bom:$kotlinVersion") - api platform("org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.6.4") - api platform("com.fasterxml.jackson:jackson-bom:2.14.3") + if (project.hasProperty("isOverrideVersionCatalog")) { + def springFrameworkVersion = project.property("springFrameworkVersion") + def reactorVersion = project.property("reactorVersion") + def springDataVersion = project.property("springDataVersion") + api platform("org.springframework:spring-framework-bom:$springFrameworkVersion") + api platform("io.projectreactor:reactor-bom:$reactorVersion") + api platform("org.springframework.data:spring-data-bom:$springDataVersion") + } else { + api platform(libs.org.springframework.spring.framework.bom) + api platform(libs.io.projectreactor.reactor.bom) + api platform(libs.org.springframework.data.spring.data.bom) + } + api platform(libs.io.rsocket.rsocket.bom) + api platform(libs.org.junit.junit.bom) + api platform(libs.org.mockito.mockito.bom) + api platform(libs.org.jetbrains.kotlin.kotlin.bom) + api platform(libs.org.jetbrains.kotlinx.kotlinx.coroutines.bom) + api platform(libs.com.fasterxml.jackson.jackson.bom) constraints { - api "ch.qos.logback:logback-classic:1.4.11" - api "com.google.inject:guice:3.0" - api "com.nimbusds:nimbus-jose-jwt:9.31" - api "com.nimbusds:oauth2-oidc-sdk:9.43.3" - api "com.squareup.okhttp3:mockwebserver:3.14.9" - api "com.squareup.okhttp3:okhttp:3.14.9" - api "com.unboundid:unboundid-ldapsdk:6.0.9" - api "commons-collections:commons-collections:3.2.2" - api "io.mockk:mockk:1.13.7" - api "io.micrometer:micrometer-observation:$micrometerVersion" - api "jakarta.annotation:jakarta.annotation-api:2.1.1" - api "jakarta.inject:jakarta.inject-api:2.0.1" - api "jakarta.servlet.jsp.jstl:jakarta.servlet.jsp.jstl-api:3.0.0" - api "jakarta.servlet.jsp:jakarta.servlet.jsp-api:3.1.1" - api "jakarta.servlet:jakarta.servlet-api:6.0.0" - api "jakarta.xml.bind:jakarta.xml.bind-api:4.0.0" - api "jakarta.persistence:jakarta.persistence-api:3.1.0" - api "jakarta.websocket:jakarta.websocket-api:2.1.1" - api "jakarta.websocket:jakarta.websocket-client-api:2.1.1" - api "ldapsdk:ldapsdk:4.1" - api "net.sourceforge.htmlunit:htmlunit:2.66.0" - api "org.apache.directory.server:apacheds-core-entry:1.5.5" - api "org.apache.directory.server:apacheds-core:1.5.5" - api "org.apache.directory.server:apacheds-protocol-ldap:1.5.5" - api "org.apache.directory.server:apacheds-protocol-shared:1.5.5" - api "org.apache.directory.server:apacheds-server-jndi:1.5.5" - api "org.apache.directory.shared:shared-ldap:0.9.15" - api "org.apache.httpcomponents:httpclient:4.5.14" - api "org.aspectj:aspectjrt:$aspectjVersion" - api "org.aspectj:aspectjweaver:$aspectjVersion" - api "org.assertj:assertj-core:3.24.2" - api "org.bouncycastle:bcpkix-jdk15on:1.70" - api "org.bouncycastle:bcprov-jdk15on:1.70" - api "org.eclipse.jetty:jetty-server:11.0.15" - api "org.eclipse.jetty:jetty-servlet:11.0.15" - api "jakarta.persistence:jakarta.persistence-api:3.1.0" - api "org.hamcrest:hamcrest:2.2" - api "org.hibernate.orm:hibernate-core:6.1.7.Final" - api "org.hsqldb:hsqldb:2.7.2" - api "org.apereo.cas.client:cas-client-core:4.0.2" - api "org.opensaml:opensaml-core:$openSamlVersion" - api "org.opensaml:opensaml-saml-api:$openSamlVersion" - api "org.opensaml:opensaml-saml-impl:$openSamlVersion" - api "org.python:jython:2.5.3" - api "org.seleniumhq.selenium:htmlunit-driver:2.66.0" - api "org.seleniumhq.selenium:selenium-java:3.141.59" - api "org.seleniumhq.selenium:selenium-support:3.141.59" - api "org.skyscreamer:jsonassert:1.5.1" - api "org.slf4j:log4j-over-slf4j:1.7.36" - api "org.slf4j:slf4j-api:2.0.7" - api "org.springframework.ldap:spring-ldap-core:3.0.5" - api "org.synchronoss.cloud:nio-multipart-parser:1.1.0" - api 'org.apache.maven.resolver:maven-resolver-connector-basic:1.8.2' - api 'org.apache.maven.resolver:maven-resolver-impl:1.8.2' - api 'org.apache.maven.resolver:maven-resolver-transport-http:1.8.2' - api 'org.apache.maven:maven-resolver-provider:3.8.8' + api libs.ch.qos.logback.logback.classic + api libs.com.google.inject.guice + api libs.com.nimbusds.nimbus.jose.jwt + api libs.com.nimbusds.oauth2.oidc.sdk + api libs.com.squareup.okhttp3.mockwebserver + api libs.com.squareup.okhttp3.okhttp + api libs.com.unboundid.unboundid.ldapsdk + api libs.commons.collections + api libs.io.mockk + api libs.io.micrometer.micrometer.observation + api libs.jakarta.annotation.jakarta.annotation.api + api libs.jakarta.inject.jakarta.inject.api + api libs.jakarta.servlet.jsp.jstl.jakarta.servlet.jsp.jstl.api + api libs.jakarta.servlet.jsp.jakarta.servlet.jsp.api + api libs.jakarta.servlet.jakarta.servlet.api + api libs.jakarta.xml.bind.jakarta.xml.bind.api + api libs.jakarta.persistence.jakarta.persistence.api + api libs.jakarta.websocket.jakarta.websocket.api + api libs.jakarta.websocket.jakarta.websocket.client.api + api libs.ldapsdk + api libs.net.sourceforge.htmlunit + api libs.org.apache.directory.server.apacheds.entry + api libs.org.apache.directory.server.apacheds.core + api libs.org.apache.directory.server.apacheds.protocol.ldap + api libs.org.apache.directory.server.apacheds.protocol.shared + api libs.org.apache.directory.server.apacheds.server.jndi + api libs.org.apache.directory.shared.shared.ldap + api libs.org.apache.httpcomponents.httpclient + api libs.org.aspectj.aspectjrt + api libs.org.aspectj.aspectjweaver + api libs.org.assertj.assertj.core + api libs.org.bouncycastle.bcpkix.jdk15on + api libs.org.bouncycastle.bcprov.jdk15on + api libs.org.eclipse.jetty.jetty.server + api libs.org.eclipse.jetty.jetty.servlet + api libs.org.hamcrest + api libs.org.hibernate.orm.hibernate.core + api libs.org.hsqldb + api libs.org.apereo.cas.client.cas.client.core + api libs.org.opensaml.opensaml.core + api libs.org.opensaml.opensaml.saml.api + api libs.org.opensaml.opensaml.saml.impl + api libs.org.python.jython + api libs.org.seleniumhq.selenium.htmlunit.driver + api libs.org.seleniumhq.selenium.selenium.java + api libs.org.seleniumhq.selenium.selenium.support + api libs.org.skyscreamer.jsonassert + api libs.org.slf4j.log4j.over.slf4j + api libs.org.slf4j.slf4j.api + api libs.org.springframework.ldap.spring.ldap.core + api libs.org.synchronoss.cloud.nio.multipart.parser + api libs.org.apache.maven.resolver.maven.resolver.connector.basic + api libs.org.apache.maven.resolver.maven.resolver.impl + api libs.org.apache.maven.resolver.maven.resolver.transport.http + api libs.org.apache.maven.maven.resolver.provider } } - diff --git a/docs/spring-security-docs.gradle b/docs/spring-security-docs.gradle index 502f336bc0..5112f6be5b 100644 --- a/docs/spring-security-docs.gradle +++ b/docs/spring-security-docs.gradle @@ -31,6 +31,13 @@ dependencies { } def generateAttributes() { + def springFrameworkVersion = libs.org.springframework.spring.framework.bom.get().versionConstraint.displayName + springFrameworkVersion = springFrameworkVersion.contains("-") + ? springFrameworkVersion.substring(0, springFrameworkVersion.indexOf("-")) + : springFrameworkVersion + def springBootVersion = project.property("springBootVersion") + def samplesBranch = project.property("samplesBranch") + def docsTag = snapshotBuild ? 'current' : project.version def ghTag = snapshotBuild ? 'main' : project.version def ghUrl = "https://github.com/spring-projects/spring-security/tree/$ghTag" diff --git a/gradle.properties b/gradle.properties index 8a2981bf5f..0bc7c54f20 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,12 +1,5 @@ -aspectjVersion=1.9.20 -reactorVersion=2022.0.10 -springJavaformatVersion=0.0.39 springBootVersion=3.1.1 -springFrameworkVersion=6.0.11 -micrometerVersion=1.10.10 -openSamlVersion=4.1.1 version=6.1.5-SNAPSHOT -kotlinVersion=1.8.22 samplesBranch=main org.gradle.jvmargs=-Xmx3g -XX:+HeapDumpOnOutOfMemoryError org.gradle.parallel=true diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml new file mode 100644 index 0000000000..19965b0487 --- /dev/null +++ b/gradle/libs.versions.toml @@ -0,0 +1,105 @@ +[versions] +com-squareup-okhttp3 = "3.14.9" +io-rsocket = "1.1.4" +io-spring-javaformat = "0.0.39" +io-spring-nohttp = "0.0.11" +jakarta-websocket = "2.1.1" +org-apache-directory-server = "1.5.5" +org-apache-maven-resolver = "1.8.2" +org-aspectj = "1.9.20" +org-bouncycastle = "1.70" +org-eclipse-jetty = "11.0.15" +org-jetbrains-kotlin = "1.8.22" +org-jetbrains-kotlinx = "1.6.4" +org-mockito = "4.8.1" +org-opensaml = "4.1.1" +org-springframework = "6.0.11" + +[libraries] +ch-qos-logback-logback-classic = "ch.qos.logback:logback-classic:1.4.11" +com-fasterxml-jackson-jackson-bom = "com.fasterxml.jackson:jackson-bom:2.14.3" +com-google-inject-guice = "com.google.inject:guice:3.0" +com-netflix-nebula-nebula-project-plugin = "com.netflix.nebula:nebula-project-plugin:8.2.0" +com-nimbusds-nimbus-jose-jwt = "com.nimbusds:nimbus-jose-jwt:9.31" +com-nimbusds-oauth2-oidc-sdk = "com.nimbusds:oauth2-oidc-sdk:9.43.3" +com-squareup-okhttp3-mockwebserver = { module = "com.squareup.okhttp3:mockwebserver", version.ref = "com-squareup-okhttp3" } +com-squareup-okhttp3-okhttp = { module = "com.squareup.okhttp3:okhttp", version.ref = "com-squareup-okhttp3" } +com-unboundid-unboundid-ldapsdk = "com.unboundid:unboundid-ldapsdk:6.0.9" +commons-collections = "commons-collections:commons-collections:3.2.2" +io-freefair-gradle-aspectj-plugin = "io.freefair.gradle:aspectj-plugin:6.6-rc1" +io-micrometer-micrometer-observation = "io.micrometer:micrometer-observation:1.10.10" +io-mockk = "io.mockk:mockk:1.13.7" +io-projectreactor-reactor-bom = "io.projectreactor:reactor-bom:2022.0.10" +io-rsocket-rsocket-bom = { module = "io.rsocket:rsocket-bom", version.ref = "io-rsocket" } +io-spring-javaformat-spring-javaformat-checkstyle = { module = "io.spring.javaformat:spring-javaformat-checkstyle", version.ref = "io-spring-javaformat" } +io-spring-javaformat-spring-javaformat-gradle-plugin = { module = "io.spring.javaformat:spring-javaformat-gradle-plugin", version.ref = "io-spring-javaformat" } +io-spring-nohttp-nohttp-checkstyle = { module = "io.spring.nohttp:nohttp-checkstyle", version.ref = "io-spring-nohttp" } +io-spring-nohttp-nohttp-gradle = { module = "io.spring.nohttp:nohttp-gradle", version.ref = "io-spring-nohttp" } +jakarta-annotation-jakarta-annotation-api = "jakarta.annotation:jakarta.annotation-api:2.1.1" +jakarta-inject-jakarta-inject-api = "jakarta.inject:jakarta.inject-api:2.0.1" +jakarta-persistence-jakarta-persistence-api = "jakarta.persistence:jakarta.persistence-api:3.1.0" +jakarta-servlet-jakarta-servlet-api = "jakarta.servlet:jakarta.servlet-api:6.0.0" +jakarta-servlet-jsp-jakarta-servlet-jsp-api = "jakarta.servlet.jsp:jakarta.servlet.jsp-api:3.1.1" +jakarta-servlet-jsp-jstl-jakarta-servlet-jsp-jstl-api = "jakarta.servlet.jsp.jstl:jakarta.servlet.jsp.jstl-api:3.0.0" +jakarta-websocket-jakarta-websocket-api = { module = "jakarta.websocket:jakarta.websocket-api", version.ref = "jakarta-websocket" } +jakarta-websocket-jakarta-websocket-client-api = { module = "jakarta.websocket:jakarta.websocket-client-api", version.ref = "jakarta-websocket" } +jakarta-xml-bind-jakarta-xml-bind-api = "jakarta.xml.bind:jakarta.xml.bind-api:4.0.0" +ldapsdk = "ldapsdk:ldapsdk:4.1" +net-sourceforge-htmlunit = "net.sourceforge.htmlunit:htmlunit:2.66.0" +org-apache-directory-server-apacheds-core = { module = "org.apache.directory.server:apacheds-core", version.ref = "org-apache-directory-server" } +org-apache-directory-server-apacheds-entry = { module = "org.apache.directory.server:apacheds-core-entry", version.ref = "org-apache-directory-server" } +org-apache-directory-server-apacheds-protocol-ldap = { module = "org.apache.directory.server:apacheds-protocol-ldap", version.ref = "org-apache-directory-server" } +org-apache-directory-server-apacheds-protocol-shared = { module = "org.apache.directory.server:apacheds-protocol-shared", version.ref = "org-apache-directory-server" } +org-apache-directory-server-apacheds-server-jndi = { module = "org.apache.directory.server:apacheds-server-jndi", version.ref = "org-apache-directory-server" } +org-apache-directory-shared-shared-ldap = "org.apache.directory.shared:shared-ldap:0.9.15" +org-apache-httpcomponents-httpclient = "org.apache.httpcomponents:httpclient:4.5.14" +org-apache-maven-maven-resolver-provider = "org.apache.maven:maven-resolver-provider:3.8.8" +org-apache-maven-resolver-maven-resolver-connector-basic = { module = "org.apache.maven.resolver:maven-resolver-connector-basic", version.ref = "org-apache-maven-resolver" } +org-apache-maven-resolver-maven-resolver-impl = { module = "org.apache.maven.resolver:maven-resolver-impl", version.ref = "org-apache-maven-resolver" } +org-apache-maven-resolver-maven-resolver-transport-http = { module = "org.apache.maven.resolver:maven-resolver-transport-http", version.ref = "org-apache-maven-resolver" } +org-apereo-cas-client-cas-client-core = "org.apereo.cas.client:cas-client-core:4.0.2" +org-aspectj-aspectjrt = { module = "org.aspectj:aspectjrt", version.ref = "org-aspectj" } +org-aspectj-aspectjweaver = { module = "org.aspectj:aspectjweaver", version.ref = "org-aspectj" } +org-assertj-assertj-core = "org.assertj:assertj-core:3.24.2" +org-bouncycastle-bcpkix-jdk15on = { module = "org.bouncycastle:bcpkix-jdk15on", version.ref = "org-bouncycastle" } +org-bouncycastle-bcprov-jdk15on = { module = "org.bouncycastle:bcprov-jdk15on", version.ref = "org-bouncycastle" } +org-eclipse-jetty-jetty-server = { module = "org.eclipse.jetty:jetty-server", version.ref = "org-eclipse-jetty" } +org-eclipse-jetty-jetty-servlet = { module = "org.eclipse.jetty:jetty-servlet", version.ref = "org-eclipse-jetty" } +org-hamcrest = "org.hamcrest:hamcrest:2.2" +org-hibernate-orm-hibernate-core = "org.hibernate.orm:hibernate-core:6.1.7.Final" +org-hsqldb = "org.hsqldb:hsqldb:2.7.2" +org-jetbrains-kotlin-kotlin-bom = { module = "org.jetbrains.kotlin:kotlin-bom", version.ref = "org-jetbrains-kotlin" } +org-jetbrains-kotlin-kotlin-gradle-plugin = { module = "org.jetbrains.kotlin:kotlin-gradle-plugin", version.ref = "org-jetbrains-kotlin" } +org-jetbrains-kotlinx-kotlinx-coroutines-bom = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-bom", version.ref = "org-jetbrains-kotlinx" } +org-junit-junit-bom = "org.junit:junit-bom:5.9.3" +org-mockito-mockito-bom = { module = "org.mockito:mockito-bom", version.ref = "org-mockito" } +org-opensaml-opensaml-core = { module = "org.opensaml:opensaml-core", version.ref = "org-opensaml" } +org-opensaml-opensaml-saml-api = { module = "org.opensaml:opensaml-saml-api", version.ref = "org-opensaml" } +org-opensaml-opensaml-saml-impl = { module = "org.opensaml:opensaml-saml-impl", version.ref = "org-opensaml" } +org-python-jython = "org.python:jython:2.5.3" +org-seleniumhq-selenium-htmlunit-driver = "org.seleniumhq.selenium:htmlunit-driver:2.66.0" +org-seleniumhq-selenium-selenium-java = "org.seleniumhq.selenium:selenium-java:3.141.59" +org-seleniumhq-selenium-selenium-support = "org.seleniumhq.selenium:selenium-support:3.141.59" +org-skyscreamer-jsonassert = "org.skyscreamer:jsonassert:1.5.1" +org-slf4j-log4j-over-slf4j = "org.slf4j:log4j-over-slf4j:1.7.36" +org-slf4j-slf4j-api = "org.slf4j:slf4j-api:2.0.7" +org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2022.0.9" +org-springframework-ldap-spring-ldap-core = "org.springframework.ldap:spring-ldap-core:3.0.5" +org-springframework-spring-framework-bom = { module = "org.springframework:spring-framework-bom", version.ref = "org-springframework" } +org-synchronoss-cloud-nio-multipart-parser = "org.synchronoss.cloud:nio-multipart-parser:1.1.0" + +com-google-code-gson-gson = "com.google.code.gson:gson:2.8.6" +com-thaiopensource-trag = "com.thaiopensource:trang:20091111" +net-sourceforge-saxon-saxon = "net.sourceforge.saxon:saxon:9.1.0.8" +org-yaml-snakeyaml = "org.yaml:snakeyaml:1.30" +org-apache-commons-commons-io = "org.apache.commons:commons-io:1.3.2" +io-github-gradle-nexus-publish-plugin = "io.github.gradle-nexus:publish-plugin:1.1.0" +org-gretty-gretty = "org.gretty:gretty:4.0.3" +com-apollographql-apollo-apollo-runtime = "com.apollographql.apollo:apollo-runtime:2.4.5" +com-github-ben-manes-gradle-versions-plugin = "com.github.ben-manes:gradle-versions-plugin:0.38.0" +com-github-spullara-mustache-java-compiler = "com.github.spullara.mustache.java:compiler:0.9.4" +org-hidetake-gradle-ssh-plugin = "org.hidetake:gradle-ssh-plugin:2.10.1" +org-jfrog-buildinfo-build-info-extractor-gradle = "org.jfrog.buildinfo:build-info-extractor-gradle:4.29.0" +org-sonarsource-scanner-gradle-sonarqube-gradle-plugin = "org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:2.7.1" + +[plugins]