public static ModuleRevisionId[] toMrids(ModuleDescriptor[] descriptors) { ModuleRevisionId[] mrids = new ModuleRevisionId[descriptors.length]; for (int i = 0; i < descriptors.length; i++) { mrids[i] = descriptors[i].getModuleRevisionId(); } return mrids; }
DefaultModuleDescriptor nmd = new DefaultModuleDescriptor(md.getParser(), md.getResource()); nmd.revId = t.transform(md.getModuleRevisionId()); nmd.resolvedRevId = t.transform(md.getResolvedModuleRevisionId()); nmd.status = md.getStatus(); nmd.publicationDate = md.getPublicationDate(); nmd.resolvedPublicationDate = md.getResolvedPublicationDate(); ExtendsDescriptor[] ed = md.getInheritedDescriptors(); for (int i = 0; i < ed.length; ++i) { ModuleDescriptor parentMd = ed[i].getParentMd(); DefaultModuleDescriptor parentNmd = new DefaultModuleDescriptor(parentMd.getParser(), parentMd.getResource()); parentNmd.revId = t.transform(parentMd.getModuleRevisionId()); parentNmd.resolvedRevId = t.transform(parentMd.getResolvedModuleRevisionId()); parentNmd.status = parentMd.getStatus(); parentNmd.publicationDate = parentMd.getPublicationDate(); parentNmd.resolvedPublicationDate = parentMd.getResolvedPublicationDate(); DependencyDescriptor[] dd = md.getDependencies(); for (int i = 0; i < dd.length; i++) { nmd.dependencies.add(NameSpaceHelper.toSystem(dd[i], ns)); Configuration[] confs = md.getConfigurations(); for (int i = 0; i < confs.length; i++) { nmd.configurations.put(confs[i].getName(), confs[i]); Artifact[] arts = md.getArtifacts(confs[i].getName()); for (int j = 0; j < arts.length; j++) { nmd.addArtifact(confs[i].getName(), NameSpaceHelper.transform(arts[j], t));
public void saveResolvedModuleDescriptor(ModuleDescriptor md) throws ParseException, IOException { ModuleRevisionId mrevId = md.getResolvedModuleRevisionId(); File ivyFileInCache = getResolvedIvyFileInCache(mrevId); md.toIvyFile(ivyFileInCache); Properties paths = new Properties(); saveLocalParents(mrevId, md, ivyFileInCache, paths); if (!paths.isEmpty()) { File parentsFile = getResolvedIvyPropertiesInCache(ModuleRevisionId.newInstance(mrevId, mrevId.getRevision() + "-parents")); FileOutputStream out = new FileOutputStream(parentsFile); paths.store(out, null); out.close(); } }
Configuration config; if (masterConf.startsWith("!")) { config = md.getConfiguration(masterConf.substring(1)); } else { config = md.getConfiguration(masterConf); + md.getModuleRevisionId() + " because this configuration doesn't exist!");
/** * Merge everything from a given parent * * @param parent * a given parent module desciptor */ protected void mergeAll(ModuleDescriptor parent) { mergeInfo(parent); mergeConfigurations(parent); mergeDependencies(parent.getDependencies()); mergeDescription(parent.getDescription()); mergeLicenses(parent.getLicenses()); mergeExcludes(parent.getAllExcludeRules()); }
/** * Search in the moduleIdMap modules depending on node, add them to the toKeep set and process * them recursively. * * @param node * the node to be processed * @param toKeep * the set of ModuleDescriptors that should be kept * @param moduleIdMap * reference mapping of moduleId to ModuleDescriptor that are part of the BuildList */ private void processFilterNodeFromLeaf(ModuleDescriptor node, Set toKeep, Map moduleIdMap) { for (Iterator iter = moduleIdMap.values().iterator(); iter.hasNext();) { ModuleDescriptor md = (ModuleDescriptor) iter.next(); DependencyDescriptor[] deps = md.getDependencies(); for (int i = 0; i < deps.length; i++) { ModuleId id = deps[i].getDependencyId(); if (node.getModuleRevisionId().getModuleId().equals(id) && !toKeep.contains(md)) { toKeep.add(md); if (!getOnlydirectdep()) { processFilterNodeFromLeaf(md, toKeep, moduleIdMap); } } } } }
private static void printInfoTag(ModuleDescriptor md, PrintWriter out) { out.println("\t<info organisation=\"" + XMLHelper.escape(md.getModuleRevisionId().getOrganisation()) + "\""); out.println("\t\tmodule=\"" + XMLHelper.escape(md.getModuleRevisionId().getName()) + "\""); String branch = md.getResolvedModuleRevisionId().getBranch(); if (branch != null) { out.println("\t\tbranch=\"" + XMLHelper.escape(branch) + "\""); String revision = md.getResolvedModuleRevisionId().getRevision(); if (revision != null) { out.println("\t\trevision=\"" + XMLHelper.escape(revision) + "\""); out.println("\t\tstatus=\"" + XMLHelper.escape(md.getStatus()) + "\""); out.println("\t\tpublication=\"" + DateUtil.format(md.getResolvedPublicationDate()) + "\""); if (md.isDefault()) { out.println("\t\tdefault=\"true\""); if (!md.getExtraAttributes().isEmpty()) { printExtraAttributes(md, out, "\t\t"); out.println(); ExtendsDescriptor[] parents = md.getInheritedDescriptors(); for (int i = 0; i < parents.length; i++) { ExtendsDescriptor parent = parents[i]; License[] licenses = md.getLicenses(); for (int i = 0; i < licenses.length; i++) { License license = licenses[i]; if (md.getHomePage() != null || md.getDescription() != null) {
md.setResolvedModuleRevisionId(ModuleRevisionId.newInstance(md.getModuleRevisionId(), options.getPubBranch() == null ? mrid.getBranch() : options.getPubBranch(), revision)); md.setResolvedPublicationDate(options.getPubdate()); DependencyDescriptor[] dependencies = md.getDependencies(); for (int i = 0; i < dependencies.length; i++) { String rev = (String) resolvedRevisions.get(dependencies[i].getDependencyRevisionId()); md.getResolvedModuleRevisionId())); Message.info("\tdelivering ivy file to " + publishedIvy); Set confsToRemove = new HashSet(Arrays.asList(md.getConfigurationsNames())); confsToRemove.removeAll(Arrays.asList(confs)); opts = opts.setResolvedBranches(resolvedBranches); Resource res = md.getResource(); XmlModuleDescriptorUpdater.update(res.openStream(), res, publishedIvy, opts); } catch (SAXException ex) {
public DependencyDescriptor[] getDependencies() { return module.getDependencies(); }
originalModuleDescriptor.getModuleRevisionId(), originalModuleDescriptor.getStatus(), originalModuleDescriptor.getPublicationDate()); for (int i = 0; i < originalModuleDescriptor.getConfigurations().length; i++) { Configuration configuration = originalModuleDescriptor.getConfigurations()[i]; latestModuleDescriptor.addConfiguration(configuration); for (int i = 0; i < originalModuleDescriptor.getDependencies().length; i++) { DependencyDescriptor dependencyDescriptor = originalModuleDescriptor.getDependencies()[i]; ModuleRevisionId upToDateMrid = ModuleRevisionId.newInstance( dependencyDescriptor.getDependencyRevisionId(), revisionToCheck);
public ModuleDescriptor toFixedModuleDescriptor(IvySettings settings, List<ModuleId> midToKeep) { DefaultModuleDescriptor fixedmd = new DefaultModuleDescriptor(md.getModuleRevisionId(), md.getStatus(), new Date()); fixedmd.getExtraInfos().addAll(md.getExtraInfos()); DependencyDescriptor[] deps = md.getDependencies(); for (int i = 0; i < deps.length; i++) { if (midToKeep.contains(deps[i].getDependencyId())) {
.extractPomProperties(parentDescr.getExtraInfos()); for (Iterator iter = parentPomProps.entrySet().iterator(); iter.hasNext();) { Map.Entry prop = (Map.Entry) iter.next(); && groupId.equals(relocation.getOrganisation())) { Message.error("Relocation to an other version number not supported in ivy : " + mdBuilder.getModuleDescriptor().getModuleRevisionId() + " relocated to " + relocation + ". Please update your dependency to directly use the right version."); throw new ParseException("impossible to load module " + relocation + " to which " + mdBuilder.getModuleDescriptor().getModuleRevisionId() + " has been relocated", 0); DependencyDescriptor[] dds = relocatedModule.getDescriptor().getDependencies(); for (int i = 0; i < dds.length; i++) { mdBuilder.addDependency(dds[i]); Message.info(mdBuilder.getModuleDescriptor().getModuleRevisionId() + " is relocated to " + relocation + ". Please update your dependencies."); mdBuilder.addExtraInfos(parentDescr.getExtraInfos()); for (int i = 0; i < parentDescr.getDependencies().length; i++) { DependencyDescriptor descriptor = parentDescr.getDependencies()[i]; if (descriptor instanceof PomDependencyDescriptor) { PomDependencyData parentDep = ((PomDependencyDescriptor) descriptor)
if (rmr.getDescriptor().isDefault() && rmr.getResolver() != resolver) { Message.verbose("\t" + getName() + ": found revision in cache: " + mrid + " (resolved by " + rmr.getResolver().getName() long cacheLastModified = rmr.getDescriptor().getLastModified(); if (!rmr.getDescriptor().isDefault() && repLastModified <= cacheLastModified) { Message.verbose("\t" + getName() + ": revision in cache (not updated): " + mrid); .getResolvedPublicationDate(); + "; parsed=" + md.getModuleRevisionId()); && !cachedPublicationDate.equals(md.getResolvedPublicationDate())) { String[] confs = md.getConfigurationsNames(); for (int i = 0; i < confs.length; i++) { Artifact[] arts = md.getArtifacts(confs[i]); for (int j = 0; j < arts.length; j++) { Artifact transformedArtifact = NameSpaceHelper.transform(arts[j], md.getMetadataArtifact()); madr.setSearched(true); madr.setDownloadStatus(report.getDownloadStatus()); md.getMetadataArtifact(), options.getNamespace().getToSystemTransformer()); saveArtifactOrigin(transformedMetadataArtifact, report.getArtifactOrigin());
Set confsToRemove = new HashSet(Arrays.asList(md.getConfigurationsNames())); confsToRemove.removeAll(Arrays.asList(confs)); .setSettings(settings) .setStatus( options.getStatus() == null ? md.getStatus() : options .getStatus()) .setRevision(options.getPubrevision()) + ": " + e); } else if (!options.getPubrevision().equals(md.getModuleRevisionId().getRevision())) { throw new IllegalArgumentException("cannot publish " + ivyFile + " as " + options.getPubrevision() + ": bad revision found in ivy file (Revision: " + md.getModuleRevisionId().getRevision() + "). Use forcedeliver or update."); throw new IllegalStateException("bad ivy file in cache for " + mrid + ": " + e); md.setResolvedModuleRevisionId(pubmrid);
/** * Resolve dependencies of a module described by an ivy file. */ public ResolveReport resolve(URL ivySource, ResolveOptions options) throws ParseException, IOException { URLResource res = new URLResource(ivySource); ModuleDescriptorParser parser = ModuleDescriptorParserRegistry.getInstance().getParser(res); Message.verbose("using " + parser + " to parse " + ivySource); ModuleDescriptor md = parser.parseDescriptor(settings, ivySource, options.isValidate()); String revision = options.getRevision(); if (revision == null && md.getResolvedModuleRevisionId().getRevision() == null) { revision = Ivy.getWorkingRevision(); } if (revision != null) { md.setResolvedModuleRevisionId(ModuleRevisionId.newInstance(md.getModuleRevisionId(), revision)); } return resolve(md, options); }
boolean ok = true; StringBuffer errors = new StringBuffer(); if (!mrid.getOrganisation().equals(md.getModuleRevisionId().getOrganisation())) { Message.error("\t" + getName() + ": bad organisation found in " + ivyRef.getResource() + ": expected='" + mrid.getOrganisation() + "' found='" + md.getModuleRevisionId().getOrganisation() + "'"); errors.append("bad organisation: expected='" + mrid.getOrganisation() + "' found='" + md.getModuleRevisionId().getOrganisation() + "'; "); ok = false; if (!mrid.getName().equals(md.getModuleRevisionId().getName())) { Message.error("\t" + getName() + ": bad module name found in " + ivyRef.getResource() + ": expected='" + mrid.getName() + " found='" + md.getModuleRevisionId().getName() + "'"); errors.append("bad module name: expected='" + mrid.getName() + "' found='" + md.getModuleRevisionId().getName() + "'; "); ok = false; && !mrid.getBranch().equals(md.getModuleRevisionId().getBranch())) { Message.error("\t" + getName() + ": bad branch name found in " + ivyRef.getResource() + ": expected='" + mrid.getBranch() + " found='" + md.getModuleRevisionId().getBranch() + "'"); errors.append("bad branch name: expected='" + mrid.getBranch() + "' found='" + md.getModuleRevisionId().getBranch() + "'; "); ok = false; && !mrid.getRevision().equals(md.getModuleRevisionId().getRevision())) { ModuleRevisionId expectedMrid = ModuleRevisionId.newInstance(mrid, mrid.getRevision()); if (!getSettings().getVersionMatcher().accept(expectedMrid, md)) {
String[] confs = md.getConfigurationsNames(); Set artifacts = new HashSet(); for (int i = 0; i < confs.length; i++) { artifacts.addAll(Arrays.asList(md.getArtifacts(confs[i]))); DependencyDescriptor[] dds = md.getDependencies(); ResolveData data = new ResolveData(resolveEngine, new ResolveOptions()); for (int i = 0; i < dds.length; i++) { for (int j = 0; j < masterConfs.length; j++) { if (!"*".equals(masterConfs[j].trim()) && md.getConfiguration(masterConfs[j]) == null) { Message.info("dependency required in non existing conf for " + ivyFile + " \n\tin " + dds[i] + ": " + masterConfs[j]); } else { String[] depConfs = dds[i].getDependencyConfigurations(md .getConfigurationsNames()); for (int j = 0; j < depConfs.length; j++) { if (!Arrays.asList(rmr.getDescriptor().getConfigurationsNames()).contains( depConfs[j])) { Message.info("dependency configuration is missing for " + ivyFile result = false; Artifact[] arts = rmr.getDescriptor().getArtifacts(depConfs[j]); for (int k = 0; k < arts.length; k++) { if (!resolver.exists(arts[k])) {
ModuleRevisionId mergedMrid = merged.getModuleRevisionId(); organisation = mergedMrid.getOrganisation(); branch = mergedMrid.getBranch(); rev = mergedMrid.getRevision(); status = merged.getStatus(); extraAttributes = merged.getQualifiedExtraAttributes(); } else {
/** * Explain how to inherit metadatas related to info element * * @param parent * a given parent module decriptor */ protected void mergeInfo(ModuleDescriptor parent) { ModuleRevisionId parentMrid = parent.getModuleRevisionId(); DefaultModuleDescriptor descriptor = getMd(); ModuleRevisionId currentMrid = descriptor.getModuleRevisionId(); ModuleRevisionId mergedMrid = ModuleRevisionId.newInstance( mergeValue(parentMrid.getOrganisation(), currentMrid.getOrganisation()), currentMrid.getName(), mergeValue(parentMrid.getBranch(), currentMrid.getBranch()), mergeRevisionValue(parentMrid.getRevision(), currentMrid.getRevision()), mergeValues(parentMrid.getQualifiedExtraAttributes(), currentMrid.getQualifiedExtraAttributes())); descriptor.setModuleRevisionId(mergedMrid); descriptor.setResolvedModuleRevisionId(mergedMrid); descriptor.setStatus(mergeValue(parent.getStatus(), descriptor.getStatus())); if (descriptor.getNamespace() == null && parent instanceof DefaultModuleDescriptor) { Namespace parentNamespace = ((DefaultModuleDescriptor) parent).getNamespace(); descriptor.setNamespace(parentNamespace); } descriptor.getExtraInfos().addAll(parent.getExtraInfos()); }
String mdOrg = md.getModuleRevisionId().getOrganisation(); String mdName = md.getModuleRevisionId().getName(); String mdRev = md.getResolvedModuleRevisionId().getRevision(); getProject().setProperty("ivy.organisation", mdOrg); settings.setVariable("ivy.organisation", mdOrg); getProject().setProperty("ivy.revision", mdRev); settings.setVariable("ivy.revision", mdRev); for (int i = 0; i < md.getInheritedDescriptors().length; i++) { ExtendsDescriptor parent = md.getInheritedDescriptors()[i]; String parentOrg = parent.getResolvedParentRevisionId().getOrganisation(); String parentModule = parent.getResolvedParentRevisionId().getName(); String.valueOf(md.getInheritedDescriptors().length)); settings.setVariable("ivy.parents.count", String.valueOf(md.getInheritedDescriptors().length));