diff --git a/acl/spring-security-acl.gradle b/acl/spring-security-acl.gradle index 8de65558b8..6226d2b129 100644 --- a/acl/spring-security-acl.gradle +++ b/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' diff --git a/aspects/spring-security-aspects.gradle b/aspects/spring-security-aspects.gradle index 3a58595619..5ae906b016 100644 --- a/aspects/spring-security-aspects.gradle +++ b/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' diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index 82ed0c0038..dffb3a6d59 100644 --- a/buildSrc/build.gradle +++ b/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' diff --git a/buildSrc/gradle/wrapper/gradle-wrapper.properties b/buildSrc/gradle/wrapper/gradle-wrapper.properties index 2a563242c1..ffed3a254e 100644 --- a/buildSrc/gradle/wrapper/gradle-wrapper.properties +++ b/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 diff --git a/buildSrc/src/main/groovy/io/spring/gradle/convention/AbstractSpringJavaPlugin.groovy b/buildSrc/src/main/groovy/io/spring/gradle/convention/AbstractSpringJavaPlugin.groovy index fe6eac2899..e2eb4f725b 100644 --- a/buildSrc/src/main/groovy/io/spring/gradle/convention/AbstractSpringJavaPlugin.groovy +++ b/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 { 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 { 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"); diff --git a/buildSrc/src/main/groovy/io/spring/gradle/convention/IntegrationTestPlugin.groovy b/buildSrc/src/main/groovy/io/spring/gradle/convention/IntegrationTestPlugin.groovy index 23eb73e09b..9858458b8f 100644 --- a/buildSrc/src/main/groovy/io/spring/gradle/convention/IntegrationTestPlugin.groovy +++ b/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.configurations { integrationTestCompile { - extendsFrom testCompile, testImplementation + extendsFrom testImplementation } integrationTestRuntime { extendsFrom integrationTestCompile, testRuntime, testRuntimeOnly diff --git a/buildSrc/src/main/groovy/io/spring/gradle/convention/ManagementConfigurationPlugin.java b/buildSrc/src/main/groovy/io/spring/gradle/convention/ManagementConfigurationPlugin.java deleted file mode 100644 index 7768729732..0000000000 --- a/buildSrc/src/main/groovy/io/spring/gradle/convention/ManagementConfigurationPlugin.java +++ /dev/null @@ -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 { - - 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); - })); - }); - } -} - diff --git a/buildSrc/src/main/groovy/io/spring/gradle/convention/OssrhPlugin.groovy b/buildSrc/src/main/groovy/io/spring/gradle/convention/OssrhPlugin.groovy deleted file mode 100644 index c414e39ce2..0000000000 --- a/buildSrc/src/main/groovy/io/spring/gradle/convention/OssrhPlugin.groovy +++ /dev/null @@ -1,26 +0,0 @@ -package io.spring.gradle.convention - -import org.gradle.api.Plugin -import org.gradle.api.Project - -public class OssrhPlugin implements Plugin { - - @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) - } - } - } - } - } - } -} diff --git a/buildSrc/src/main/groovy/io/spring/gradle/convention/SpringModulePlugin.groovy b/buildSrc/src/main/groovy/io/spring/gradle/convention/SpringModulePlugin.groovy index 1d801d59a1..36a7013f55 100644 --- a/buildSrc/src/main/groovy/io/spring/gradle/convention/SpringModulePlugin.groovy +++ b/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 } } diff --git a/buildSrc/src/main/java/org/springframework/gradle/propdeps/PropDepsEclipsePlugin.groovy b/buildSrc/src/main/java/org/springframework/gradle/propdeps/PropDepsEclipsePlugin.groovy new file mode 100644 index 0000000000..bf88ca6c7d --- /dev/null +++ b/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 { + + public void apply(Project project) { + project.plugins.apply(PropDepsPlugin) + project.plugins.apply(EclipsePlugin) + + project.eclipse { + classpath { + plusConfigurations += [project.configurations.provided, project.configurations.optional] + } + } + } + +} diff --git a/buildSrc/src/main/java/org/springframework/gradle/propdeps/PropDepsIdeaPlugin.groovy b/buildSrc/src/main/java/org/springframework/gradle/propdeps/PropDepsIdeaPlugin.groovy new file mode 100644 index 0000000000..4035971a7c --- /dev/null +++ b/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 { + + 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] + } + } + +} diff --git a/buildSrc/src/main/java/org/springframework/gradle/propdeps/PropDepsPlugin.groovy b/buildSrc/src/main/java/org/springframework/gradle/propdeps/PropDepsPlugin.groovy new file mode 100644 index 0000000000..e0893e6a88 --- /dev/null +++ b/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: + *
    + *
  • is a parent of the compile configuration
  • + *
  • is not visible, not transitive
  • + *
  • all dependencies are excluded from the default configuration
  • + *
