@Test
    void serviceOptionsShouldNotOverrideServiceBindingBuilder() {
        final HttpService httpService = new HttpService() {
            @Override
            public HttpResponse serve(ServiceRequestContext ctx, HttpRequest req) {
                return HttpResponse.of("OK");
            }

            @Override
            public ServiceOptions options() {
                return SERVICE_OPTIONS;
            }
        };

        try (Server server = Server.builder().route().path("/test")
                                   .requestTimeoutMillis(20001)
                                   .maxRequestLength(20002)
                                   .requestAutoAbortDelayMillis(20003)
                                   .build(httpService)
                                   .build()) {
            final ServiceConfig sc = server.serviceConfigs().get(0);

            assertThat(sc.requestTimeoutMillis()).isEqualTo(20001);
            assertThat(sc.maxRequestLength()).isEqualTo(20002);
            assertThat(sc.requestAutoAbortDelayMillis()).isEqualTo(20003);
        }
    }
The priority of configurations from highest to lowest:
1. ServiceBinderBuilder
2. ServiceOptions (if exists)
3. VirtualHostBuilder
4. ServerBuilder
core/src/test/java/com/linecorp/armeria/server/ServiceOptionsTest.java