private Client<HttpRequest, HttpResponse> newHttpClient(URI uri, Scheme scheme, ClientOptions options) { try { @SuppressWarnings("unchecked") final Client<HttpRequest, HttpResponse> client = delegate().newClient( new URI(Scheme.of(SerializationFormat.NONE, scheme.sessionProtocol()).uriText(), uri.getAuthority(), null, null, null), Client.class, options); return client; } catch (URISyntaxException e) { throw new Error(e); // Should never happen. } } }
private Scheme(SerializationFormat serializationFormat, SessionProtocol sessionProtocol) { this.serializationFormat = requireNonNull(serializationFormat, "serializationFormat"); this.sessionProtocol = requireNonNull(sessionProtocol, "sessionProtocol"); uriText = serializationFormat().uriText() + '+' + sessionProtocol().uriText(); }
} else { sessionProtocol = Scheme.tryParse(schemeStr) .orElseThrow(() -> new IllegalArgumentException("uri.scheme is not valid: " + uri)) .sessionProtocol();
@Override public String toString() { return uriText(); } }
@Override public Scheme scheme() { ensureAvailability(SCHEME); return Scheme.of(serializationFormat, sessionProtocol); }
private DefaultHttpClient newHttpClient(URI uri, Scheme scheme, Endpoint endpoint, ClientOptions options, Client<HttpRequest, HttpResponse> delegate) { return new DefaultHttpClient( new DefaultClientBuilderParams(this, uri, HttpClient.class, options), delegate, meterRegistry, scheme.sessionProtocol(), endpoint); }
private static HttpUrl convertToOkHttpUrl(HttpClient baseHttpClient, String basePath, String groupPrefix) { final URI uri = baseHttpClient.uri(); final SessionProtocol sessionProtocol = Scheme.tryParse(uri.getScheme()) .map(Scheme::sessionProtocol) .orElseGet(() -> SessionProtocol.of(uri.getScheme())); final String authority = uri.getAuthority(); final String protocol = sessionProtocol.isTls() ? "https" : "http"; final HttpUrl parsed; if (authority.startsWith("group:")) { parsed = HttpUrl.parse(protocol + "://" + authority.replace("group:", groupPrefix) + basePath); } else { parsed = HttpUrl.parse(protocol + "://" + authority + basePath); } assert parsed != null; return parsed; } }
/** * Makes sure the scheme of the specified {@link URI} is supported by this {@link ClientFactory}. * * @param uri the {@link URI} of the server endpoint * @return the parsed {@link Scheme} * * @throws IllegalArgumentException if the scheme of the specified {@link URI} is not supported by this * {@link ClientFactory} */ protected final Scheme validateScheme(URI uri) { requireNonNull(uri, "uri"); final String scheme = uri.getScheme(); if (scheme == null) { throw new IllegalArgumentException("URI with missing scheme: " + uri); } if (uri.getAuthority() == null) { throw new IllegalArgumentException("URI with missing authority: " + uri); } final Optional<Scheme> parsedSchemeOpt = Scheme.tryParse(scheme); if (!parsedSchemeOpt.isPresent()) { throw new IllegalArgumentException("URI with unknown scheme: " + uri); } final Scheme parsedScheme = parsedSchemeOpt.get(); final Set<Scheme> supportedSchemes = supportedSchemes(); if (!supportedSchemes.contains(parsedScheme)) { throw new IllegalArgumentException( "URI with unsupported scheme: " + uri + " (expected: " + supportedSchemes + ')'); } return parsedScheme; }
private Client<HttpRequest, HttpResponse> newHttpClient(URI uri, Scheme scheme, ClientOptions options) { try { @SuppressWarnings("unchecked") final Client<HttpRequest, HttpResponse> client = delegate().newClient( new URI(Scheme.of(SerializationFormat.NONE, scheme.sessionProtocol()).uriText(), uri.getRawAuthority(), null, null, null), Client.class, options); return client; } catch (URISyntaxException e) { throw new Error(e); // Should never happen. } }
@Override public <T> T newClient(URI uri, Class<T> clientType, ClientOptions options) { final Scheme scheme = validateScheme(uri); final SerializationFormat serializationFormat = scheme.serializationFormat(); final Class<?> stubClass = clientType.getEnclosingClass(); if (stubClass == null) { httpClient, meterRegistry(), scheme.sessionProtocol(), newEndpoint(uri), serializationFormat,
private static void exportScheme(Map<String, String> out, RequestContext ctx, RequestLog log) { if (log.isAvailable(RequestLogAvailability.SCHEME)) { out.put(SCHEME.mdcKey, log.scheme().uriText()); } else { out.put(SCHEME.mdcKey, "unknown+" + ctx.sessionProtocol().uriText()); } }
private Client<HttpRequest, HttpResponse> newHttpClient(URI uri, Scheme scheme, ClientOptions options) { try { @SuppressWarnings("unchecked") final Client<HttpRequest, HttpResponse> client = delegate().newClient( new URI(Scheme.of(SerializationFormat.NONE, scheme.sessionProtocol()).uriText(), uri.getAuthority(), null, null, null), Client.class, options); return client; } catch (URISyntaxException e) { throw new Error(e); // Should never happen. } } }
@Override public <T> T newClient(URI uri, Class<T> clientType, ClientOptions options) { final Scheme scheme = validateScheme(uri); final SerializationFormat serializationFormat = scheme.serializationFormat(); final T client = (T) new DefaultTHttpClient( new DefaultClientBuilderParams(this, uri, THttpClient.class, options), delegate, meterRegistry(), scheme.sessionProtocol(), newEndpoint(uri)); return client; } else { delegate, meterRegistry(), scheme.sessionProtocol(), newEndpoint(uri));
buf.append(scheme().uriText()); } else { buf.append(SerializationFormat.UNKNOWN.uriText())
private Client<HttpRequest, HttpResponse> newHttpClient(URI uri, Scheme scheme, ClientOptions options) { try { @SuppressWarnings("unchecked") final Client<HttpRequest, HttpResponse> client = delegate().newClient( new URI(Scheme.of(SerializationFormat.NONE, scheme.sessionProtocol()).uriText(), uri.getRawAuthority(), null, null, null), Client.class, options); return client; } catch (URISyntaxException e) { throw new Error(e); // Should never happen. } }
@Override public <T> T newClient(URI uri, Class<T> clientType, ClientOptions options) { final Scheme scheme = validateScheme(uri); final SerializationFormat serializationFormat = scheme.serializationFormat(); final Class<?> stubClass = clientType.getEnclosingClass(); if (stubClass == null) { httpClient, meterRegistry(), scheme.sessionProtocol(), newEndpoint(uri), serializationFormat,
span.tag("http.host", host); final StringBuilder uriBuilder = new StringBuilder() .append(log.scheme().uriText()) .append("://") .append(host)
private Client<HttpRequest, HttpResponse> newHttpClient(URI uri, Scheme scheme, ClientOptions options) { try { @SuppressWarnings("unchecked") final Client<HttpRequest, HttpResponse> client = delegate().newClient( new URI(Scheme.of(SerializationFormat.NONE, scheme.sessionProtocol()).uriText(), uri.getRawAuthority(), null, null, null), Client.class, options); return client; } catch (URISyntaxException e) { throw new Error(e); // Should never happen. } }
@Override public <T> T newClient(URI uri, Class<T> clientType, ClientOptions options) { final Scheme scheme = validateScheme(uri); final SerializationFormat serializationFormat = scheme.serializationFormat(); final T client = (T) new DefaultTHttpClient( new DefaultClientBuilderParams(this, uri, THttpClient.class, options), delegate, meterRegistry(), scheme.sessionProtocol(), newEndpoint(uri)); return client; } else { delegate, meterRegistry(), scheme.sessionProtocol(), newEndpoint(uri));