Skip to content

Commit 013db0f

Browse files
authored
Merge pull request #92 from nebula-plugins/fix-nebulaRecommenderBom-support
Fix nebula recommender bom support
2 parents a8ad219 + 93959b7 commit 013db0f

File tree

2 files changed

+32
-1
lines changed

2 files changed

+32
-1
lines changed

src/main/groovy/netflix/nebula/dependency/recommender/DependencyRecommendationsPlugin.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ public void apply(final Project project) {
5959
logger.warn("coreBomSupport feature enabled");
6060
recommendationProviderContainer.excludeConfigurations("archives", NEBULA_RECOMMENDER_BOM, "provided",
6161
"versionManagement", "resolutionRules", "bootArchives", "webapp");
62+
bomConfiguration.setCanBeResolved(false);
6263
applyRecommendationsDirectly(project, bomConfiguration);
6364
} else {
6465
applyRecommendations(project);

src/main/groovy/netflix/nebula/dependency/recommender/provider/RecommendationProviderContainer.java

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,9 @@
2727
import org.gradle.api.internal.DefaultNamedDomainObjectList;
2828
import org.gradle.util.ConfigureUtil;
2929

30+
import java.io.File;
3031
import java.util.Arrays;
32+
import java.util.Collections;
3133
import java.util.HashMap;
3234
import java.util.HashSet;
3335
import java.util.Map;
@@ -57,10 +59,20 @@ public void execute(RecommendationProvider r) {
5759
public RecommendationProviderContainer(Project project) {
5860
super(RecommendationProvider.class, null, new RecommendationProviderNamer());
5961
this.project = project;
60-
this.mavenBomProvider = new MavenBomRecommendationProvider(this.project, DependencyRecommendationsPlugin.NEBULA_RECOMMENDER_BOM, this.reasons);
62+
this.mavenBomProvider = getMavenBomRecommendationProvider();
6163
this.add(this.mavenBomProvider);
6264
}
6365

66+
private MavenBomRecommendationProvider getMavenBomRecommendationProvider() {
67+
MavenBomRecommendationProvider mavenBomRecommendationProvider;
68+
if(DependencyRecommendationsPlugin.CORE_BOM_SUPPORT_ENABLED) {
69+
mavenBomRecommendationProvider = new CoreBomSupportProvider(this.project, DependencyRecommendationsPlugin.NEBULA_RECOMMENDER_BOM, this.reasons);
70+
} else {
71+
mavenBomRecommendationProvider = new MavenBomRecommendationProvider(this.project, DependencyRecommendationsPlugin.NEBULA_RECOMMENDER_BOM, this.reasons);
72+
}
73+
return mavenBomRecommendationProvider;
74+
}
75+
6476
private static class RecommendationProviderNamer implements Namer<RecommendationProvider> {
6577
public String determineName(RecommendationProvider r) {
6678
return r.getName();
@@ -224,4 +236,22 @@ private static void ensureCoreBomSupportNotEnabled(String feature) {
224236
throw new GradleException("dependencyRecommender." + feature + " is not available with 'systemProp.nebula.features.coreBomSupport=true'");
225237
}
226238
}
239+
240+
//This is to prevent resolving files from nebulaRecommenderBom configuration
241+
private static class CoreBomSupportProvider extends MavenBomRecommendationProvider {
242+
public CoreBomSupportProvider(Project project, String configName, Set<String> reasons) {
243+
super(project, configName, reasons);
244+
}
245+
246+
@Override
247+
public String getName() {
248+
return "";
249+
}
250+
251+
@Override
252+
Set<File> getFilesOnConfiguration() {
253+
return Collections.emptySet();
254+
}
255+
}
256+
227257
}

0 commit comments

Comments
 (0)