@Override
	public EurekaHttpClient newClient(EurekaEndpoint endpoint) {
		// we want a copy to modify. Don't change the original
		final RestClient.Builder builder = builderSupplier.get().clone();

		ClientHttpRequestFactory requestFactory = this.eurekaClientHttpRequestFactorySupplier
			.get(this.sslContext.orElse(null), this.hostnameVerifier.orElse(null));

		builder.requestFactory(requestFactory);
		setUrl(builder, endpoint.getServiceUrl());
		builder.messageConverters(converters -> converters.add(0, mappingJacksonHttpMessageConverter()));

		builder.defaultStatusHandler(HttpStatusCode::isError, (req, res) -> {
		});

		builder.requestInterceptor((request, body, execution) -> {
			final ClientHttpResponse response = execution.execute(request, body);
			if (!response.getStatusCode().equals(HttpStatus.NOT_FOUND)) {
				return response;
			}
			return new NotFoundHttpResponse(response);
		});

		return new RestClientEurekaHttpClient(builder.build());
	}
Provides the custom {@link RestClient} required by the
{@link RestClientEurekaHttpClient}. Relies on Jackson for serialization and
deserialization.

@author Wonchul Heo
@author Olga Maciaszek-Sharma
@since 4.2.0
spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/http/RestClientTransportClientFactory.java