/** * Sets the given header on the give service instance. * * @param <T> any service class * @param service service class instance * @param key HTTP header key * @param values HTTP header values * @return given service instance, with given header set */ public <T> T header(final T service, final String key, final Object... values) { WebClient.client(service).header(key, values); return service; }
@SuppressWarnings("unchecked") private <T> T getCachedService(final Class<T> serviceClass) { T service; if (services.containsKey(serviceClass)) { service = (T) services.get(serviceClass); } else { service = client.getService(serviceClass); services.put(serviceClass, service); } WebClient.client(service).type(MediaType.APPLICATION_JSON).accept(MediaType.APPLICATION_JSON); return service; }
/** * Fetches {@code ETag} header value from latest service run (if available). * * @param <T> any service class * @param service service class instance * @return {@code ETag} header value from latest service run (if available) */ public <T> EntityTag getLatestEntityTag(final T service) { return WebClient.client(service).getResponse().getEntityTag(); }
private void loadCookies(Exchange exchange, Client client, CookieHandler cookieHandler) throws IOException { if (cookieHandler != null) { for (Map.Entry<String, List<String>> cookie : cookieHandler.loadCookies(exchange, client.getCurrentURI()).entrySet()) { if (cookie.getValue().size() > 0) { client.header(cookie.getKey(), cookie.getValue()); } } } }
/** * Creates a proxy, baseURI will be set to Client currentURI * @param client Client instance * @param cls proxy class, if not interface then a CGLIB proxy will be created * @param inheritHeaders if true then existing Client headers will be inherited by new proxy * and subresource proxies if any * @return typed proxy */ public static <T> T fromClient(Client client, Class<T> cls, boolean inheritHeaders) { JAXRSClientFactoryBean bean = getBean(client.getCurrentURI().toString(), cls, null); bean.setInheritHeaders(inheritHeaders); ClientState clientState = WebClient.getClientState(client); T proxy = null; if (clientState == null) { proxy = bean.create(cls); if (inheritHeaders) { WebClient.client(proxy).headers(client.getHeaders()); } } else { MultivaluedMap<String, String> headers = inheritHeaders ? client.getHeaders() : null; bean.setInitialState(clientState.newState(client.getCurrentURI(), headers, null)); proxy = bean.create(cls); } WebClient.copyProperties(WebClient.client(proxy), client); return proxy; }
public Map<String, String> deassociate( final ResourceDeassociationAction action, final String etag, final String key, final List<StatusBean> statuses) { Map<String, String> result = new LinkedHashMap<>(); synchronized (this) { AnyService<?> service = getService(etag, getAnyServiceClass()); Client client = WebClient.client(service); List<String> accept = client.getHeaders().get(HttpHeaders.ACCEPT); if (!accept.contains(RESTHeaders.MULTIPART_MIXED)) { client.accept(RESTHeaders.MULTIPART_MIXED); } ResourceDR resourceDR = new ResourceDR.Builder().key(key). action(action). resources(StatusUtils.statusR(statuses).build().getResources()).build(); try { List<BatchResponseItem> items = parseBatchResponse(service.deassociate(resourceDR)); for (int i = 0; i < items.size(); i++) { result.put( resourceDR.getResources().get(i), getStatus(items.get(i).getStatus())); } } catch (IOException e) { LOG.error("While processing Batch response", e); } resetClient(getAnyServiceClass()); } return result; }
private void invoke(int ind) throws Exception { String actualHeaderName = bookHeader + ind; String actualBookName = bookName + ind; if (stateCanBeChanged) { Client c = WebClient.client(proxy); MultivaluedMap<String, String> map = c.getHeaders(); map.putSingle("CustomHeader", actualHeaderName); c.headers(map); proxy.echoBookNameAndHeader2(actualBookName); verifyResponse(c.getResponse(), actualBookName, actualHeaderName); } else { verifyResponse(proxy.echoBookNameAndHeader(actualHeaderName, actualBookName), actualBookName, actualHeaderName); } }
/** * Creates WebClient, baseURI will be set to Client currentURI * @param client existing client * @param inheritHeaders if existing Client headers can be inherited by new client */ public static WebClient fromClient(Client client, boolean inheritHeaders) { WebClient webClient = null; ClientState clientState = getClientState(client); if (clientState == null) { webClient = create(client.getCurrentURI()); if (inheritHeaders) { webClient.headers(client.getHeaders()); } } else { MultivaluedMap<String, String> headers = inheritHeaders ? client.getHeaders() : null; webClient = new WebClient(clientState.newState(client.getCurrentURI(), headers, null)); } copyProperties(webClient, client); return webClient; }
private void doTestSubresource(BookStoreJaxrsJaxws proxy) throws Exception { BookSubresource bs = proxy.getBookSubresource("378"); Book b = bs.getTheBook2("CXF ", "in ", "Acti", "on ", "- 3", "7", "8"); assertEquals(378, b.getId()); assertEquals("CXF in Action - 378", b.getName()); WebClient.client(bs).reset().header("N4", "- 4"); b = bs.getTheBook2("CXF ", "in ", "Acti", "on ", null, "7", "8"); assertEquals(378, b.getId()); assertEquals("CXF in Action - 478", b.getName()); }
@PostConstruct public void verifyWebClient() { if (!ignoreJaxrsClient) { if (webClient == null) { throw new RuntimeException(); } WebClient.client(webClient).accept("application/xml"); } }
private void saveCookies(Exchange exchange, Client client, CookieHandler cookieHandler) { if (cookieHandler != null) { CookieStore cookieStore = cookieHandler.getCookieStore(exchange); for (NewCookie newCookie: client.getResponse().getCookies().values()) { HttpCookie cookie = new HttpCookie(newCookie.getName(), newCookie.getValue()); cookie.setComment(newCookie.getComment()); cookie.setDomain(newCookie.getDomain()); cookie.setHttpOnly(newCookie.isHttpOnly()); cookie.setMaxAge(newCookie.getMaxAge()); cookie.setPath(newCookie.getPath()); cookie.setSecure(newCookie.isSecure()); cookie.setVersion(newCookie.getVersion()); cookieStore.add(client.getCurrentURI(), cookie); } } }
protected String getCurrentEndpointAddress(Object client) { String currentBaseURI = WebClient.client(client).getBaseURI().toString(); String currentURI = WebClient.client(client).getCurrentURI().toString(); assertTrue(currentURI.startsWith(currentBaseURI)); return currentBaseURI; }
/** * Sets the {@code If-Match} or {@code If-None-Match} header on the given service instance. * * @param <T> any service class * @param service service class instance * @param etag ETag value * @param ifNot if true then {@code If-None-Match} is set, {@code If-Match} otherwise * @return given service instance, with {@code If-Match} or {@code If-None-Match} set */ private <T> T match(final T service, final EntityTag etag, final boolean ifNot) { WebClient.client(service).match(etag, ifNot); return service; }
protected void setupClientHeaders(Client client, Exchange exchange) throws Exception { Message inMessage = exchange.getIn(); CxfRsEndpoint cxfRsEndpoint = (CxfRsEndpoint) getEndpoint(); CxfRsBinding binding = cxfRsEndpoint.getBinding(); // set headers client.headers(binding.bindCamelHeadersToRequestHeaders(inMessage.getHeaders(), exchange)); }
/** * Creates a proxy, baseURI will be set to Client currentURI * @param client Client instance * @param cls proxy class, if not interface then a CGLIB proxy will be created * @param inheritHeaders if true then existing Client headers will be inherited by new proxy * and subresource proxies if any * @return typed proxy */ public static <T> T fromClient(Client client, Class<T> cls, boolean inheritHeaders) { JAXRSClientFactoryBean bean = getBean(client.getCurrentURI().toString(), cls, null); bean.setInheritHeaders(inheritHeaders); ClientState clientState = WebClient.getClientState(client); T proxy = null; if (clientState == null) { proxy = bean.create(cls); if (inheritHeaders) { WebClient.client(proxy).headers(client.getHeaders()); } } else { MultivaluedMap<String, String> headers = inheritHeaders ? client.getHeaders() : null; bean.setInitialState(clientState.newState(client.getCurrentURI(), headers, null)); proxy = bean.create(cls); } WebClient.copyProperties(WebClient.client(proxy), client); return proxy; }
AnyService<?> service = getService(etag, getAnyServiceClass()); Client client = WebClient.client(service); List<String> accept = client.getHeaders().get(HttpHeaders.ACCEPT); if (!accept.contains(RESTHeaders.MULTIPART_MIXED)) { client.accept(RESTHeaders.MULTIPART_MIXED);
/** * Creates WebClient, baseURI will be set to Client currentURI * @param client existing client * @param inheritHeaders if existing Client headers can be inherited by new client */ public static WebClient fromClient(Client client, boolean inheritHeaders) { WebClient webClient = null; ClientState clientState = getClientState(client); if (clientState == null) { webClient = create(client.getCurrentURI()); if (inheritHeaders) { webClient.headers(client.getHeaders()); } } else { MultivaluedMap<String, String> headers = inheritHeaders ? client.getHeaders() : null; webClient = new WebClient(clientState.newState(client.getCurrentURI(), headers, null)); } copyProperties(webClient, client); return webClient; }