@Nullable
    private Function<? super HttpService, ? extends HttpService> getRouteDecoratingService(
            @Nullable VirtualHostBuilder defaultVirtualHostBuilder, String baseContextPath) {
        final List<RouteDecoratingService> routeDecoratingServices;
        if (defaultVirtualHostBuilder != null) {
            routeDecoratingServices = ImmutableList.<RouteDecoratingService>builder()
                                                   .addAll(this.routeDecoratingServices)
                                                   .addAll(defaultVirtualHostBuilder.routeDecoratingServices)
                                                   .build();
        } else {
            routeDecoratingServices = ImmutableList.copyOf(this.routeDecoratingServices);
        }

        if (!routeDecoratingServices.isEmpty()) {
            final List<RouteDecoratingService> prefixed =
                    routeDecoratingServices.stream()
                                           .map(service -> service.withRoutePrefix(baseContextPath))
                                           .collect(toImmutableList());
            return RouteDecoratingService.newDecorator(Routers.ofRouteDecoratingService(prefixed),
                                                       routeDecoratingServices);
        } else {
            return null;
        }
    }
Returns a new instance of {@link VirtualHostAnnotatedServiceBindingBuilder} to build
an annotated service fluently.
core/src/main/java/com/linecorp/armeria/server/VirtualHostBuilder.java