Skip to content

Commit

Permalink
Merge pull request #25 from jamezp/filter-exclusions
Browse files Browse the repository at this point in the history
[23] Add an ignored exclusions parameter for ignoring exclusions of i…
  • Loading branch information
emmartins committed Jan 9, 2024
2 parents 125fc78 + 26e1bf2 commit 5808ac0
Showing 1 changed file with 20 additions and 2 deletions.
22 changes: 20 additions & 2 deletions src/main/java/org/wildfly/plugins/bombuilder/BuildBomMojo.java
Original file line number Diff line number Diff line change
Expand Up @@ -182,6 +182,12 @@ public class BuildBomMojo
@Parameter
private boolean bomWithDependencies = false;

/**
* A list of exclusions which should be ignored when defining the exclusions for included dependencies.
*/
@Parameter(alias = "ignored-exclusions")
private List<Exclusion> ignoredExclusions;

public enum InheritExclusions {
ALL,
NONE,
Expand Down Expand Up @@ -473,7 +479,9 @@ private void addDependencyManagement(Model pomModel) throws MojoExecutionExcepti
Exclusion exclusion = new Exclusion();
exclusion.setGroupId(excludedDependency.getGroupId());
exclusion.setArtifactId(excludedDependency.getArtifactId());
dependenciesExcludedFromResolving.add(exclusion);
if (!isIgnoredExclusion(exclusion)) {
dependenciesExcludedFromResolving.add(exclusion);
}
}
}
// include transitives of dependencies
Expand Down Expand Up @@ -601,7 +609,7 @@ public boolean accept(DependencyNode node, List<DependencyNode> parents) {
final List<Exclusion> filteredExclusions = new ArrayList<>();
for (Map.Entry<String, Exclusion> resolvedExclusionEntry : resolvedExclusions.entrySet()) {
final String resolvedExclusionKey = resolvedExclusionEntry.getKey();
if (managedExclusions.contains(resolvedExclusionKey)) {
if (managedExclusions.contains(resolvedExclusionKey) || isIgnoredExclusion(resolvedExclusionEntry.getValue())) {
getLog().debug("Removing exclusion "+resolvedExclusionKey+" from dependency "+dependency.getManagementKey());
continue;
}
Expand Down Expand Up @@ -831,6 +839,16 @@ private boolean isImportedDependency(Dependency dependency) {
return false;
}

private boolean isIgnoredExclusion(final Exclusion exclusion) {
for (Exclusion ignoredExclusion : ignoredExclusions) {
if (ignoredExclusion.getArtifactId().equals(exclusion.getArtifactId()) &&
ignoredExclusion.getGroupId().equals(exclusion.getGroupId())) {
return true;
}
}
return false;
}

private <T extends Dependency> T getDependencyMatch(Dependency dependency, Collection<? extends T> dependencyMatches) {
if (dependencyMatches != null && !dependencyMatches.isEmpty()) {
for (T dependencyMatch : dependencyMatches) {
Expand Down

0 comments on commit 5808ac0

Please sign in to comment.