public ResolvedConfiguration resolve(
     Configuration configuration, Ivy ivy, ModuleDescriptor moduleDescriptor) {
   Clock clock = new Clock();
   ResolveOptions resolveOptions = createResolveOptions(configuration);
   ResolveReport resolveReport;
   try {
     resolveReport = ivy.resolve(moduleDescriptor, resolveOptions);
   } catch (Exception e) {
     throw new RuntimeException(e);
   }
   logger.debug("Timing: Ivy resolve took {}", clock.getTime());
   return new ResolvedConfigurationImpl(resolveReport, configuration);
 }