@Override public EurekaHttpResponse<Void> register(InstanceInfo info) { String urlPath = "apps/" + info.getAppName(); Response response = null; try { Builder resourceBuilder = jerseyClient.target(serviceUrl).path(urlPath).request(); addExtraProperties(resourceBuilder); addExtraHeaders(resourceBuilder); response = resourceBuilder .accept(MediaType.APPLICATION_JSON) .acceptEncoding("gzip") .post(Entity.json(info)); return anEurekaHttpResponse(response.getStatus()).headers(headersOf(response)).build(); } finally { if (logger.isDebugEnabled()) { logger.debug("Jersey2 HTTP POST {}/{} with instance {}; statusCode={}", serviceUrl, urlPath, info.getId(), response == null ? "N/A" : response.getStatus()); } if (response != null) { response.close(); } } }
private void doTestCompressedResponse( String encoding, Class<? extends InputStream> decompressingStreamClass) throws IOException { byte[] bytes = target("/item/allIDs").request().acceptEncoding(encoding).get(byte[].class); String content; try (Reader reader = new InputStreamReader( ClassUtils.loadInstanceOf(decompressingStreamClass.getName(), decompressingStreamClass, new Class<?>[] { InputStream.class }, new Object[] { new ByteArrayInputStream(bytes) }), StandardCharsets.UTF_8)) { content = CharStreams.toString(reader); } String expected = target("/item/allIDs").request().get(String.class); Assert.assertEquals(expected, content); }
private Response doGetRequest(String location, String auth, String query) { String url = String.format("%s?%s", location, query); Response r = this.client.target(url) .request() .header(HttpHeaders.AUTHORIZATION, auth) .accept(MediaType.APPLICATION_JSON) .acceptEncoding(CompressInterceptor.GZIP) .get(); if (r.getMediaType() != null) { // Append charset assert MediaType.APPLICATION_JSON_TYPE.equals(r.getMediaType()); r.getHeaders().putSingle(HttpHeaders.CONTENT_TYPE, r.getMediaType().withCharset(CHARSET)); } gremlinInputHistogram.update(query.length()); gremlinOutputHistogram.update(r.getLength()); return r; }
@Override public NodeInfo createNode(String parentNodeId, String name, String nodePseudoClass, String description, int version, NodeGenericMetadata genericMetadata) { Objects.requireNonNull(parentNodeId); Objects.requireNonNull(name); Objects.requireNonNull(nodePseudoClass); Objects.requireNonNull(description); Objects.requireNonNull(genericMetadata); // flush buffer to keep change order changeBuffer.flush(); LOGGER.debug("createNode(fileSystemName={}, parentNodeId={}, name={}, nodePseudoClass={}, description={}, version={}, genericMetadata={})", fileSystemName, parentNodeId, name, nodePseudoClass, description, version, genericMetadata); Response response = webTarget.path("fileSystems/{fileSystemName}/nodes/{nodeId}/children/{childName}") .resolveTemplate(FILE_SYSTEM_NAME, fileSystemName) .resolveTemplate(NODE_ID, parentNodeId) .resolveTemplate("childName", name) .queryParam("nodePseudoClass", nodePseudoClass) .queryParam("description", description) .queryParam(VERSION, version) .request(MediaType.APPLICATION_JSON) .header(HttpHeaders.AUTHORIZATION, token) .header(HttpHeaders.CONTENT_ENCODING, "gzip") .acceptEncoding("gzip") .post(Entity.json(genericMetadata)); try { return readEntityIfOk(response, NodeInfo.class); } finally { response.close(); } }
@Override public void addDependency(String nodeId, String name, String toNodeId) { Objects.requireNonNull(nodeId); Objects.requireNonNull(name); Objects.requireNonNull(toNodeId); // flush buffer to keep change order changeBuffer.flush(); LOGGER.debug("addDependency(fileSystemName={}, nodeId={}, name={}, toNodeId={})", fileSystemName, nodeId, name, toNodeId); Response response = webTarget.path("fileSystems/{fileSystemName}/nodes/{nodeId}/dependencies/{name}/{toNodeId}") .resolveTemplate(FILE_SYSTEM_NAME, fileSystemName) .resolveTemplate(NODE_ID, nodeId) .resolveTemplate("name", name) .resolveTemplate("toNodeId", toNodeId) .request() .header(HttpHeaders.AUTHORIZATION, token) .header(HttpHeaders.CONTENT_ENCODING, "gzip") .acceptEncoding("gzip") .put(Entity.text("")); try { checkOk(response); } finally { response.close(); } }
@Override public EurekaHttpResponse<Void> register(InstanceInfo info) { String urlPath = "apps/" + info.getAppName(); Response response = null; try { Builder resourceBuilder = jerseyClient.target(serviceUrl).path(urlPath).request(); addExtraProperties(resourceBuilder); addExtraHeaders(resourceBuilder); response = resourceBuilder .accept(MediaType.APPLICATION_JSON) .acceptEncoding("gzip") .post(Entity.json(info)); return anEurekaHttpResponse(response.getStatus()).headers(headersOf(response)).build(); } finally { if (logger.isDebugEnabled()) { logger.debug("Jersey2 HTTP POST {}/{} with instance {}; statusCode={}", serviceUrl, urlPath, info.getId(), response == null ? "N/A" : response.getStatus()); } if (response != null) { response.close(); } } }
@Override public void setParentNode(String nodeId, String newParentNodeId) { Objects.requireNonNull(nodeId); Objects.requireNonNull(newParentNodeId); // flush buffer to keep change order changeBuffer.flush(); LOGGER.debug("setParentNode(fileSystemName={}, nodeId={}, newParentNodeId={})", fileSystemName, nodeId, newParentNodeId); Response response = webTarget.path("fileSystems/{fileSystemName}/nodes/{nodeId}/parent") .resolveTemplate(FILE_SYSTEM_NAME, fileSystemName) .resolveTemplate(NODE_ID, nodeId) .request() .header(HttpHeaders.AUTHORIZATION, token) .header(HttpHeaders.CONTENT_ENCODING, "gzip") .acceptEncoding("gzip") .put(Entity.text(newParentNodeId)); try { checkOk(response); } finally { response.close(); } }
@Override public void setDescription(String nodeId, String description) { Objects.requireNonNull(nodeId); Objects.requireNonNull(description); // flush buffer to keep change order changeBuffer.flush(); LOGGER.debug("setDescription(fileSystemName={}, nodeId={}, description={})", fileSystemName, nodeId, description); Response response = webTarget.path("fileSystems/{fileSystemName}/nodes/{nodeId}/description") .resolveTemplate(FILE_SYSTEM_NAME, fileSystemName) .resolveTemplate(NODE_ID, nodeId) .request() .header(HttpHeaders.AUTHORIZATION, token) .header(HttpHeaders.CONTENT_ENCODING, "gzip") .acceptEncoding("gzip") .put(Entity.text(description)); try { checkOk(response); } finally { response.close(); } }
/** * Open the request to the web target and returns an InputStreamReader for the message body * * @param target the web target to access * @return the reader for the message body */ @SneakyThrows(IOException.class) private InputStreamReader $(WebTarget target) { Response response = target.request().accept(MediaType.APPLICATION_JSON_TYPE).acceptEncoding("gzip").get(); if (response.getStatus() != 200) { throw new RequestException(response.getStatus(), RequestException.ErrorType.getByCode(response.getStatus())); } String encoding = response.getHeaderString("Content-Encoding"); if (encoding != null && encoding.equals("gzip")) { return new InputStreamReader(new GZIPInputStream((java.io.InputStream) response.getEntity())); } else { return new InputStreamReader((java.io.InputStream) response.getEntity()); } }
public RemoteAppStorage(String fileSystemName, URI baseUri, String token) { this.fileSystemName = Objects.requireNonNull(fileSystemName); this.token = token; client = createClient(); webTarget = getWebTarget(client, baseUri) .register(WriterInterceptorGzipCli.class) .register(ReaderInterceptorGzip.class); changeBuffer = new StorageChangeBuffer(changeSet -> { LOGGER.debug("flush(fileSystemName={}, size={})", fileSystemName, changeSet.getChanges().size()); Response response = webTarget.path("fileSystems/{fileSystemName}/flush") .resolveTemplate(FILE_SYSTEM_NAME, fileSystemName) .request() .header(HttpHeaders.AUTHORIZATION, token) .header(HttpHeaders.CONTENT_ENCODING, "gzip") .acceptEncoding("gzip") .post(Entity.json(changeSet)); try { checkOk(response); } finally { response.close(); } }, BUFFER_MAXIMUM_CHANGE, BUFFER_MAXIMUM_SIZE); }
@Override public void renameNode(String nodeId, String name) { Objects.requireNonNull(nodeId); Objects.requireNonNull(name); // flush buffer to keep change order changeBuffer.flush(); LOGGER.debug("renameNode(fileSystemName={}, nodeId={}, name={})", fileSystemName, nodeId, name); Response response = webTarget.path("fileSystems/{fileSystemName}/nodes/{nodeId}/name") .resolveTemplate(FILE_SYSTEM_NAME, fileSystemName) .resolveTemplate(NODE_ID, nodeId) .request() .header(HttpHeaders.AUTHORIZATION, token) .header(HttpHeaders.CONTENT_ENCODING, "gzip") .acceptEncoding("gzip") .put(Entity.text(name)); try { checkOk(response); } finally { response.close(); } }
@Override public OutputStream writeBinaryData(String nodeId, String name) { Objects.requireNonNull(nodeId); Objects.requireNonNull(name); // flush buffer to keep change order changeBuffer.flush(); LOGGER.debug("writeBinaryData(fileSystemName={}, nodeId={}, name={})", fileSystemName, nodeId, name); AsyncInvoker asyncInvoker = webTarget.path(NODE_DATA_PATH) .resolveTemplate(FILE_SYSTEM_NAME, fileSystemName) .resolveTemplate(NODE_ID, nodeId) .resolveTemplate("name", name) .request() .header(HttpHeaders.AUTHORIZATION, token) .header(HttpHeaders.CONTENT_ENCODING, "gzip") .acceptEncoding("gzip") .async(); return new OutputStreamPutRequest(asyncInvoker); }
@Override public void updateModificationTime(String nodeId) { Objects.requireNonNull(nodeId); // flush buffer to keep change order changeBuffer.flush(); LOGGER.debug("updateModificationTime(fileSystemName={}, nodeId={})", fileSystemName, nodeId); Response response = webTarget.path("fileSystems/{fileSystemName}/nodes/{nodeId}/modificationTime") .resolveTemplate(FILE_SYSTEM_NAME, fileSystemName) .resolveTemplate(NODE_ID, nodeId) .request() .header(HttpHeaders.AUTHORIZATION, token) .header(HttpHeaders.CONTENT_ENCODING, "gzip") .acceptEncoding("gzip") .put(Entity.text("")); try { checkOk(response); } finally { response.close(); } }
@Override public RxBuilder acceptEncoding(String... encodings) { return new RxBuilder(builder.acceptEncoding(encodings)); }
public Builder acceptEncoding(String... encodings) { return getOrCreateDelegate(delegate.acceptEncoding(encodings)); }
@Override public ForwardingInvocationBuilder acceptEncoding(String... encodings) { delegate().acceptEncoding(encodings); return this; }
@Override public CompletableBuilder acceptEncoding(String... encodings) { return new CompletableBuilder(builder.acceptEncoding(encodings)); }
private Response doPostRequest(String location, String auth, String req) { Entity<?> body = Entity.entity(req, MediaType.APPLICATION_JSON); Response r = this.client.target(location) .request() .header(HttpHeaders.AUTHORIZATION, auth) .accept(MediaType.APPLICATION_JSON) .acceptEncoding(CompressInterceptor.GZIP) .post(body); if (r.getMediaType() != null) { // Append charset assert MediaType.APPLICATION_JSON_TYPE.equals(r.getMediaType()); r.getHeaders().putSingle(HttpHeaders.CONTENT_TYPE, r.getMediaType().withCharset(CHARSET)); } gremlinInputHistogram.update(req.length()); gremlinOutputHistogram.update(r.getLength()); return r; }
public void addHeadersToRequest(JaxRsHttpRequest theHttpRequest, EncodingEnum theEncoding, FhirContext theContext) { if (myHeaders != null) { for (Header next : myHeaders) { theHttpRequest.addHeader(next.getName(), next.getValue()); } } theHttpRequest.addHeader("User-Agent", HttpClientUtil.createUserAgentString(theContext, "jax-rs")); theHttpRequest.addHeader("Accept-Charset", "utf-8"); Builder request = theHttpRequest.getRequest(); request.acceptEncoding("gzip"); MethodUtil.addAcceptHeaderToRequest(theEncoding, theHttpRequest, theContext); }