in src/main/java/org/apache/nifi/extension/definition/extraction/ExtensionDefinitionFactory.java [90:109]
private void addProvidedServiceAPIs(final Class<?> controllerServiceClass, final Class<?> extensionClass, final Set<ServiceAPIDefinition> serviceApis) {
final Class<?>[] extensionInterfaces = extensionClass.getInterfaces();
if (extensionInterfaces == null) {
return;
}
for (final Class<?> immediateInterface : extensionInterfaces) {
final Set<Class<?>> interfaceHierarchy = new HashSet<>();
interfaceHierarchy.add(immediateInterface);
getInterfaceHierarchy(immediateInterface, interfaceHierarchy);
for (final Class<?> implementedInterface : interfaceHierarchy) {
processImplementedInterface(implementedInterface, controllerServiceClass, serviceApis);
}
}
if (extensionClass.getSuperclass() != null) {
addProvidedServiceAPIs(controllerServiceClass, extensionClass.getSuperclass(), serviceApis);
}
}