public static <T extends Annotation> T getAnnotationRecursive(Class<?> cls, Class<T> annotationClass) {
    T annotation = cls.getAnnotation(annotationClass);
    if (annotation != null) return annotation;
    if (Object.class.equals(cls)) return null;
    return getAnnotationRecursive(cls.getSuperclass(), annotationClass);
  }
Returns the resources from the {@code Thread.currentThread().getContextClassLoader()}.

@param resourcePath the path of the resource
@return the list of resources
@throws IOException if the resources can't be loaded
spock-core/src/main/java/org/spockframework/util/ReflectionUtil.java