Skip to content

Commit

Permalink
extract methods and
Browse files Browse the repository at this point in the history
Signed-off-by: Christoph Rueger <[email protected]>
  • Loading branch information
chrisrueger committed Nov 28, 2023
1 parent 8063825 commit fe0ed35
Showing 1 changed file with 54 additions and 31 deletions.
85 changes: 54 additions & 31 deletions biz.aQute.resolve/src/biz/aQute/resolve/ResolveProcess.java
Original file line number Diff line number Diff line change
Expand Up @@ -290,53 +290,76 @@ public static String format(ResolutionException re, boolean reportOptional) {
// 4. Check Blacklist

if (re instanceof BndResolutionException detailedExc) {
Set<Resource> blackList = detailedExc.getBlackList();
Set<Capability> blacklistedCapabilities = detailedExc.getBlacklistedCapabilities();
printBlacklistDebugLog(chain, f, detailedExc);
}

if (blacklistedCapabilities != null && !blacklistedCapabilities.isEmpty()) {
return f.toString();
}
}

f.format(
"%n%nBlacklisted Capabilities: Some requirements could not be satisfied because of blacklisted capabilities in -runblacklist:%n");
/**
* Print -runblacklist related debug output if exists.
*
* @param unresolvedRequirements
* @param f
* @param detailedExc
*/
private static void printBlacklistDebugLog(List<Requirement> unresolvedRequirements, Formatter f,
BndResolutionException detailedExc) {
Set<Resource> blackList = detailedExc.getBlackList();
Set<Capability> blacklistedCapabilities = detailedExc.getBlacklistedCapabilities();

for (Requirement req : chain) {
if (blacklistedCapabilities != null && !blacklistedCapabilities.isEmpty()) {

String namespace = req.getNamespace();
String filter = req.getDirectives()
.get("filter");
f.format(
"%n%nBlacklisted Capabilities: Some requirements could not be satisfied because of blacklisted capabilities in -runblacklist:%n");

for (Resource blacklistedRes : blackList) {
printBlacklistSummary(unresolvedRequirements, f, blackList);

List<Capability> findCapability = ResourceUtils.findCapability(blacklistedRes, namespace,
filter);
if (!findCapability.isEmpty()) {
f.format(
"%s is ignored because it is blacklisted although providing required capability %s%s%n",
blacklistedRes, namespace, filter);
}
f.format("%n%nAll blacklisted Capabilities:%n");

}
for (Capability cap : blacklistedCapabilities) {
f.format("'%s' providing capability '%s: %s' ignored%n", cap.getResource(), cap.getNamespace(),
cap.getAttributes()
.get(cap.getNamespace()));
}

}
f.format("%n%nAll blacklisted Resources:%n");

f.format("%n%nAll Blacklisted Capabilities:%n");
for (Resource res : blackList) {
f.format("%s%n", res);
}
}
}

for (Capability cap : blacklistedCapabilities) {
f.format("%s providing capability %s:%s ignored%n", cap.getResource(), cap.getNamespace(),
cap.getAttributes()
.get(cap.getNamespace()));
}
/**
* Tries to determine which of the blacklisted capability (resource) is
* responsible for an unresolved requirement.
*
* @param unresolvedRequirements
* @param f
* @param blackList
*/
private static void printBlacklistSummary(List<Requirement> unresolvedRequirements, Formatter f,
Set<Resource> blackList) {
for (Requirement req : unresolvedRequirements) {

f.format("%n%nAll Blacklisted Resources%n");
String namespace = req.getNamespace();
String filter = req.getDirectives()
.get("filter");

for (Resource res : blackList) {
f.format("%s%n", res);
}
}
for (Resource blacklistedRes : blackList) {

List<Capability> findCapability = ResourceUtils.findCapability(blacklistedRes, namespace,
filter);
if (!findCapability.isEmpty()) {
f.format(
"'%s' is ignored because it is blacklisted although providing required capability '%s: %s'%n",
blacklistedRes, namespace, filter);
}

}

return f.toString();
}
}

Expand Down

0 comments on commit fe0ed35

Please sign in to comment.