@Override public JerseyInvocation.Builder invocation(final Link link) { checkNotClosed(); checkNotNull(link, LocalizationMessages.CLIENT_INVOCATION_LINK_NULL()); final JerseyWebTarget t = new JerseyWebTarget(link, this); final String acceptType = link.getType(); return (acceptType != null) ? t.request(acceptType) : t.request(); }
@Override public JerseyWebTarget matrixParam(String name, Object... values) throws NullPointerException { checkNotClosed(); Preconditions.checkNotNull(name, "Matrix parameter name must not be 'null'."); if (values == null || values.length == 0 || (values.length == 1 && values[0] == null)) { return new JerseyWebTarget(getUriBuilder().replaceMatrixParam(name, (Object[]) null), this); } checkForNullValues(name, values); return new JerseyWebTarget(getUriBuilder().matrixParam(name, values), this); }
@Override public JerseyWebTarget resolveTemplates(Map<String, Object> templateValues, boolean encodeSlashInPath) throws NullPointerException { checkNotClosed(); checkTemplateValues(templateValues); if (templateValues.isEmpty()) { return this; } else { return new JerseyWebTarget(getUriBuilder().resolveTemplates(templateValues, encodeSlashInPath), this); } }
@Override public JerseyWebTarget queryParam(String name, Object... values) throws NullPointerException { checkNotClosed(); return new JerseyWebTarget(JerseyWebTarget.setQueryParam(getUriBuilder(), name, values), this); }
@Override public JerseyWebTarget path(String path) throws NullPointerException { checkNotClosed(); Preconditions.checkNotNull(path, "path is 'null'."); return new JerseyWebTarget(getUriBuilder().path(path), this); }
@Override public JerseyInvocation.Builder request() { checkNotClosed(); return new JerseyInvocation.Builder(getUri(), config.snapshot()); }
MockitoAnnotations.initMocks(this); Mockito.when(target.queryParam(Matchers.anyString(), Matchers.anyString())) .thenReturn(target); Mockito.when(target.queryParam(Matchers.anyString(), Matchers.anyString())) .thenReturn(target); Mockito.when(target.queryParam(Matchers.anyString(), Matchers.anyString())) .thenReturn(target); Mockito.when(target.queryParam(Matchers.anyString(), Matchers.anyString())) .thenReturn(target); Mockito.when(target.request(MediaType.APPLICATION_JSON_TYPE)).thenReturn( requestBuilder);
@Override public JerseyWebTarget register(Object provider) { checkNotClosed(); config.register(provider); return this; }
private static UriBuilder setQueryParam(UriBuilder uriBuilder, String name, Object[] values) { if (values == null || values.length == 0 || (values.length == 1 && values[0] == null)) { return uriBuilder.replaceQueryParam(name, (Object[]) null); } checkForNullValues(name, values); return uriBuilder.queryParam(name, values); }
@Override public JerseyWebTarget resolveTemplate(String name, Object value) throws NullPointerException { return resolveTemplate(name, value, true); }
@Override public JerseyWebTarget resolveTemplates(Map<String, Object> templateValues) throws NullPointerException { return resolveTemplates(templateValues, true); }
public <RootResponse> Response<RootResponse> create(@NonNull String url, @NonNull Class<RootResponse> clazz, ClientConfiguration clientConfigurationOrNull) { Optional<ClientConfiguration> clientConfiguration = Optional.ofNullable(clientConfigurationOrNull); JerseyClient newClient = jerseyClientBuilder.register(SseFeature.class).withConfig(clientConfig).build(); newClient.register(LastEventIdHeaderFilter.class); if (clientConfigurationOrNull != null && !Strings.isNullOrEmpty(clientConfigurationOrNull.getAuthorization())) { newClient.register(new AuthHeaderFilter(clientConfigurationOrNull.getAuthorization())); } MediaType mediaType = clientConfiguration.map(c -> c.getMediaType()).orElse(MediaType.APPLICATION_JSON_TYPE); ResponseBuilder responseBuilder = new ResponseBuilder(newClient, objectMapper, mediaType); JerseyWebTarget webTarget = newClient.target(url); Builder requestBuilder = webTarget.request(mediaType); String readEntity = requestBuilder.get().readEntity(String.class); return responseBuilder.buildResponse(readEntity, clazz, URI.create(url)).get(); }
@Override public JerseyWebTarget target(final String uri) { checkNotClosed(); checkNotNull(uri, LocalizationMessages.CLIENT_URI_TEMPLATE_NULL()); return new JerseyWebTarget(uri, this); }
@Override public JerseyWebTarget queryParam(String name, Object... values) throws NullPointerException { checkNotClosed(); return new JerseyWebTarget(JerseyWebTarget.setQueryParam(getUriBuilder(), name, values), this); }
@Override public JerseyInvocation.Builder request() { checkNotClosed(); return new JerseyInvocation.Builder(getUri(), config.snapshot()); }
@Override public JerseyWebTarget path(String path) throws NullPointerException { checkNotClosed(); Preconditions.checkNotNull(path, "path is 'null'."); return new JerseyWebTarget(getUriBuilder().path(path), this); }
protected <T> T invoke(String url, String method, TypeReference<T> returnType, MultivaluedMap<String, String> formParams, Map<String, String> queryParams) throws IOException { url = url.replace("{repoOwner}", repoOwner).replace("{repoName}", repoName); ClientConfig configuration = new ClientConfig(); JerseyClient client = JerseyClientBuilder.createClient(configuration); client.register(auth); JerseyWebTarget target = client.target(url); if (queryParams != null) { for (String key : queryParams.keySet()) { target = target.queryParam(key, queryParams.get(key)); } } Response response = target.request("application/json").build(method, formParams != null ? Entity.form(formParams) : null).invoke(); //System.out.println("Status: " + response.getStatus()); String result = response.readEntity(String.class); //System.out.println("Result (string): " + result); ObjectMapper objectMapper = new ObjectMapper(); objectMapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES); return objectMapper.readValue(result, returnType); } }
@Override public JerseyWebTarget register(Class<?> providerClass, Map<Class<?>, Integer> contracts) { checkNotClosed(); config.register(providerClass, contracts); return this; }
private static UriBuilder setQueryParam(UriBuilder uriBuilder, String name, Object[] values) { if (values == null || values.length == 0 || (values.length == 1 && values[0] == null)) { return uriBuilder.replaceQueryParam(name, (Object[]) null); } checkForNullValues(name, values); return uriBuilder.queryParam(name, values); }
@Override public JerseyWebTarget resolveTemplate(String name, Object value) throws NullPointerException { return resolveTemplate(name, value, true); }