+ * + * @author Phillip Webb + * @author Brian Clozel + * @author Rob Winch + * + * @see Maven documentation + * @see Gradle configurations + * @see PropDepsEclipsePlugin + * @see PropDepsIdeaPlugin + */ +class PropDepsPlugin implements Plugin { + + 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 + } + +} diff --git a/buildSrc/src/main/resources/META-INF/gradle-plugins/io.spring.convention.ossrh.properties b/buildSrc/src/main/resources/META-INF/gradle-plugins/io.spring.convention.ossrh.properties deleted file mode 100644 index 567272412a..0000000000 --- a/buildSrc/src/main/resources/META-INF/gradle-plugins/io.spring.convention.ossrh.properties +++ /dev/null @@ -1 +0,0 @@ -implementation-class=io.spring.gradle.convention.OssrhPlugin \ No newline at end of file diff --git a/buildSrc/src/test/java/io/spring/gradle/convention/SpringMavenPluginITest.java b/buildSrc/src/test/java/io/spring/gradle/convention/SpringMavenPluginITest.java index 9c91d5c9ad..3f0855dd5f 100644 --- a/buildSrc/src/test/java/io/spring/gradle/convention/SpringMavenPluginITest.java +++ b/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("\n aopalliance\n aopalliance\n 1.0\n compile\n true\n ".replaceAll("\\s", "")); - } - public String getSigningKey() throws Exception { return IOUtils.toString(getClass().getResource("/test-private.pgp")); } diff --git a/buildSrc/src/test/resources/samples/integrationtest/withpropdeps/build.gradle b/buildSrc/src/test/resources/samples/integrationtest/withpropdeps/build.gradle index af2027d522..732278d03b 100644 --- a/buildSrc/src/test/resources/samples/integrationtest/withpropdeps/build.gradle +++ b/buildSrc/src/test/resources/samples/integrationtest/withpropdeps/build.gradle @@ -3,7 +3,6 @@ plugins { } apply plugin: 'java' -apply plugin: 'propdeps' repositories { mavenCentral() diff --git a/buildSrc/src/test/resources/samples/maven/install/build.gradle b/buildSrc/src/test/resources/samples/maven/install/build.gradle index c6cd7a97a7..4847d7f2d5 100644 --- a/buildSrc/src/test/resources/samples/maven/install/build.gradle +++ b/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 { diff --git a/buildSrc/src/test/resources/samples/maven/signing/build.gradle b/buildSrc/src/test/resources/samples/maven/signing/build.gradle index 544f987f0e..7460119fcd 100644 --- a/buildSrc/src/test/resources/samples/maven/signing/build.gradle +++ b/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 { diff --git a/buildSrc/src/test/resources/samples/maven/upload/build.gradle b/buildSrc/src/test/resources/samples/maven/upload/build.gradle index 549c0551c3..fb36fc6f37 100644 --- a/buildSrc/src/test/resources/samples/maven/upload/build.gradle +++ b/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() } diff --git a/buildSrc/src/test/resources/samples/showcase/sgbcs-api/sgbcs-api.gradle b/buildSrc/src/test/resources/samples/showcase/sgbcs-api/sgbcs-api.gradle index 3958647235..21103a8c56 100644 --- a/buildSrc/src/test/resources/samples/showcase/sgbcs-api/sgbcs-api.gradle +++ b/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" } diff --git a/buildSrc/src/test/resources/samples/showcase/sgbcs-core/sgbcs-core.gradle b/buildSrc/src/test/resources/samples/showcase/sgbcs-core/sgbcs-core.gradle index 5e165e7bc0..d40d2e282a 100644 --- a/buildSrc/src/test/resources/samples/showcase/sgbcs-core/sgbcs-core.gradle +++ b/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" diff --git a/buildSrc/src/test/resources/samples/testsconfiguration/web/build.gradle b/buildSrc/src/test/resources/samples/testsconfiguration/web/build.gradle index 44d134d9b4..51609102f6 100644 --- a/buildSrc/src/test/resources/samples/testsconfiguration/web/build.gradle +++ b/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' } \ No newline at end of file diff --git a/cas/spring-security-cas.gradle b/cas/spring-security-cas.gradle index 8b3d4630f7..ee7b3b46b2 100644 --- a/cas/spring-security-cas.gradle +++ b/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' diff --git a/config/spring-security-config.gradle b/config/spring-security-config.gradle index 1263fbda82..6208e2ea28 100644 --- a/config/spring-security-config.gradle +++ b/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" diff --git a/core/spring-security-core.gradle b/core/spring-security-core.gradle index 213f24f92c..acc7641b0d 100644 --- a/core/spring-security-core.gradle +++ b/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' diff --git a/crypto/spring-security-crypto.gradle b/crypto/spring-security-crypto.gradle index b45a20b0d8..096ac0ed23 100644 --- a/crypto/spring-security-crypto.gradle +++ b/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' diff --git a/data/spring-security-data.gradle b/data/spring-security-data.gradle index e0c9f14dab..64c0212a80 100644 --- a/data/spring-security-data.gradle +++ b/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' diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 549d84424d..ffed3a254e 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/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 diff --git a/itest/context/spring-security-itest-context.gradle b/itest/context/spring-security-itest-context.gradle index 4613738b7a..9e3334454a 100644 --- a/itest/context/spring-security-itest-context.gradle +++ b/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' diff --git a/itest/ldap/embedded-ldap-apacheds-default/spring-security-itest-ldap-embedded-apacheds-default.gradle b/itest/ldap/embedded-ldap-apacheds-default/spring-security-itest-ldap-embedded-apacheds-default.gradle index 8c921d2db1..6384a03830 100644 --- a/itest/ldap/embedded-ldap-apacheds-default/spring-security-itest-ldap-embedded-apacheds-default.gradle +++ b/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' diff --git a/itest/ldap/embedded-ldap-mode-apacheds/spring-security-itest-ldap-embedded-mode-apacheds.gradle b/itest/ldap/embedded-ldap-mode-apacheds/spring-security-itest-ldap-embedded-mode-apacheds.gradle index 8c921d2db1..6384a03830 100644 --- a/itest/ldap/embedded-ldap-mode-apacheds/spring-security-itest-ldap-embedded-mode-apacheds.gradle +++ b/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' diff --git a/itest/ldap/embedded-ldap-mode-unboundid/spring-security-itest-ldap-embedded-mode-unboundid.gradle b/itest/ldap/embedded-ldap-mode-unboundid/spring-security-itest-ldap-embedded-mode-unboundid.gradle index 17854d0241..71f3f812c6 100644 --- a/itest/ldap/embedded-ldap-mode-unboundid/spring-security-itest-ldap-embedded-mode-unboundid.gradle +++ b/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' diff --git a/itest/ldap/embedded-ldap-none/spring-security-itest-ldap-embedded-none.gradle b/itest/ldap/embedded-ldap-none/spring-security-itest-ldap-embedded-none.gradle index bf0e96e87e..d620d50029 100644 --- a/itest/ldap/embedded-ldap-none/spring-security-itest-ldap-embedded-none.gradle +++ b/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' diff --git a/itest/ldap/embedded-ldap-unboundid-default/spring-security-itest-ldap-embedded-unboundid-default.gradle b/itest/ldap/embedded-ldap-unboundid-default/spring-security-itest-ldap-embedded-unboundid-default.gradle index 17854d0241..71f3f812c6 100644 --- a/itest/ldap/embedded-ldap-unboundid-default/spring-security-itest-ldap-embedded-unboundid-default.gradle +++ b/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' diff --git a/itest/web/spring-security-itest-web.gradle b/itest/web/spring-security-itest-web.gradle index 3ef163839e..26feb48b14 100644 --- a/itest/web/spring-security-itest-web.gradle +++ b/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') diff --git a/ldap/spring-security-ldap.gradle b/ldap/spring-security-ldap.gradle index e16802ea45..35d81b08be 100644 --- a/ldap/spring-security-ldap.gradle +++ b/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' diff --git a/messaging/spring-security-messaging.gradle b/messaging/spring-security-messaging.gradle index 6556c0e6b0..895858e359 100644 --- a/messaging/spring-security-messaging.gradle +++ b/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' diff --git a/oauth2/oauth2-client/spring-security-oauth2-client.gradle b/oauth2/oauth2-client/spring-security-oauth2-client.gradle index fd71a9a30f..675f9b871c 100644 --- a/oauth2/oauth2-client/spring-security-oauth2-client.gradle +++ b/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') diff --git a/oauth2/oauth2-core/spring-security-oauth2-core.gradle b/oauth2/oauth2-core/spring-security-oauth2-core.gradle index 9fb4449b52..76a8ec9da3 100644 --- a/oauth2/oauth2-core/spring-security-oauth2-core.gradle +++ b/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' diff --git a/oauth2/oauth2-jose/spring-security-oauth2-jose.gradle b/oauth2/oauth2-jose/spring-security-oauth2-jose.gradle index 8290b8579e..70fdc8c36d 100644 --- a/oauth2/oauth2-jose/spring-security-oauth2-jose.gradle +++ b/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' diff --git a/oauth2/oauth2-resource-server/spring-security-oauth2-resource-server.gradle b/oauth2/oauth2-resource-server/spring-security-oauth2-resource-server.gradle index 438bbc8b5d..4031334bda 100644 --- a/oauth2/oauth2-resource-server/spring-security-oauth2-resource-server.gradle +++ b/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') diff --git a/openid/spring-security-openid.gradle b/openid/spring-security-openid.gradle index 0725b0d0a8..7ce077c0fa 100644 --- a/openid/spring-security-openid.gradle +++ b/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') { diff --git a/remoting/spring-security-remoting.gradle b/remoting/spring-security-remoting.gradle index adbc8baeb3..ca89a418d1 100644 --- a/remoting/spring-security-remoting.gradle +++ b/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' diff --git a/rsocket/spring-security-rsocket.gradle b/rsocket/spring-security-rsocket.gradle index 04950bb290..d06d652a74 100644 --- a/rsocket/spring-security-rsocket.gradle +++ b/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') diff --git a/saml2/saml2-service-provider/spring-security-saml2-service-provider.gradle b/saml2/saml2-service-provider/spring-security-saml2-service-provider.gradle index aecc7a6044..24d87225ce 100644 --- a/saml2/saml2-service-provider/spring-security-saml2-service-provider.gradle +++ b/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 } diff --git a/taglibs/spring-security-taglibs.gradle b/taglibs/spring-security-taglibs.gradle index a45ad37f12..7ab8469f0a 100644 --- a/taglibs/spring-security-taglibs.gradle +++ b/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') diff --git a/test/spring-security-test.gradle b/test/spring-security-test.gradle index e5b977dda5..599a9fe466 100644 --- a/test/spring-security-test.gradle +++ b/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' diff --git a/web/spring-security-web.gradle b/web/spring-security-web.gradle index ad2279b46e..bedf99dda6 100644 --- a/web/spring-security-web.gradle +++ b/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'