Github user aprelev commented on the issue: https://github.com/apache/ant-ivy/pull/73 As of now, two sets of dependencies are constructed in a different ways: - *currently resolved dependecies* are produced by Ivy resolve engine, with **both qualified and unqualified attributes** (`super.qualifiedExtraAttributes != super.extraAttributes`), and - *previously resolved dependencies* are parsed from last report by `XmlReportParser`, with **unqualified attributes only** (`super.qualifiedExtraAttributes == super.extraAttributes`). Set comparison at `ConfigurationResolveReport::checkIfChanged()` invokes `ModuleRevisionId::equals()` for individual dependencies comparison, which compares `super.qualifiedExtraAttributes` maps as in: ```Java @Override public boolean equals(Object obj) { ... return other.getRevision().equals(getRevision()) && !(other.getBranch() == null && getBranch() != null) && !(other.getBranch() != null && !other.getBranch().equals(getBranch())) && other.getModuleId().equals(getModuleId()) && other.getQualifiedExtraAttributes().equals(getQualifiedExtraAttributes()); //< here } ``` which, obviously, yields a `false`, since keys in `other.getQualifiedExtraAttributes()` map are stripped of qualifiers as explained above. That is why I introduced parameterised version of `ExtendableItemHelper::getExtraAttributes()` used by `XmlReportParser`, this way parsed dependencies have both versions of qualifiers, same as resolved dependencies. As I pointed out in original PR message, issue may instead be solved by modifying `ModuleRevisionId::equals()` to use `super.extraAttributes`, provided attributes namespaces cannot clash, of course, which will result in ignoring qualifiers: ```Java @Override public boolean equals(Object obj) { ... return other.getRevision().equals(getRevision()) && !(other.getBranch() == null && getBranch() != null) && !(other.getBranch() != null && !other.getBranch().equals(getBranch())) && other.getModuleId().equals(getModuleId()) && other.getExtraAttributes().equals(getExtraAttributes()); //< ignoring qualifiers } ``` At what point do you suggest we check for presense of `':'` in the names of attributes?
--- --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@ant.apache.org For additional commands, e-mail: dev-h...@ant.apache.org