in invoker/core/src/main/java/com/google/cloud/functions/invoker/BackgroundFunctionExecutor.java [106:118]
public static BackgroundFunctionExecutor forClass(Class<?> functionClass) {
Optional<FunctionKind> maybeFunctionKind = FunctionKind.forClass(functionClass);
if (!maybeFunctionKind.isPresent()) {
List<String> classNames =
FunctionKind.VALUES.stream().map(v -> v.functionClass.getName()).collect(toList());
throw new RuntimeException(
"Class "
+ functionClass.getName()
+ " must implement one of these interfaces: "
+ String.join(", ", classNames));
}
return forClass(functionClass, maybeFunctionKind.get());
}