} else if (!hasConfigurationsToLoad() && isRootModuleConfLoaded(rootModuleConf)) {
Message.debug(rootModuleConf + " is loaded and no conf to load. Skip loading");
} else {
markRootModuleConfLoaded(rootModuleConf);
if (md == null) {
DependencyResolver resolver = data.getSettings().getResolver(getId());
if (resolver == null) {
Message.error("no resolver found for " + getModuleId()
+ ": check your configuration");
problem = new RuntimeException("no resolver found for " + getModuleId()
+ ": check your configuration");
return false;
}
try {
Message.debug("\tusing " + resolver + " to resolve " + getId());
DependencyDescriptor dependencyDescriptor = getDependencyDescriptor(parent);
long start = System.currentTimeMillis();
data.getEventManager().fireIvyEvent(
new StartResolveDependencyEvent(resolver, dependencyDescriptor));
module = resolver.getDependency(dependencyDescriptor, data);
data.getEventManager().fireIvyEvent(
new EndResolveDependencyEvent(resolver, dependencyDescriptor, module,
System.currentTimeMillis() - start));
if (module != null) {
module.getResolver().getRepositoryCacheManager().saveResolvers(
module.getDescriptor(),
module.getResolver().getName(),
module.getArtifactResolver().getName());
if (settings.logModuleWhenFound()
&& LogOptions.LOG_DEFAULT.equals(getData().getOptions().getLog())) {
Message.info("\tfound " + module.getId() + " in "
+ module.getResolver().getName());
} else {
Message.verbose("\tfound " + module.getId() + " in "
+ module.getResolver().getName());
}
if (settings.getVersionMatcher().isDynamic(getId())) {
// IVY-56: check if revision has actually been resolved
if (settings.getVersionMatcher().isDynamic(module.getId())) {
Message
.error("impossible to resolve dynamic revision for "
+ getId()
+ ": check your configuration and make sure revision is part of your pattern");
problem = new RuntimeException(
"impossible to resolve dynamic revision");
return false;
}
IvyNode resolved = data.getNode(module.getId());
if (resolved != null) {
// exact revision has already been resolved
// => update it and discard this node
md = module.getDescriptor(); // needed for handleConfiguration
if (!handleConfiguration(loaded, rootModuleConf, parent,
parentConf, conf, shouldBePublic)) {
return false;
}
if (resolved.md == null) {
resolved.md = md;
}
if (resolved.module == null) {
resolved.module = module;
}
resolved.downloaded |= module.getReport().isDownloaded();
resolved.searched |= module.getReport().isSearched();
resolved.dds.putAll(dds);
resolved.updateDataFrom(this, rootModuleConf, true);
resolved.loadData(rootModuleConf, parent, parentConf, conf,
shouldBePublic);
DependencyDescriptor dd = dependencyDescriptor;
if (dd != null) {
resolved.addDependencyArtifacts(rootModuleConf, dd
.getDependencyArtifacts(parentConf));
resolved.addDependencyIncludes(rootModuleConf, dd
.getIncludeRules(parentConf));
}
data.replaceNode(getId(), resolved, rootModuleConf);
// this actually discards the node
if (settings.logResolvedRevision()) {
Message.info("\t[" + module.getId().getRevision() + "] "
+ getId());
} else {
Message.verbose("\t[" + module.getId().getRevision() + "] "
+ getId());
}
return true;
}
}
downloaded = module.getReport().isDownloaded();
searched = module.getReport().isSearched();
} else {
Message.warn("\tmodule not found: " + getId());
resolver.reportFailure();
problem = new RuntimeException("not found");
}
} catch (ResolveProcessException e) {
throw e;
} catch (Exception e) {