String parentConf, String conf, boolean shouldBePublic, IvyNodeUsage usage) {
if (md != null) {
String[] confs = getRealConfs(conf);
addRootModuleConfigurations(usage, rootModuleConf, confs);
for (int i = 0; i < confs.length; i++) {
Configuration c = md.getConfiguration(confs[i]);
if (c == null) {
confsToFetch.remove(conf);
if (isConfRequiredByMergedUsageOnly(rootModuleConf, conf)) {
Message.verbose(
"configuration required by evicted revision is not available in "
+ "selected revision. skipping " + conf + " in " + this);
} else if (!conf.equals(confs[i])) {
problem = new RuntimeException("configuration not found in " + this
+ ": '" + conf + "'. Missing configuration: '" + confs[i]
+ "'. It was required from " + parent + " " + parentConf);
} else {
problem = new RuntimeException("configuration not found in " + this
+ ": '" + confs[i] + "'. It was required from " + parent + " "
+ parentConf);
}
return false;
} else if (shouldBePublic && !isRoot()
&& c.getVisibility() != Configuration.Visibility.PUBLIC) {
confsToFetch.remove(conf);
if (isConfRequiredByMergedUsageOnly(rootModuleConf, conf)) {
Message.verbose(
"configuration required by evicted revision is not visible in "
+ "selected revision. skipping " + conf + " in " + this);