private void addProvidedServiceAPIs()

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