diff --git a/buildSrc/src/main/java/org/springframework/security/convention/versions/UpdateDependenciesExtension.java b/buildSrc/src/main/java/org/springframework/security/convention/versions/UpdateDependenciesExtension.java index 5f66ecb7f1..a4fb5dc5bc 100644 --- a/buildSrc/src/main/java/org/springframework/security/convention/versions/UpdateDependenciesExtension.java +++ b/buildSrc/src/main/java/org/springframework/security/convention/versions/UpdateDependenciesExtension.java @@ -1,6 +1,8 @@ package org.springframework.security.convention.versions; +import com.github.benmanes.gradle.versions.updates.resolutionstrategy.ComponentSelectionRulesWithCurrent; import com.github.benmanes.gradle.versions.updates.resolutionstrategy.ComponentSelectionWithCurrent; +import com.github.benmanes.gradle.versions.updates.resolutionstrategy.ResolutionStrategyWithCurrent; import org.gradle.api.Action; import java.io.File; @@ -115,11 +117,16 @@ public class UpdateDependenciesExtension { */ public class DependencyExcludes { private List> actions = new ArrayList<>(); + private List> components = new ArrayList<>(); List> getActions() { return actions; } + public List> getComponents() { + return components; + } + public DependencyExcludes alphaBetaVersions() { this.actions.add(excludeVersionWithRegex("(?i).*?(alpha|beta).*", "an alpha or beta version")); return this; @@ -155,6 +162,11 @@ public class UpdateDependenciesExtension { return this; } + public DependencyExcludes addRule(Action rule) { + this.components.add(rule); + return this; + } + private Action excludeVersionWithRegex(String regex, String reason) { Pattern pattern = Pattern.compile(regex); return (selection) -> { diff --git a/buildSrc/src/main/java/org/springframework/security/convention/versions/UpdateDependenciesPlugin.java b/buildSrc/src/main/java/org/springframework/security/convention/versions/UpdateDependenciesPlugin.java index 88e4746419..28f6d2b83c 100644 --- a/buildSrc/src/main/java/org/springframework/security/convention/versions/UpdateDependenciesPlugin.java +++ b/buildSrc/src/main/java/org/springframework/security/convention/versions/UpdateDependenciesPlugin.java @@ -68,6 +68,9 @@ public class UpdateDependenciesPlugin implements Plugin { updateDependenciesSettings.getExcludes().getActions().forEach((action) -> { components.all(action); }); + updateDependenciesSettings.getExcludes().getComponents().forEach((action) -> { + action.execute(components); + }); components.all((selection) -> { ModuleComponentIdentifier candidate = selection.getCandidate(); if (candidate.getGroup().startsWith("org.apache.directory.") && !candidate.getVersion().equals(selection.getCurrentVersion())) {