SLING-9884: use artifact level for warnings
diff --git a/src/main/java/org/apache/sling/feature/analyser/task/impl/CheckRequirementsCapabilities.java b/src/main/java/org/apache/sling/feature/analyser/task/impl/CheckRequirementsCapabilities.java
index 15bc39d..3492ae3 100644
--- a/src/main/java/org/apache/sling/feature/analyser/task/impl/CheckRequirementsCapabilities.java
+++ b/src/main/java/org/apache/sling/feature/analyser/task/impl/CheckRequirementsCapabilities.java
@@ -116,12 +116,22 @@
                                 }
                                 else
                                 {
-                                    ctx.reportWarning(String.format(format, info.getName(), requirement.toString(), entry.getKey(), "while the requirement is optional no artifact is providing a matching capability in this start level."));
+                                    String message = String.format(format, info.getName(), requirement.toString(), entry.getKey(), "while the requirement is optional no artifact is providing a matching capability in this start level.");
+                                    if (info instanceof ArtifactDescriptor) {
+                                        ctx.reportArtifactWarning(((ArtifactDescriptor) info).getArtifact().getId(), message);
+                                    } else {
+                                        ctx.reportWarning(message);
+                                    }
                                 }
                             }
                             else if (candidates.size() > 1)
                             {
-                                ctx.reportWarning(String.format(format, info.getName(), requirement.toString(), entry.getKey(), "there is more than one matching capability in this start level: " + candidates));
+                                String message = String.format(format, info.getName(), requirement.toString(), entry.getKey(), "there is more than one matching capability in this start level: " + candidates);
+                                if (info instanceof ArtifactDescriptor) {
+                                    ctx.reportArtifactWarning(((ArtifactDescriptor) info).getArtifact().getId(), message);
+                                } else {
+                                    ctx.reportWarning(message);
+                                }
                             }
                         }
                     }