Ver código fonte

Update Gradle to 7.2

Closes gh-9615
Marcus Da Coregio 3 anos atrás
pai
commit
d2e5f2ae0d
47 arquivos alterados com 218 adições e 163 exclusões
  1. 1 1
      acl/spring-security-acl.gradle
  2. 1 1
      aspects/spring-security-aspects.gradle
  3. 0 1
      buildSrc/build.gradle
  4. 1 1
      buildSrc/gradle/wrapper/gradle-wrapper.properties
  5. 5 12
      buildSrc/src/main/groovy/io/spring/gradle/convention/AbstractSpringJavaPlugin.groovy
  6. 2 2
      buildSrc/src/main/groovy/io/spring/gradle/convention/IntegrationTestPlugin.groovy
  7. 0 59
      buildSrc/src/main/groovy/io/spring/gradle/convention/ManagementConfigurationPlugin.java
  8. 0 26
      buildSrc/src/main/groovy/io/spring/gradle/convention/OssrhPlugin.groovy
  9. 1 4
      buildSrc/src/main/groovy/io/spring/gradle/convention/SpringModulePlugin.groovy
  10. 43 0
      buildSrc/src/main/java/org/springframework/gradle/propdeps/PropDepsEclipsePlugin.groovy
  11. 46 0
      buildSrc/src/main/java/org/springframework/gradle/propdeps/PropDepsIdeaPlugin.groovy
  12. 76 0
      buildSrc/src/main/java/org/springframework/gradle/propdeps/PropDepsPlugin.groovy
  13. 0 1
      buildSrc/src/main/resources/META-INF/gradle-plugins/io.spring.convention.ossrh.properties
  14. 0 13
      buildSrc/src/test/java/io/spring/gradle/convention/SpringMavenPluginITest.java
  15. 0 1
      buildSrc/src/test/resources/samples/integrationtest/withpropdeps/build.gradle
  16. 0 1
      buildSrc/src/test/resources/samples/maven/install/build.gradle
  17. 0 1
      buildSrc/src/test/resources/samples/maven/signing/build.gradle
  18. 0 2
      buildSrc/src/test/resources/samples/maven/upload/build.gradle
  19. 3 3
      buildSrc/src/test/resources/samples/showcase/sgbcs-api/sgbcs-api.gradle
  20. 1 1
      buildSrc/src/test/resources/samples/showcase/sgbcs-core/sgbcs-core.gradle
  21. 2 2
      buildSrc/src/test/resources/samples/testsconfiguration/web/build.gradle
  22. 1 1
      cas/spring-security-cas.gradle
  23. 2 2
      config/spring-security-config.gradle
  24. 1 1
      core/spring-security-core.gradle
  25. 1 1
      crypto/spring-security-crypto.gradle
  26. 1 1
      data/spring-security-data.gradle
  27. 1 1
      gradle/wrapper/gradle-wrapper.properties
  28. 1 1
      itest/context/spring-security-itest-context.gradle
  29. 1 1
      itest/ldap/embedded-ldap-apacheds-default/spring-security-itest-ldap-embedded-apacheds-default.gradle
  30. 1 1
      itest/ldap/embedded-ldap-mode-apacheds/spring-security-itest-ldap-embedded-mode-apacheds.gradle
  31. 1 1
      itest/ldap/embedded-ldap-mode-unboundid/spring-security-itest-ldap-embedded-mode-unboundid.gradle
  32. 1 1
      itest/ldap/embedded-ldap-none/spring-security-itest-ldap-embedded-none.gradle
  33. 1 1
      itest/ldap/embedded-ldap-unboundid-default/spring-security-itest-ldap-embedded-unboundid-default.gradle
  34. 3 2
      itest/web/spring-security-itest-web.gradle
  35. 1 1
      ldap/spring-security-ldap.gradle
  36. 1 1
      messaging/spring-security-messaging.gradle
  37. 1 1
      oauth2/oauth2-client/spring-security-oauth2-client.gradle
  38. 1 1
      oauth2/oauth2-core/spring-security-oauth2-core.gradle
  39. 1 1
      oauth2/oauth2-jose/spring-security-oauth2-jose.gradle
  40. 1 1
      oauth2/oauth2-resource-server/spring-security-oauth2-resource-server.gradle
  41. 1 1
      openid/spring-security-openid.gradle
  42. 1 1
      remoting/spring-security-remoting.gradle
  43. 1 1
      rsocket/spring-security-rsocket.gradle
  44. 8 4
      saml2/saml2-service-provider/spring-security-saml2-service-provider.gradle
  45. 1 1
      taglibs/spring-security-taglibs.gradle
  46. 1 1
      test/spring-security-test.gradle
  47. 1 1
      web/spring-security-web.gradle

