public void resolve(DependencyMetaData dependency, BuildableComponentIdResolveResult result) { ModuleVersionSelector module = dependency.getRequested(); DefaultDependencyResolveDetails details = new DefaultDependencyResolveDetails(module); try { rule.execute(details); } catch (Throwable e) { result.failed(new ModuleVersionResolveException(module, e)); return; } if (details.isUpdated()) { DependencyMetaData substitutedDependency = dependency.withRequestedVersion(details.getTarget()); resolver.resolve(substitutedDependency, result); result.setSelectionReason(details.getSelectionReason()); return; } resolver.resolve(dependency, result); }