Skip to content

Commit

Permalink
Make a copy of a configuration before resolving
Browse files Browse the repository at this point in the history
  • Loading branch information
aalmiray committed Oct 24, 2020
1 parent 1dfaae7 commit cabc056
Show file tree
Hide file tree
Showing 4 changed files with 13 additions and 10 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -126,10 +126,11 @@ abstract class AbstractBanDependencies extends AbstractStandardEnforcerRule {
}

context.logger.info("Resolving configuration ${configuration.name}.")
configuration.resolve()
Configuration cfg = configuration.copy()
cfg.resolve()

context.logger.info("Configuration ${configuration.name} contains ${configuration.resolvedConfiguration.resolvedArtifacts.size()} artifacts.")
artifacts.addAll(configuration.resolvedConfiguration.resolvedArtifacts)
context.logger.info("Configuration ${cfg.name} contains ${cfg.resolvedConfiguration.resolvedArtifacts.size()} artifacts.")
artifacts.addAll(cfg.resolvedConfiguration.resolvedArtifacts)
}

protected abstract Set<ResolvedArtifact> checkDependencies(EnforcerContext context, Set<ResolvedArtifact> artifacts)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -154,11 +154,12 @@ class BanDuplicateClasses extends AbstractResolveDependencies {
ignorableDependencies.add(ignorableDependency)
}

configuration.resolve()
Configuration cfg = configuration.copy()
cfg.resolve()

Set<String> duplicates = []

for (ResolvedArtifact o : configuration.resolvedConfiguration.resolvedArtifacts) {
for (ResolvedArtifact o : cfg.resolvedConfiguration.resolvedArtifacts) {
if (artifactsSeen.contains(o)) {
continue
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -74,17 +74,17 @@ class DependencyConvergence extends AbstractFilteringEnforcerRule {
case AFTER_PROJECT:
// resolve
context.project.configurations.each { Configuration c ->
if (c.canBeResolved) c.resolve()
if (c.canBeResolved) c.copy().resolve()
}
break
case AFTER_PROJECTS:
// resolve
context.project.configurations.each { Configuration c ->
if (c.canBeResolved) c.resolve()
if (c.canBeResolved) c.copy().resolve()
}
for (Project project : context.project.childProjects.values()) {
project.configurations.each { Configuration c ->
if (c.canBeResolved) c.resolve()
if (c.canBeResolved) c.copy().resolve()
}
}
break
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -225,9 +225,10 @@ class EnforceBytecodeVersion extends AbstractResolveDependencies {
return
}

configuration.resolve()
Configuration cfg = configuration.copy()
cfg.resolve()

Set<ResolvedArtifact> resolvedArtifacts = configuration.resolvedConfiguration.resolvedArtifacts
Set<ResolvedArtifact> resolvedArtifacts = cfg.resolvedConfiguration.resolvedArtifacts
resolvedArtifacts.removeAll(artifactsSeen)
artifactsSeen.addAll(resolvedArtifacts)

Expand Down

0 comments on commit cabc056

Please sign in to comment.