+ 1 - 1
acl/spring-security-acl.gradle

@@ -1,7 +1,7 @@
 apply plugin: 'io.spring.convention.spring-module'
 
 dependencies {
-	management platform(project(":spring-security-dependencies"))
+	api platform(project(":spring-security-dependencies"))
 	api project(':spring-security-core')
 	api 'org.springframework:spring-aop'
 	api 'org.springframework:spring-context'

+ 1 - 1
aspects/spring-security-aspects.gradle

@@ -2,7 +2,7 @@ apply plugin: 'io.spring.convention.spring-module'
 apply plugin: 'io.freefair.aspectj'
 
 dependencies {
-	management platform(project(":spring-security-dependencies"))
+	api platform(project(":spring-security-dependencies"))
 	api "org.aspectj:aspectjrt"
 	api project(':spring-security-core')
 	api 'org.springframework:spring-beans'

+ 0 - 1
buildSrc/build.gradle

@@ -81,7 +81,6 @@ dependencies {
 	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.gradle:propdeps-plugin:0.0.10.RELEASE'
 	implementation 'io.spring.javaformat:spring-javaformat-gradle-plugin:0.0.15'
 	implementation 'io.spring.nohttp:nohttp-gradle:0.0.10'
 	implementation 'net.sourceforge.htmlunit:htmlunit:2.37.0'

+ 1 - 1
buildSrc/gradle/wrapper/gradle-wrapper.properties

@@ -1,5 +1,5 @@
 distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.2-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-bin.zip
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists

+ 5 - 12
buildSrc/src/main/groovy/io/spring/gradle/convention/AbstractSpringJavaPlugin.groovy

@@ -16,20 +16,17 @@
 
 package io.spring.gradle.convention;
 
-import io.spring.gradle.propdeps.PropDepsMavenPlugin;
 import org.gradle.api.Plugin;
 import org.gradle.api.Project;
 import org.gradle.api.plugins.GroovyPlugin;
-import org.gradle.api.plugins.JavaPlugin;
-import org.gradle.api.plugins.MavenPlugin;
+import org.gradle.api.plugins.JavaPlugin
 import org.gradle.api.plugins.PluginManager;
-import org.gradle.internal.impldep.org.apache.maven.Maven;
 import org.gradle.plugins.ide.eclipse.EclipseWtpPlugin;
 import org.gradle.plugins.ide.idea.IdeaPlugin;
-import io.spring.gradle.propdeps.PropDepsEclipsePlugin;
-import io.spring.gradle.propdeps.PropDepsIdeaPlugin;
-import io.spring.gradle.propdeps.PropDepsPlugin
-import org.springframework.gradle.CopyPropertiesPlugin;
+import org.springframework.gradle.CopyPropertiesPlugin
+import org.springframework.gradle.propdeps.PropDepsEclipsePlugin
+import org.springframework.gradle.propdeps.PropDepsIdeaPlugin
+import org.springframework.gradle.propdeps.PropDepsPlugin;
 
 /**
  * @author Rob Winch
@@ -40,7 +37,6 @@ public abstract class AbstractSpringJavaPlugin implements Plugin<Project> {
 	public final void apply(Project project) {
 		PluginManager pluginManager = project.getPluginManager();
 		pluginManager.apply(JavaPlugin.class);
-		pluginManager.apply(ManagementConfigurationPlugin.class);
 		if (project.file("src/main/groovy").exists()
 				|| project.file("src/test/groovy").exists()
 				|| project.file("src/integration-test/groovy").exists()) {
@@ -52,9 +48,6 @@ public abstract class AbstractSpringJavaPlugin implements Plugin<Project> {
 		pluginManager.apply(PropDepsPlugin);
 		pluginManager.apply(PropDepsEclipsePlugin);
 		pluginManager.apply(PropDepsIdeaPlugin);
-		project.getPlugins().withType(MavenPlugin) {
-			pluginManager.apply(PropDepsMavenPlugin);
-		}
 		pluginManager.apply("io.spring.convention.tests-configuration");
 		pluginManager.apply("io.spring.convention.integration-test");
 		pluginManager.apply("io.spring.convention.javadoc-options");

+ 2 - 2
buildSrc/src/main/groovy/io/spring/gradle/convention/IntegrationTestPlugin.groovy

@@ -15,7 +15,6 @@
  */
 package io.spring.gradle.convention
 
-import io.spring.gradle.propdeps.PropDepsPlugin
 import org.gradle.api.Plugin
 import org.gradle.api.Project
 import org.gradle.api.Task
@@ -24,6 +23,7 @@ import org.gradle.api.plugins.JavaPlugin
 import org.gradle.api.tasks.testing.Test
 import org.gradle.plugins.ide.eclipse.EclipsePlugin
 import org.gradle.plugins.ide.idea.IdeaPlugin
+import org.springframework.gradle.propdeps.PropDepsPlugin
 
 /**
  *
@@ -54,7 +54,7 @@ public class IntegrationTestPlugin implements Plugin<Project> {
 		}
 		project.configurations {
 			integrationTestCompile {
-				extendsFrom testCompile, testImplementation
+				extendsFrom testImplementation
 			}
 			integrationTestRuntime {
 				extendsFrom integrationTestCompile, testRuntime, testRuntimeOnly

+ 0 - 59
buildSrc/src/main/groovy/io/spring/gradle/convention/ManagementConfigurationPlugin.java

@@ -1,59 +0,0 @@
-package io.spring.gradle.convention;
-
-
-import io.spring.gradle.propdeps.PropDepsPlugin;
-import org.gradle.api.Plugin;
-import org.gradle.api.Project;
-import org.gradle.api.artifacts.ConfigurationContainer;
-import org.gradle.api.plugins.JavaPlugin;
-import org.gradle.api.plugins.JavaTestFixturesPlugin;
-import org.gradle.api.plugins.PluginContainer;
-import org.gradle.api.publish.PublishingExtension;
-import org.gradle.api.publish.maven.MavenPublication;
-import org.gradle.api.publish.maven.plugins.MavenPublishPlugin;
-
-/**
- * Creates a Management configuration that is appropriate for adding a platform to that is not exposed externally. If
- * the JavaPlugin is applied, the compileClasspath, runtimeClasspath, testCompileClasspath, and testRuntimeClasspath
- * will extend from it.
- * @author Rob Winch
- */
-public class ManagementConfigurationPlugin implements Plugin<Project> {
-
-	public static final String MANAGEMENT_CONFIGURATION_NAME = "management";
-
-	@Override
-	public void apply(Project project) {
-		ConfigurationContainer configurations = project.getConfigurations();
-		configurations.create(MANAGEMENT_CONFIGURATION_NAME, (management) -> {
-			management.setVisible(false);
-			management.setCanBeConsumed(false);
-			management.setCanBeResolved(false);
-
-			PluginContainer plugins = project.getPlugins();
-			plugins.withType(JavaPlugin.class, (javaPlugin) -> {
-				configurations.getByName(JavaPlugin.COMPILE_CLASSPATH_CONFIGURATION_NAME).extendsFrom(management);
-				configurations.getByName(JavaPlugin.RUNTIME_CLASSPATH_CONFIGURATION_NAME).extendsFrom(management);
-				configurations.getByName(JavaPlugin.TEST_COMPILE_CLASSPATH_CONFIGURATION_NAME).extendsFrom(management);
-				configurations.getByName(JavaPlugin.TEST_RUNTIME_CLASSPATH_CONFIGURATION_NAME).extendsFrom(management);
-			});
-			plugins.withType(JavaTestFixturesPlugin.class, (javaTestFixturesPlugin) -> {
-				configurations.getByName("testFixturesCompileClasspath").extendsFrom(management);
-				configurations.getByName("testFixturesRuntimeClasspath").extendsFrom(management);
-			});
-			plugins.withType(MavenPublishPlugin.class, (mavenPublish) -> {
-				PublishingExtension publishing = project.getExtensions().getByType(PublishingExtension.class);
-				publishing.getPublications().withType(MavenPublication.class, (mavenPublication -> {
-					mavenPublication.versionMapping((versions) ->
-							versions.allVariants(versionMapping -> versionMapping.fromResolutionResult())
-					);
-				}));
-			});
-			plugins.withType(PropDepsPlugin.class, (propDepsPlugin -> {
-				configurations.getByName("optional").extendsFrom(management);
-				configurations.getByName("provided").extendsFrom(management);
-			}));
-		});
-	}
-}
-

+ 0 - 26
buildSrc/src/main/groovy/io/spring/gradle/convention/OssrhPlugin.groovy

@@ -1,26 +0,0 @@
-package io.spring.gradle.convention
-
-import org.gradle.api.Plugin
-import org.gradle.api.Project
-
-public class OssrhPlugin implements Plugin<Project> {
-
-	@Override
-	public void apply(Project project) {
-		if(project.hasProperty('ossrhUsername')) {
-			project.uploadArchives {
-				repositories {
-					mavenDeployer {
-						repository(url: "https://oss.sonatype.org/service/local/staging/deploy/maven2/") {
-							authentication(userName: project.ossrhUsername, password: project.ossrhPassword)
-						}
-
-						snapshotRepository(url: "https://oss.sonatype.org/content/repositories/snapshots/") {
-							authentication(userName: project.ossrhUsername, password: project.ossrhPassword)
-						}
-					}
-				}
-			}
-		}
-	}
-}

+ 1 - 4
buildSrc/src/main/groovy/io/spring/gradle/convention/SpringModulePlugin.groovy

@@ -37,10 +37,7 @@ class SpringModulePlugin extends AbstractSpringJavaPlugin {
 		def deployArtifacts = project.task("deployArtifacts")
 		deployArtifacts.group = 'Deploy tasks'
 		deployArtifacts.description = "Deploys the artifacts to either Artifactory or Maven Central"
-		if (Utils.isRelease(project)) {
-			deployArtifacts.dependsOn project.tasks.uploadArchives
-		}
-		else {
+		if (!Utils.isRelease(project)) {
 			deployArtifacts.dependsOn project.tasks.artifactoryPublish
 		}
 	}

+ 43 - 0
buildSrc/src/main/java/org/springframework/gradle/propdeps/PropDepsEclipsePlugin.groovy

@@ -0,0 +1,43 @@
+/*
+ * Copyright 2002-2021 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 the License at
+ *
+ *      https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.springframework.gradle.propdeps
+
+
+import org.gradle.api.Plugin
+import org.gradle.api.Project
+import org.gradle.plugins.ide.eclipse.EclipsePlugin
+
+/**
+ * Plugin to allow optional and provided dependency configurations to work with the
+ * standard gradle 'eclipse' plugin
+ *
+ * @author Phillip Webb
+ */
+class PropDepsEclipsePlugin implements Plugin<Project> {
+
+	public void apply(Project project) {
+		project.plugins.apply(PropDepsPlugin)
+		project.plugins.apply(EclipsePlugin)
+
+		project.eclipse {
+			classpath {
+				plusConfigurations += [project.configurations.provided, project.configurations.optional]
+			}
+		}
+	}
+
+}

+ 46 - 0
buildSrc/src/main/java/org/springframework/gradle/propdeps/PropDepsIdeaPlugin.groovy

@@ -0,0 +1,46 @@
+/*
+ * Copyright 2002-2021 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 the License at
+ *
+ *      https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.springframework.gradle.propdeps
+
+
+import org.gradle.api.Plugin
+import org.gradle.api.Project
+import org.gradle.plugins.ide.idea.IdeaPlugin
+
+/**
+ * Plugin to allow optional and provided dependency configurations to work with the
+ * standard gradle 'idea' plugin
+ *
+ * @author Phillip Webb
+ * @author Brian Clozel
+ * @link https://youtrack.jetbrains.com/issue/IDEA-107046
+ * @link https://youtrack.jetbrains.com/issue/IDEA-117668
+ */
+class PropDepsIdeaPlugin implements Plugin<Project> {
+
+	public void apply(Project project) {
+		project.plugins.apply(PropDepsPlugin)
+		project.plugins.apply(IdeaPlugin)
+		project.idea.module {
+			// IDEA internally deals with 4 scopes : COMPILE, TEST, PROVIDED, RUNTIME
+			// but only PROVIDED seems to be picked up
+			scopes.PROVIDED.plus += [project.configurations.provided]
+			scopes.PROVIDED.plus += [project.configurations.optional]
+		}
+	}
+
+}

+ 76 - 0
buildSrc/src/main/java/org/springframework/gradle/propdeps/PropDepsPlugin.groovy

@@ -0,0 +1,76 @@
+/*
+ * Copyright 2002-2021 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 the License at
+ *
+ *      https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.springframework.gradle.propdeps
+
+
+import org.gradle.api.Plugin
+import org.gradle.api.Project
+import org.gradle.api.artifacts.Configuration
+import org.gradle.api.plugins.JavaLibraryPlugin
+import org.gradle.api.plugins.JavaPlugin
+import org.gradle.api.tasks.javadoc.Javadoc
+
+/**
+ * Plugin to allow 'optional' and 'provided' dependency configurations
+ *
+ * As stated in the maven documentation, provided scope "is only available on the compilation and test classpath,
+ * and is not transitive".
+ *
+ * This plugin creates two new configurations, and each one:
+ * <ul>
+ * <li>is a parent of the compile configuration</li>
+ * <li>is not visible, not transitive</li>
+ * <li>all dependencies are excluded from the default configuration</li>
+ * </ul>
+ *
+ * @author Phillip Webb
+ * @author Brian Clozel
+ * @author Rob Winch
+ *
+ * @see <a href="https://www.gradle.org/docs/current/userguide/java_plugin.html#N121CF">Maven documentation</a>
+ * @see <a href="https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Dependency_Scope">Gradle configurations</a>
+ * @see PropDepsEclipsePlugin
+ * @see PropDepsIdeaPlugin
+ */
+class PropDepsPlugin implements Plugin<Project> {
+
+	public void apply(Project project) {
+		project.plugins.apply(JavaPlugin)
+
+		Configuration provided = addConfiguration(project, "provided")
+		Configuration optional = addConfiguration(project, "optional")
+
+		Javadoc javadoc = project.tasks.getByName(JavaPlugin.JAVADOC_TASK_NAME)
+		javadoc.classpath = javadoc.classpath.plus(provided).plus(optional)
+	}
+
+	private Configuration addConfiguration(Project project, String name) {
+		Configuration configuration = project.configurations.create(name)
+		configuration.extendsFrom(project.configurations.implementation)
+		project.plugins.withType(JavaLibraryPlugin, {
+			configuration.extendsFrom(project.configurations.api)
+		})
+
+		project.sourceSets.all {
+			compileClasspath += configuration
+			runtimeClasspath += configuration
+		}
+
+		return configuration
+	}
+
+}

+ 0 - 1
buildSrc/src/main/resources/META-INF/gradle-plugins/io.spring.convention.ossrh.properties

@@ -1 +0,0 @@
-implementation-class=io.spring.gradle.convention.OssrhPlugin

+ 0 - 13
buildSrc/src/test/java/io/spring/gradle/convention/SpringMavenPluginITest.java

@@ -55,19 +55,6 @@ public class SpringMavenPluginITest {
 		assertThat(signature).exists();
 	}
 
-	@Test
-    public void upload() throws Exception {
-        BuildResult result = this.testKit.withProjectResource("samples/maven/upload")
-				.withArguments("uploadArchives")
-				.forwardOutput()
-				.build();
-		assertThat(result.getOutput()).contains("SUCCESS");
-		File pom = new File(testKit.getRootDir(), "build/poms/pom-default.xml");
-		assertThat(pom).exists();
-		String pomText = new String(Files.readAllBytes(pom.toPath()));
-		assertThat(pomText.replaceAll("\\s", "")).contains("<dependency>\n			<groupId>aopalliance</groupId>\n			<artifactId>aopalliance</artifactId>\n			<version>1.0</version>\n			<scope>compile</scope>\n			<optional>true</optional>\n			</dependency>".replaceAll("\\s", ""));
-	}
-
     public String getSigningKey() throws Exception {
 		return IOUtils.toString(getClass().getResource("/test-private.pgp"));
 	}

+ 0 - 1
buildSrc/src/test/resources/samples/integrationtest/withpropdeps/build.gradle

@@ -3,7 +3,6 @@ plugins {
 }
 
 apply plugin: 'java'
-apply plugin: 'propdeps'
 
 repositories {
 	mavenCentral()

+ 0 - 1
buildSrc/src/test/resources/samples/maven/install/build.gradle

@@ -2,7 +2,6 @@ plugins {
 	id 'io.spring.convention.root'
 }
 
-apply plugin: 'propdeps-maven'
 apply plugin: 'io.spring.convention.maven'
 
 repositories {

+ 0 - 1
buildSrc/src/test/resources/samples/maven/signing/build.gradle

@@ -4,7 +4,6 @@ plugins {
 
 version = "1.0.0.RELEASE"
 
-apply plugin: 'propdeps-maven'
 apply plugin: 'io.spring.convention.maven'
 
 repositories {

+ 0 - 2
buildSrc/src/test/resources/samples/maven/upload/build.gradle

@@ -2,8 +2,6 @@ plugins {
 	id 'io.spring.convention.root'
 }
 
-apply plugin: 'propdeps-maven'
-
 repositories {
 	mavenCentral()
 }

+ 3 - 3
buildSrc/src/test/resources/samples/showcase/sgbcs-api/sgbcs-api.gradle

@@ -1,9 +1,9 @@
 apply plugin: 'io.spring.convention.spring-module'
 
 dependencies {
-	management platform('org.springframework.boot:spring-boot-dependencies:2.5.2')
-	compile 'org.springframework:spring-web'
-	compile 'org.springframework:spring-core'
+	api platform('org.springframework.boot:spring-boot-dependencies:2.5.2')
+	implementation 'org.springframework:spring-web'
+	implementation 'org.springframework:spring-core'
 	testImplementation "org.junit.jupiter:junit-jupiter-api"
 	testImplementation "org.junit.jupiter:junit-jupiter-engine"
 }

+ 1 - 1
buildSrc/src/test/resources/samples/showcase/sgbcs-core/sgbcs-core.gradle

@@ -1,7 +1,7 @@
 apply plugin: 'io.spring.convention.spring-module'
 
 dependencies {
-	management platform('org.springframework.boot:spring-boot-dependencies:2.5.2')
+	api platform('org.springframework.boot:spring-boot-dependencies:2.5.2')
 	optional 'ch.qos.logback:logback-classic'
 	testImplementation "org.junit.jupiter:junit-jupiter-api"
 	testImplementation "org.junit.jupiter:junit-jupiter-engine"

+ 2 - 2
buildSrc/src/test/resources/samples/testsconfiguration/web/build.gradle

@@ -5,6 +5,6 @@ repositories {
 }
 
 dependencies {
-	testCompile project(path: ':core', configuration: 'tests')
-	testCompile 'junit:junit:4.12'
+	testImplementation project(path: ':core', configuration: 'tests')
+	testImplementation 'junit:junit:4.12'
 }

+ 1 - 1
cas/spring-security-cas.gradle

@@ -1,7 +1,7 @@
 apply plugin: 'io.spring.convention.spring-module'
 
 dependencies {
-	management platform(project(":spring-security-dependencies"))
+	api platform(project(":spring-security-dependencies"))
 	api project(':spring-security-core')
 	api project(':spring-security-web')
 	api 'org.jasig.cas.client:cas-client-core'

+ 2 - 2
config/spring-security-config.gradle

@@ -9,7 +9,7 @@ repositories {
 }
 
 dependencies {
-	management platform(project(":spring-security-dependencies"))
+	api platform(project(":spring-security-dependencies"))
 	// NB: Don't add other compile time dependencies to the config module as this breaks tooling
 	api project(':spring-security-core')
 	api 'org.springframework:spring-aop'
@@ -49,7 +49,7 @@ dependencies {
 	testImplementation project(path : ':spring-security-oauth2-client', configuration : 'tests')
 	testImplementation project(path : ':spring-security-oauth2-resource-server', configuration : 'tests')
 	testImplementation project(path : ':spring-security-saml2-service-provider', configuration : 'tests')
-	testImplementation project(path: ':spring-security-saml2-service-provider', configuration: 'opensaml4MainCompile')
+	testImplementation project(path : ':spring-security-saml2-service-provider', configuration : 'opensaml4MainImplementation')
 	testImplementation project(path : ':spring-security-web', configuration : 'tests')
 	testImplementation "org.assertj:assertj-core"
 	testImplementation "org.junit.jupiter:junit-jupiter-api"

+ 1 - 1
core/spring-security-core.gradle

@@ -3,7 +3,7 @@ import java.util.concurrent.Callable
 apply plugin: 'io.spring.convention.spring-module'
 
 dependencies {
-	management platform(project(":spring-security-dependencies"))
+	api platform(project(":spring-security-dependencies"))
 	api project(':spring-security-crypto')
 	api 'org.springframework:spring-aop'
 	api 'org.springframework:spring-beans'

+ 1 - 1
crypto/spring-security-crypto.gradle

@@ -1,7 +1,7 @@
 apply plugin: 'io.spring.convention.spring-module'
 
 dependencies {
-	management platform(project(":spring-security-dependencies"))
+	api platform(project(":spring-security-dependencies"))
 	optional 'org.springframework:spring-jcl'
 	optional 'org.bouncycastle:bcpkix-jdk15on'
 	

+ 1 - 1
data/spring-security-data.gradle

@@ -1,7 +1,7 @@
 apply plugin: 'io.spring.convention.spring-module'
 
 dependencies {
-	management platform(project(":spring-security-dependencies"))
+	api platform(project(":spring-security-dependencies"))
 	api project(':spring-security-core')
 	api 'javax.xml.bind:jaxb-api'
 	api 'org.springframework.data:spring-data-commons'

+ 1 - 1
gradle/wrapper/gradle-wrapper.properties

@@ -1,5 +1,5 @@
 distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-6.9-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-bin.zip
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists

+ 1 - 1
itest/context/spring-security-itest-context.gradle

@@ -1,7 +1,7 @@
 apply plugin: 'io.spring.convention.spring-test'
 
 dependencies {
-	management platform(project(":spring-security-dependencies"))
+	implementation platform(project(":spring-security-dependencies"))
 	implementation project(':spring-security-core')
 	implementation 'org.python:jython'
 	implementation 'org.springframework:spring-aop'

+ 1 - 1
itest/ldap/embedded-ldap-apacheds-default/spring-security-itest-ldap-embedded-apacheds-default.gradle

@@ -1,7 +1,7 @@
 apply plugin: 'io.spring.convention.spring-test'
 
 dependencies {
-	management platform(project(":spring-security-dependencies"))
+	implementation platform(project(":spring-security-dependencies"))
     implementation project(':spring-security-core')
     implementation 'org.springframework:spring-beans'
     implementation 'org.springframework:spring-context'

+ 1 - 1
itest/ldap/embedded-ldap-mode-apacheds/spring-security-itest-ldap-embedded-mode-apacheds.gradle

@@ -1,7 +1,7 @@
 apply plugin: 'io.spring.convention.spring-test'
 
 dependencies {
-	management platform(project(":spring-security-dependencies"))
+	implementation platform(project(":spring-security-dependencies"))
     implementation project(':spring-security-core')
     implementation 'org.springframework:spring-beans'
     implementation 'org.springframework:spring-context'

+ 1 - 1
itest/ldap/embedded-ldap-mode-unboundid/spring-security-itest-ldap-embedded-mode-unboundid.gradle

@@ -1,7 +1,7 @@
 apply plugin: 'io.spring.convention.spring-test'
 
 dependencies {
-	management platform(project(":spring-security-dependencies"))
+	implementation platform(project(":spring-security-dependencies"))
     implementation project(':spring-security-core')
     implementation 'org.springframework:spring-beans'
     implementation 'org.springframework:spring-context'

+ 1 - 1
itest/ldap/embedded-ldap-none/spring-security-itest-ldap-embedded-none.gradle

@@ -1,7 +1,7 @@
 apply plugin: 'io.spring.convention.spring-test'
 
 dependencies {
-	management platform(project(":spring-security-dependencies"))
+	implementation platform(project(":spring-security-dependencies"))
     implementation project(':spring-security-core')
     implementation 'org.springframework:spring-beans'
     implementation 'org.springframework:spring-context'

+ 1 - 1
itest/ldap/embedded-ldap-unboundid-default/spring-security-itest-ldap-embedded-unboundid-default.gradle

@@ -1,7 +1,7 @@
 apply plugin: 'io.spring.convention.spring-test'
 
 dependencies {
-	management platform(project(":spring-security-dependencies"))
+	implementation platform(project(":spring-security-dependencies"))
     implementation project(':spring-security-core')
     implementation 'org.springframework:spring-beans'
     implementation 'org.springframework:spring-context'

+ 3 - 2
itest/web/spring-security-itest-web.gradle

@@ -1,11 +1,11 @@
 apply plugin: 'io.spring.convention.spring-test'
 
 dependencies {
-	management platform(project(":spring-security-dependencies"))
+	implementation platform(project(":spring-security-dependencies"))
 	implementation 'org.springframework:spring-context'
 	implementation 'org.springframework:spring-web'
 
-	provided 'javax.servlet:javax.servlet-api'
+	compileOnly 'javax.servlet:javax.servlet-api'
 
 	testImplementation project(':spring-security-core')
 	testImplementation project(':spring-security-test')
@@ -21,6 +21,7 @@ dependencies {
 	testImplementation "org.mockito:mockito-core"
 	testImplementation "org.mockito:mockito-junit-jupiter"
 	testImplementation "org.springframework:spring-test"
+	testImplementation 'javax.servlet:javax.servlet-api'
 
 	testRuntimeOnly project(':spring-security-config')
 	testRuntimeOnly project(':spring-security-ldap')

+ 1 - 1
ldap/spring-security-ldap.gradle

@@ -1,7 +1,7 @@
 apply plugin: 'io.spring.convention.spring-module'
 
 dependencies {
-	management platform(project(":spring-security-dependencies"))
+	api platform(project(":spring-security-dependencies"))
 	api project(':spring-security-core')
 	api 'org.springframework:spring-beans'
 	api 'org.springframework:spring-context'

+ 1 - 1
messaging/spring-security-messaging.gradle

@@ -1,7 +1,7 @@
 apply plugin: 'io.spring.convention.spring-module'
 
 dependencies {
-	management platform(project(":spring-security-dependencies"))
+	api platform(project(":spring-security-dependencies"))
 	api project(':spring-security-core')
 	api 'org.springframework:spring-beans'
 	api 'org.springframework:spring-context'

+ 1 - 1
oauth2/oauth2-client/spring-security-oauth2-client.gradle

@@ -1,7 +1,7 @@
 apply plugin: 'io.spring.convention.spring-module'
 
 dependencies {
-	management platform(project(":spring-security-dependencies"))
+	api platform(project(":spring-security-dependencies"))
 	api project(':spring-security-core')
 	api project(':spring-security-oauth2-core')
 	api project(':spring-security-web')

+ 1 - 1
oauth2/oauth2-core/spring-security-oauth2-core.gradle

@@ -1,7 +1,7 @@
 apply plugin: 'io.spring.convention.spring-module'
 
 dependencies {
-	management platform(project(":spring-security-dependencies"))
+	api platform(project(":spring-security-dependencies"))
 	api project(':spring-security-core')
 	api 'org.springframework:spring-core'
 	api 'org.springframework:spring-web'

+ 1 - 1
oauth2/oauth2-jose/spring-security-oauth2-jose.gradle

@@ -1,7 +1,7 @@
 apply plugin: 'io.spring.convention.spring-module'
 
 dependencies {
-	management platform(project(":spring-security-dependencies"))
+	api platform(project(":spring-security-dependencies"))
 	api project(':spring-security-core')
 	api project(':spring-security-oauth2-core')
 	api 'org.springframework:spring-core'

+ 1 - 1
oauth2/oauth2-resource-server/spring-security-oauth2-resource-server.gradle

@@ -1,7 +1,7 @@
 apply plugin: 'io.spring.convention.spring-module'
 
 dependencies {
-	management platform(project(":spring-security-dependencies"))
+	api platform(project(":spring-security-dependencies"))
 	api project(':spring-security-core')
 	api project(':spring-security-oauth2-core')
 	api project(':spring-security-web')

+ 1 - 1
openid/spring-security-openid.gradle

@@ -5,7 +5,7 @@
 apply plugin: 'io.spring.convention.spring-module'
 
 dependencies {
-	management platform(project(":spring-security-dependencies"))
+	api platform(project(":spring-security-dependencies"))
 	api project(':spring-security-core')
 	api project(':spring-security-web')
 	api('com.google.inject:guice') {

+ 1 - 1
remoting/spring-security-remoting.gradle

@@ -1,7 +1,7 @@
 apply plugin: 'io.spring.convention.spring-module'
 
 dependencies {
-	management platform(project(":spring-security-dependencies"))
+	api platform(project(":spring-security-dependencies"))
 	api project(':spring-security-core')
 	api 'org.springframework:spring-aop'
 	api 'org.springframework:spring-beans'

+ 1 - 1
rsocket/spring-security-rsocket.gradle

@@ -1,7 +1,7 @@
 apply plugin: 'io.spring.convention.spring-module'
 
 dependencies {
-	management platform(project(":spring-security-dependencies"))
+	api platform(project(":spring-security-dependencies"))
 	api project(':spring-security-core')
 	api 'io.rsocket:rsocket-core'
 	optional project(':spring-security-oauth2-resource-server')

+ 8 - 4
saml2/saml2-service-provider/spring-security-saml2-service-provider.gradle

@@ -30,6 +30,9 @@ sourceSets {
 configurations {
 	opensaml3TestImplementation.extendsFrom testImplementation
 	opensaml4TestImplementation.extendsFrom testImplementation
+	opensaml4MainImplementation {
+		canBeConsumed = true
+	}
 }
 
 compileOpensaml4MainJava {
@@ -38,14 +41,14 @@ compileOpensaml4MainJava {
 }
 
 dependencies {
-	management platform(project(":spring-security-dependencies"))
+	api platform(project(":spring-security-dependencies"))
 	api project(':spring-security-web')
 	api "org.opensaml:opensaml-core"
 	api "org.opensaml:opensaml-saml-api"
 	api "org.opensaml:opensaml-saml-impl"
-	opensaml4MainCompile "org.opensaml:opensaml-core:4.1.0"
-	opensaml4MainCompile "org.opensaml:opensaml-saml-api:4.1.0"
-	opensaml4MainCompile "org.opensaml:opensaml-saml-impl:4.1.0"
+	opensaml4MainImplementation "org.opensaml:opensaml-core:4.1.0"
+	opensaml4MainImplementation "org.opensaml:opensaml-saml-api:4.1.0"
+	opensaml4MainImplementation "org.opensaml:opensaml-saml-impl:4.1.0"
 
 	provided 'javax.servlet:javax.servlet-api'
 
@@ -61,6 +64,7 @@ dependencies {
 }
 
 project.tasks.matching { t -> t.name == "jar"}.configureEach {
+	duplicatesStrategy = DuplicatesStrategy.EXCLUDE
 	from {
 		compileOpensaml3MainJava
 	}

+ 1 - 1
taglibs/spring-security-taglibs.gradle

@@ -1,7 +1,7 @@
 apply plugin: 'io.spring.convention.spring-module'
 
 dependencies {
-	management platform(project(":spring-security-dependencies"))
+	api platform(project(":spring-security-dependencies"))
 	api project(':spring-security-acl')
 	api project(':spring-security-core')
 	api project(':spring-security-web')

+ 1 - 1
test/spring-security-test.gradle

@@ -1,7 +1,7 @@
 apply plugin: 'io.spring.convention.spring-module'
 
 dependencies {
-	management platform(project(":spring-security-dependencies"))
+	api platform(project(":spring-security-dependencies"))
 	api project(':spring-security-core')
 	api project(':spring-security-web')
 	api 'org.springframework:spring-core'

+ 1 - 1
web/spring-security-web.gradle

@@ -1,7 +1,7 @@
 apply plugin: 'io.spring.convention.spring-module'
 
 dependencies {
-	management platform(project(":spring-security-dependencies"))
+	api platform(project(":spring-security-dependencies"))
 	api project(':spring-security-core')
 	api 'org.springframework:spring-core'
 	api 'org.springframework:spring-aop'