private boolean hasRequestContextTimeout(RequestContext requestContext) { Object requestTimeout = requestContext.getLocalAttr(R2Constants.REQUEST_TIMEOUT); return (requestTimeout instanceof Number) && (((Number)requestTimeout).intValue() > 0); }
private <T> RequestContext createRequestContext(Request<T> request) { RequestContext requestContext = new RequestContext(); requestContext.putLocalAttr("method", request.getMethod()); return requestContext; }
public void setLocalAttr(final String name, final String value) { this.requestContext.putLocalAttr(name, value); }
public MockResourceContext() { this.requestHeaders = new HashMap<>(); this.requestContext = new RequestContext(); }
/** * Looks for all timing records in the RequestContext, initiate one if not present. * @param context RequestContext for the request * @return URI for target service hint, or null if no hint is present in the RequestContext */ @SuppressWarnings("unchecked") public static Map<TimingKey, TimingContext> getTimingsMap(RequestContext context) { Map<TimingKey, TimingContext> timings = (Map<TimingKey, TimingContext>)context.getLocalAttr(TIMINGS_KEY_NAME); if (timings == null) { timings = new ConcurrentHashMap<>(); context.putLocalAttr(TIMINGS_KEY_NAME, timings); } return timings; }
Number perRequestTimeout = ((Number) requestContext.getLocalAttr(R2Constants.REQUEST_TIMEOUT)); requestContext.putLocalAttr(R2Constants.CLIENT_REQUEST_TIMEOUT_VIEW, defaultRequestTimeout); return callback; Boolean requestTimeoutIgnoreIfHigher = ((Boolean) requestContext.getLocalAttr(R2Constants.REQUEST_TIMEOUT_IGNORE_IF_HIGHER_THAN_DEFAULT)); if (requestTimeoutIgnoreIfHigher != null && requestTimeoutIgnoreIfHigher) requestContext.putLocalAttr(R2Constants.CLIENT_REQUEST_TIMEOUT_VIEW, defaultRequestTimeout); requestContext.removeLocalAttr(R2Constants.REQUEST_TIMEOUT); requestContext.removeLocalAttr(R2Constants.REQUEST_TIMEOUT); requestContext.putLocalAttr(R2Constants.CLIENT_REQUEST_TIMEOUT_VIEW, perRequestTimeout);
public DecoratedCallback(R request, RequestContext requestContext, DecoratorClient<R, T> client, Callback<T> callback, TrackingBackupRequestsStrategy strategy, long delayNano, ScheduledExecutorService executorService, long startNano, String serviceName, String operation) { _startNano = startNano; _request = request; _requestContext = requestContext; _backupRequestContext = requestContext.clone(); _backupRequestContext.putLocalAttr(BACKUP_REQUEST_ATTRIBUTE_NAME, delayNano); _client = client; _callback = callback; _strategy = strategy; _serviceName = serviceName; _operation = operation; executorService.schedule(this::maybeSendBackupRequest, delayNano, TimeUnit.NANOSECONDS); }
private <T> ScatterGatherStrategy getScatterGatherStrategy(final RequestContext requestContext) { return requestContext.getLocalAttr(SCATTER_GATHER_STRATEGY) != null ? (ScatterGatherStrategy)requestContext.removeLocalAttr(SCATTER_GATHER_STRATEGY) : _restLiClientConfig.getScatterGatherStrategy(); }
private RequestContext updateRequestContextTarget(RequestContext requestContext, URI targetHost) { // we cannot update the give request context since that will be shared by scattered request. RequestContext context = requestContext.clone(); KeyMapper.TargetHostHints.setRequestContextTargetHost(context, targetHost); return context; }
/** * Clear the excluded hosts hint from RequestContext. * @param context RequestContest from which the hint to be removed */ public static void clearRequestContextExcludedHosts(RequestContext context) { context.removeLocalAttr(EXCLUDED_HOST_KEY_NAME); } }
if (taskNeedTimeout) { requestContext.putLocalAttr(R2Constants.REQUEST_TIMEOUT, timeout.getValue().intValue()); requestContext.putLocalAttr(R2Constants.REQUEST_TIMEOUT_IGNORE_IF_HIGHER_THAN_DEFAULT, true);
/** * Creates new ParSeqRestClient with default configuration. * * @deprecated Please use {@link ParSeqRestliClientBuilder} to create instances. */ @Deprecated public ParSeqRestClient(final Client client) { ArgumentUtil.requireNotNull(client, "client"); _client = client; _requestConfigProvider = RequestConfigProvider.build(new ParSeqRestliClientConfigBuilder().build(), () -> Optional.empty()); _requestContextProvider = request -> new RequestContext(); _d2RequestTimeoutEnabled = false; }
if (requestContext.getLocalAttr(DisruptContext.DISRUPT_SOURCE_KEY) != null) requestContext.putLocalAttr(DisruptContext.DISRUPT_SOURCE_KEY, controller.getClass().getCanonicalName()); if (disruptContext != null) requestContext.putLocalAttr(DisruptContext.DISRUPT_CONTEXT_KEY, disruptContext);
for (URI targetHost : uriResult.getAllHosts()) RequestContext context = requestContext.clone(); KeyMapper.TargetHostHints.setRequestContextTargetHost(context, targetHost); queryAllRequestContext.add(context);
private void saveResponse(RestResponse res, RequestContext requestContext) { final RestRequest req = (RestRequest) requestContext.removeLocalAttr(REQ_ATTR); if (req != null) { _log.debug("Saving response for request: " + req.getURI()); try { _db.record(req, res); } catch (IOException e) { _log.debug("Failed to save request", e); } } } }
private <T> RequestContext createRequestContext(Request<T> request) { RequestContext requestContext = new RequestContext(); requestContext.putLocalAttr("method", request.getMethod()); return requestContext; }
private void verifyRequestContextTimeout(Request<?> request, int timeout, Boolean ignoreIfHigher) { assertTrue(_capturingRestClient.getCapturedRequestContexts().containsKey(request)); RequestContext context = _capturingRestClient.getCapturedRequestContexts().get(request); Number contextTimeout = (Number)context.getLocalAttr(R2Constants.REQUEST_TIMEOUT); assertNotNull(contextTimeout); assertEquals(contextTimeout.intValue(), timeout); if (ignoreIfHigher == null) { assertNull(context.getLocalAttr(R2Constants.REQUEST_TIMEOUT_IGNORE_IF_HIGHER_THAN_DEFAULT)); } else { assertEquals(context.getLocalAttr(R2Constants.REQUEST_TIMEOUT_IGNORE_IF_HIGHER_THAN_DEFAULT), ignoreIfHigher); } } }
requestContext.putLocalAttr(HttpConstants.ACCEPT_ENCODING, responseAcceptedEncodings); requestContext.putLocalAttr(HttpConstants.HEADER_RESPONSE_COMPRESSION_THRESHOLD, _serverCompressionHelper.getResponseCompressionThreshold(req));
request -> new RequestContext() : _requestContextProvider;
final RequestContext context = requestContext.clone(); KeyMapper.TargetHostHints.setRequestContextTargetHost(context, batch.getKey());