in src/main/java/org/apache/sling/junit/jupiter/osgi/ServiceParameterResolver.java [124:139]
private static Service findMatchingServiceAnnotationOnParameter(@NotNull ParameterContext parameterContext, @NotNull Class<?> requiredServiceType) {
final List<Service> serviceAnnotations = parameterContext.findRepeatableAnnotations(Service.class);
switch (serviceAnnotations.size()) {
case 0:
return null;
case 1:
final Service serviceAnnotation = serviceAnnotations.get(0);
if (!serviceAnnotation.value().isAssignableFrom(requiredServiceType)) {
throw new ParameterResolutionException("Mismatched types in annotation and parameter. " +
"Annotation type is \"" + serviceAnnotation.value().getSimpleName() + "\", parameter type is \"" + requiredServiceType.getSimpleName() + "\"");
}
return serviceAnnotation;
default:
throw new ParameterResolutionException("Parameters must not be annotated with multiple @Service annotations: " + parameterContext.getDeclaringExecutable());
}
}