code: public ServiceRequestContext build() {
          // Determine the client address; use remote address unless overridden.
          final InetAddress clientAddress;
          if (this.clientAddress != null) {
              clientAddress = this.clientAddress;
          } else {
              clientAddress = remoteAddress().getAddress();
          }
  
          // Build a fake server which never starts up.
          final ServerBuilder serverBuilder = new ServerBuilder().meterRegistry(meterRegistry())
                                                                 .workerGroup(eventLoop(), false)
                                                                 .service(path(), service);
          serverConfigurators.forEach(configurator -> configurator.accept(serverBuilder));
  
          final Server server = serverBuilder.build();
          server.addListener(rejectingListener);
  
          // Retrieve the ServiceConfig of the fake service.
          final ServiceConfig serviceCfg = findServiceConfig(server, path(), service);
  
          // Build a fake object related with path mapping.
          final PathMappingContext pathMappingCtx = DefaultPathMappingContext.of(
                  server.config().defaultVirtualHost(),
                  localAddress().getHostString(),
                  path(),
                  query(),
                  ((HttpRequest) request()).headers(),
                  null);
  
          final PathMappingResult pathMappingResult =
                  this.pathMappingResult != null ? this.pathMappingResult
                                                 : PathMappingResult.of(path(), query());
  
          // Build the context with the properties set by a user and the fake objects.
          if (isRequestStartTimeSet()) {
              return new DefaultServiceRequestContext(
                      serviceCfg, fakeChannel(), meterRegistry(), sessionProtocol(), pathMappingCtx,
                      pathMappingResult, request(), sslSession(), proxiedAddresses, clientAddress,
                      requestStartTimeNanos(), requestStartTimeMicros());
          } else {
              return new DefaultServiceRequestContext(
                      serviceCfg, fakeChannel(), meterRegistry(), sessionProtocol(), pathMappingCtx,
                      pathMappingResult, request(), sslSession(), proxiedAddresses, clientAddress);
          }
      }
docs: Returns a new {@link ServiceRequestContext} created with the properties of this builder.