@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; }
@Override protected void doGet(final HttpServletRequest request, final HttpServletResponse response) throws ServletException, IOException { SyncopeClient anonymous = (SyncopeClient) request.getServletContext(). getAttribute(Constants.SYNCOPE_ANONYMOUS_CLIENT); SAML2SPService service = anonymous.getService(SAML2SPService.class); WebClient.client(service).accept(MediaType.APPLICATION_XML_TYPE).type(MediaType.APPLICATION_XML_TYPE); try { Response metadataResponse = service.getMetadata( StringUtils.substringBefore(request.getRequestURL().toString(), "/saml2sp"), "saml2sp"); response.setContentType(metadataResponse.getMediaType().toString()); IOUtils.copy((InputStream) metadataResponse.getEntity(), response.getOutputStream()); ((InputStream) metadataResponse.getEntity()).close(); } catch (Exception e) { throw new ServletException(e.getMessage()); } } }
public <T> T getService(final Class<T> serviceClass) { bcfb.setServiceClass(serviceClass); T serviceInstance = bcfb.create(serviceClass); Client client = WebClient.client(serviceInstance); client.type(mediaType).accept(mediaType); return serviceInstance; }
public <T> T getService(final Class<T> serviceClass) { bcfb.setServiceClass(serviceClass); T serviceInstance = bcfb.create(serviceClass); Client client = WebClient.client(serviceInstance); client.type(mediaType).accept(mediaType); return serviceInstance; }
public <T> T getService(final String etag, final Class<T> serviceClass) { T serviceInstance = getService(serviceClass); WebClient.client(serviceInstance).match(new EntityTag(etag), false). type(MediaType.APPLICATION_JSON).accept(MediaType.APPLICATION_JSON); return serviceInstance; }
AbstractWordpressServiceAdapter(final String wordpressUrl, final String apiVersion) { checkNotNull(emptyToNull(apiVersion)); this.apiVersion = apiVersion; // @formatter:off this.spi = JAXRSClientFactory.create(wordpressUrl, this.getSpiType(), Collections.singletonList(new JacksonJsonProvider())); // @formatter:on WebClient.client(spi).type(MediaType.APPLICATION_JSON_TYPE); WebClient.client(spi).accept(MediaType.APPLICATION_JSON_TYPE); // TODO: leave this kind of configuration to API clients WebClient.getConfig(spi).getHttpConduit().getClient().setAutoRedirect(true); /* * TODO: aggregate a configuration object to customize the JAXRS behavior, eg.: adding handlers or interceptors */ WebClient.getConfig(spi).getInInterceptors().add(new LoggingInInterceptor()); WebClient.getConfig(spi).getOutInterceptors().add(new LoggingOutInterceptor()); LOGGER.info("******* {} API initialized *********", spi.getClass().getSimpleName()); }
public <T> T getService(final String etag, final Class<T> serviceClass) { T serviceInstance = getService(serviceClass); WebClient.client(serviceInstance).match(new EntityTag(etag), false). type(MediaType.APPLICATION_JSON).accept(MediaType.APPLICATION_JSON); return serviceInstance; }
/** * Generic factory method for create new rest resource for the rest client. * * @param <T> * the generic type * @param resourceClass * the resource class * @return the t */ protected <T> T newResource(final Class<T> resourceClass) { final T resource = JAXRSClientFactory.create(getBaseUrl(), resourceClass, getProviders()); WebClient.client(resource).accept(MediaType.APPLICATION_JSON); WebClient.client(resource).type(MediaType.APPLICATION_JSON); return resource; }
/** * Creates an instance of the given service class, with configured content type and authentication. * * @param <T> any service class * @param serviceClass service class reference * @return service instance of the given reference class */ public <T> T getService(final Class<T> serviceClass) { synchronized (restClientFactory) { restClientFactory.setServiceClass(serviceClass); T serviceInstance = restClientFactory.create(serviceClass); Client client = WebClient.client(serviceInstance); client.type(mediaType).accept(mediaType); if (serviceInstance instanceof AnyService || serviceInstance instanceof ExecutableService) { client.accept(RESTHeaders.MULTIPART_MIXED); } ClientConfiguration config = WebClient.getConfig(client); config.getRequestContext().put(HEADER_SPLIT_PROPERTY, true); config.getRequestContext().put(URLConnectionHTTPConduit.HTTPURL_CONNECTION_METHOD_REFLECTION, true); if (useCompression) { config.getInInterceptors().add(new GZIPInInterceptor()); config.getOutInterceptors().add(new GZIPOutInterceptor()); } if (tlsClientParameters != null) { HTTPConduit httpConduit = (HTTPConduit) config.getConduit(); httpConduit.setTlsClientParameters(tlsClientParameters); } return serviceInstance; } }
/** * Creates an instance of the given service class, with configured content type and authentication. * * @param <T> any service class * @param serviceClass service class reference * @return service instance of the given reference class */ public <T> T getService(final Class<T> serviceClass) { synchronized (restClientFactory) { restClientFactory.setServiceClass(serviceClass); T serviceInstance = restClientFactory.create(serviceClass); Client client = WebClient.client(serviceInstance); client.type(mediaType).accept(mediaType); if (serviceInstance instanceof AnyService || serviceInstance instanceof ExecutableService) { client.accept(RESTHeaders.MULTIPART_MIXED); } ClientConfiguration config = WebClient.getConfig(client); config.getRequestContext().put(HEADER_SPLIT_PROPERTY, true); config.getRequestContext().put(URLConnectionHTTPConduit.HTTPURL_CONNECTION_METHOD_REFLECTION, true); if (useCompression) { config.getInInterceptors().add(new GZIPInInterceptor()); config.getOutInterceptors().add(new GZIPOutInterceptor()); } if (tlsClientParameters != null) { HTTPConduit httpConduit = (HTTPConduit) config.getConduit(); httpConduit.setTlsClientParameters(tlsClientParameters); } return serviceInstance; } }
@Test public void testEchoGenericSuperBookCollectionProxy2Json() throws Exception { String endpointAddress = "http://localhost:" + PORT + "/webapp/genericstore2"; GenericBookStoreSpring2 proxy = JAXRSClientFactory.create(endpointAddress, GenericBookStoreSpring2.class, Collections.singletonList(new JacksonJsonProvider())); WebClient.client(proxy).type("application/json").accept("application/json"); List<SuperBook> books = proxy.echoSuperBookCollection(Collections.singletonList(new SuperBook("Super", 124L, true))); assertEquals(124L, books.get(0).getId()); assertTrue(books.get(0).isSuperBook()); }
@Test public void testEchoGenericSuperBookCollectionProxy2JsonType() throws Exception { String endpointAddress = "http://localhost:" + PORT + "/webapp/genericstore2type"; GenericBookStoreSpring2 proxy = JAXRSClientFactory.create(endpointAddress, GenericBookStoreSpring2.class, Collections.singletonList(new JacksonJsonProvider())); WebClient.client(proxy).type("application/json").accept("application/json"); List<SuperBook2> books = proxy.echoSuperBookTypeCollection(Collections.singletonList(new SuperBook2("Super", 124L, true))); assertEquals(124L, books.get(0).getId()); assertTrue(books.get(0).isSuperBook()); }
@Test public void testEchoGenericSuperBookCollectionProxy2Xml() throws Exception { String endpointAddress = "http://localhost:" + PORT + "/webapp/genericstore2"; JAXBElementProvider<Object> jaxbProvider = new JAXBElementProvider<>(); jaxbProvider.setMarshallAsJaxbElement(true); jaxbProvider.setUnmarshallAsJaxbElement(true); GenericBookStoreSpring2 proxy = JAXRSClientFactory.create(endpointAddress, GenericBookStoreSpring2.class, Collections.singletonList(jaxbProvider)); WebClient.client(proxy).type("application/xml").accept("application/xml"); WebClient.getConfig(proxy).getHttpConduit().getClient().setReceiveTimeout(1000000000L); List<SuperBook> books = proxy.echoSuperBookCollection(Collections.singletonList(new SuperBook("Super", 124L, true))); assertEquals(124L, books.get(0).getId()); assertTrue(books.get(0).isSuperBook()); }
@Test public void testEchoGenericSuperBookCollectionProxy2XmlType() throws Exception { String endpointAddress = "http://localhost:" + PORT + "/webapp/genericstore2type"; JAXBElementProvider<Object> jaxbProvider = new JAXBElementProvider<>(); jaxbProvider.setMarshallAsJaxbElement(true); jaxbProvider.setUnmarshallAsJaxbElement(true); GenericBookStoreSpring2 proxy = JAXRSClientFactory.create(endpointAddress, GenericBookStoreSpring2.class, Collections.singletonList(jaxbProvider)); WebClient.client(proxy).type("application/xml").accept("application/xml"); WebClient.getConfig(proxy).getHttpConduit().getClient().setReceiveTimeout(1000000000L); List<SuperBook2> books = proxy.echoSuperBookTypeCollection(Collections.singletonList(new SuperBook2("Super", 124L, true))); assertEquals(124L, books.get(0).getId()); assertTrue(books.get(0).isSuperBook()); }
@Test public void testEchoGenericSuperBookProxy2Json() throws Exception { String endpointAddress = "http://localhost:" + PORT + "/webapp/genericstore2"; GenericBookStoreSpring2 proxy = JAXRSClientFactory.create(endpointAddress, GenericBookStoreSpring2.class, Collections.singletonList(new JacksonJsonProvider())); WebClient.getConfig(proxy).getHttpConduit().getClient().setReceiveTimeout(1000000000L); WebClient.client(proxy).type("application/json").accept("application/json"); SuperBook book = proxy.echoSuperBook(new SuperBook("Super", 124L, true)); assertEquals(124L, book.getId()); assertTrue(book.isSuperBook()); }
@Test public void testEchoGenericSuperBookProxy2JsonType() throws Exception { String endpointAddress = "http://localhost:" + PORT + "/webapp/genericstore2type"; GenericBookStoreSpring2 proxy = JAXRSClientFactory.create(endpointAddress, GenericBookStoreSpring2.class, Collections.singletonList(new JacksonJsonProvider())); WebClient.getConfig(proxy).getHttpConduit().getClient().setReceiveTimeout(1000000000L); WebClient.client(proxy).type("application/json").accept("application/json"); SuperBook2 book = proxy.echoSuperBookType(new SuperBook2("Super", 124L, true)); assertEquals(124L, book.getId()); assertTrue(book.isSuperBook()); }
@Test public void testEchoGenericSuperBookProxy2XmlType() throws Exception { String endpointAddress = "http://localhost:" + PORT + "/webapp/genericstore2type"; JAXBElementProvider<Object> jaxbProvider = new JAXBElementProvider<>(); jaxbProvider.setMarshallAsJaxbElement(true); jaxbProvider.setUnmarshallAsJaxbElement(true); GenericBookStoreSpring2 proxy = JAXRSClientFactory.create(endpointAddress, GenericBookStoreSpring2.class, Collections.singletonList(jaxbProvider)); WebClient.getConfig(proxy).getHttpConduit().getClient().setReceiveTimeout(1000000000L); WebClient.client(proxy).type("application/xml").accept("application/xml"); SuperBook2 book = proxy.echoSuperBookType(new SuperBook2("Super", 124L, true)); assertEquals(124L, book.getId()); assertTrue(book.isSuperBook()); }
@Test public void testEchoGenericSuperBookProxy2Xml() throws Exception { String endpointAddress = "http://localhost:" + PORT + "/webapp/genericstore2"; JAXBElementProvider<Object> jaxbProvider = new JAXBElementProvider<>(); jaxbProvider.setXmlRootAsJaxbElement(true); jaxbProvider.setMarshallAsJaxbElement(true); GenericBookStoreSpring2 proxy = JAXRSClientFactory.create(endpointAddress, GenericBookStoreSpring2.class, Collections.singletonList(jaxbProvider)); WebClient.getConfig(proxy).getHttpConduit().getClient().setReceiveTimeout(1000000000L); WebClient.client(proxy).type("application/xml").accept("application/xml"); SuperBook book = proxy.echoSuperBook(new SuperBook("Super", 124L, true)); assertEquals(124L, book.getId()); assertTrue(book.isSuperBook()); }