final List<ServiceConfigBuilder> buildServiceConfigBuilder(AnnotatedServiceExtensions extensions,
                                                               DependencyInjector dependencyInjector) {
        final List<RequestConverterFunction> requestConverterFunctions =
                requestConverterFunctionBuilder.addAll(extensions.requestConverters()).build();
        final List<ResponseConverterFunction> responseConverterFunctions =
                responseConverterFunctionBuilder.addAll(extensions.responseConverters()).build();
        final List<ExceptionHandlerFunction> exceptionHandlerFunctions =
                exceptionHandlerFunctionBuilder.addAll(extensions.exceptionHandlers()).build();

        assert service != null;

        final List<AnnotatedServiceElement> elements =
                AnnotatedServiceFactory.find(pathPrefix, service, useBlockingTaskExecutor,
                                             requestConverterFunctions, responseConverterFunctions,
                                             exceptionHandlerFunctions, dependencyInjector, queryDelimiter);
        return elements.stream().flatMap(element -> {
            final HttpService decoratedService =
                    element.buildSafeDecoratedService(defaultServiceConfigSetters.decorator());
            assert !contextPaths.isEmpty() : "contextPaths shouldn't be empty";
            return contextPaths.stream().map(contextPath -> {
                return defaultServiceConfigSetters.toServiceConfigBuilder(
                        element.route(), contextPath, decoratedService);
            });
        }).collect(toImmutableList());
    }
Builds the {@link ServiceConfigBuilder}s created with the configured
{@link AnnotatedServiceExtensions}.

@param extensions the {@link AnnotatedServiceExtensions} of the parent.
@param dependencyInjector the {@link DependencyInjector} to inject dependencies.
core/src/main/java/com/linecorp/armeria/server/AbstractAnnotatedServiceConfigSetters.java