Skip to content

Commit 30bc263

Browse files
erichaagdevrwinch
authored andcommitted
Optimize configuration of project repositories
This change applies repository content filtering to configured repositories, reducing the time spent during dependency resolution. This fixes an issue where requests for 'org.opensaml', 'net.shibboleth.utilities' and 'net.minidev' dependencies were being made in the Spring releases repositories, resulting in many failed requests during dependency resolution and increased resolution times. Closes gh-13582
1 parent 13ca7ac commit 30bc263

File tree

4 files changed

+19
-22
lines changed

4 files changed

+19
-22
lines changed

buildSrc/src/main/groovy/io/spring/gradle/convention/RepositoryConventionPlugin.groovy

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,14 @@ class RepositoryConventionPlugin implements Plugin<Project> {
3434
if (forceMavenRepositories?.contains('local')) {
3535
mavenLocal()
3636
}
37+
maven {
38+
name = 'shibboleth'
39+
url = 'https://build.shibboleth.net/nexus/content/repositories/releases/'
40+
content {
41+
includeGroup('org.opensaml')
42+
includeGroup('net.shibboleth.utilities')
43+
}
44+
}
3745
mavenCentral()
3846
if (isSnapshot) {
3947
maven {
@@ -67,12 +75,11 @@ class RepositoryConventionPlugin implements Plugin<Project> {
6775
password project.artifactoryPassword
6876
}
6977
}
78+
content {
79+
excludeGroup('net.minidev')
80+
}
7081
url = 'https://repo.spring.io/release/'
7182
}
72-
maven {
73-
name = 'shibboleth'
74-
url = 'https://build.shibboleth.net/nexus/content/repositories/releases/'
75-
}
7683
}
7784
}
7885

buildSrc/src/test/java/io/spring/gradle/convention/RepositoryConventionPluginTests.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -125,27 +125,27 @@ public void applyWhenIsReleaseWithForceMilestoneAndLocalThenShouldIncludeMilesto
125125

126126
private void assertSnapshotRepository(RepositoryHandler repositories) {
127127
assertThat(repositories).extracting(ArtifactRepository::getName).hasSize(5);
128-
assertThat(((MavenArtifactRepository) repositories.get(0)).getUrl().toString())
129-
.isEqualTo("https://repo.maven.apache.org/maven2/");
130128
assertThat(((MavenArtifactRepository) repositories.get(1)).getUrl().toString())
131-
.isEqualTo("https://repo.spring.io/snapshot/");
129+
.isEqualTo("https://repo.maven.apache.org/maven2/");
132130
assertThat(((MavenArtifactRepository) repositories.get(2)).getUrl().toString())
131+
.isEqualTo("https://repo.spring.io/snapshot/");
132+
assertThat(((MavenArtifactRepository) repositories.get(3)).getUrl().toString())
133133
.isEqualTo("https://repo.spring.io/milestone/");
134134
}
135135

136136
private void assertMilestoneRepository(RepositoryHandler repositories) {
137137
assertThat(repositories).extracting(ArtifactRepository::getName).hasSize(4);
138-
assertThat(((MavenArtifactRepository) repositories.get(0)).getUrl().toString())
139-
.isEqualTo("https://repo.maven.apache.org/maven2/");
140138
assertThat(((MavenArtifactRepository) repositories.get(1)).getUrl().toString())
139+
.isEqualTo("https://repo.maven.apache.org/maven2/");
140+
assertThat(((MavenArtifactRepository) repositories.get(2)).getUrl().toString())
141141
.isEqualTo("https://repo.spring.io/milestone/");
142142
}
143143

144144
private void assertReleaseRepository(RepositoryHandler repositories) {
145145
assertThat(repositories).extracting(ArtifactRepository::getName).hasSize(3);
146-
assertThat(((MavenArtifactRepository) repositories.get(0)).getUrl().toString())
147-
.isEqualTo("https://repo.maven.apache.org/maven2/");
148146
assertThat(((MavenArtifactRepository) repositories.get(1)).getUrl().toString())
147+
.isEqualTo("https://repo.maven.apache.org/maven2/");
148+
assertThat(((MavenArtifactRepository) repositories.get(2)).getUrl().toString())
149149
.isEqualTo("https://repo.spring.io/release/");
150150
}
151151

config/spring-security-config.gradle

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,6 @@ apply plugin: 'io.spring.convention.spring-module'
44
apply plugin: 'trang'
55
apply plugin: 'kotlin'
66

7-
repositories {
8-
maven { url "https://build.shibboleth.net/nexus/content/repositories/releases/" }
9-
}
10-
117
dependencies {
128
management platform(project(":spring-security-dependencies"))
139
// NB: Don't add other compile time dependencies to the config module as this breaks tooling

docs/spring-security-docs.gradle

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
plugins {
22
id 'org.antora' version '1.0.0'
33
id 'io.spring.antora.generate-antora-yml' version '0.0.1'
4+
id 'io.spring.convention.repository'
45
}
56

67
apply plugin: 'io.spring.convention.docs'
@@ -59,10 +60,3 @@ def resolvedVersions(Configuration configuration) {
5960
.resolvedArtifacts
6061
.collectEntries { [(it.name + '-version'): it.moduleVersion.id.version] }
6162
}
62-
63-
repositories {
64-
mavenCentral()
65-
maven { url 'https://repo.spring.io/release' }
66-
maven { url 'https://repo.spring.io/milestone' }
67-
maven { url 'https://repo.spring.io/snapshot' }
68-
}

0 commit comments

Comments
 (0)