private static Service findMatchingServiceAnnotationOnParameter()

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());
        }
    }