protected void run() { JAXRSServerFactoryBean sf = new JAXRSServerFactoryBean(); sf.setResourceClasses(BookStore.class); sf.setResourceProvider(BookStore.class, new SingletonResourceProvider(new BookStore())); JAXBElementProvider<?> p1 = new JAXBElementProvider<>(); p1.setEnableBuffering(true); p1.setEnableStreaming(true); JAXBElementProvider<?> p2 = new CustomJaxbProvider(); p2.setProduceMediaTypes(Collections.singletonList("text/xml")); List<Object> providers = new ArrayList<>(); providers.add(p1); providers.add(p2); sf.setProviders(providers); sf.setAddress("http://localhost:" + PORT + "/"); Map<String, Object> properties = new HashMap<>(); properties.put("org.apache.cxf.serviceloader-context", "true"); sf.setProperties(properties); sf.create(); }
@Test public void testPostGetBookFastinfosetProxy() throws Exception { JAXBElementProvider<Object> p = new JAXBElementProvider<>(); p.setConsumeMediaTypes(Collections.singletonList("application/fastinfoset")); p.setProduceMediaTypes(Collections.singletonList("application/fastinfoset")); BookStoreJaxrsJaxws client = JAXRSClientFactory.create( "http://localhost:" + PORT + "/test/services/rest4", BookStoreSoapRestFastInfoset2.class, Collections.singletonList(p)); Book b = new Book("CXF", 1L); Book b2 = client.addFastinfoBook(b); assertEquals(b2.getName(), b.getName()); assertEquals(b2.getId(), b.getId()); checkFiInterceptors(WebClient.getConfig(client)); }
@Test public void testPostGetBookFastinfosetProxyInterceptors() throws Exception { JAXBElementProvider<Object> p = new JAXBElementProvider<>(); p.setConsumeMediaTypes(Collections.singletonList("application/fastinfoset")); p.setProduceMediaTypes(Collections.singletonList("application/fastinfoset")); BookStoreJaxrsJaxws client = JAXRSClientFactory.create( "http://localhost:" + PORT + "/test/services/rest5", BookStoreSoapRestFastInfoset3.class, Collections.singletonList(p)); Book b = new Book("CXF", 1L); // Just to make sure it is enforced Map<String, Object> props = WebClient.getConfig(client).getRequestContext(); props.put(FIStaxOutInterceptor.FI_ENABLED, Boolean.TRUE); Book b2 = client.addFastinfoBook(b); assertEquals(b2.getName(), b.getName()); assertEquals(b2.getId(), b.getId()); checkFiInterceptors(WebClient.getConfig(client)); }
@Test public void testPostGetBookFastinfoset() throws Exception { JAXRSClientFactoryBean bean = new JAXRSClientFactoryBean(); bean.setAddress("http://localhost:" + PORT + "/test/services/rest3/bookstore/fastinfoset"); bean.getOutInterceptors().add(new FIStaxOutInterceptor()); bean.getInInterceptors().add(new FIStaxInInterceptor()); JAXBElementProvider<?> p = new JAXBElementProvider<>(); p.setConsumeMediaTypes(Collections.singletonList("application/fastinfoset")); p.setProduceMediaTypes(Collections.singletonList("application/fastinfoset")); bean.setProvider(p); Map<String, Object> props = new HashMap<>(); props.put(FIStaxOutInterceptor.FI_ENABLED, Boolean.TRUE); bean.setProperties(props); WebClient client = bean.createWebClient(); Book b = new Book("CXF", 1L); Book b2 = client.type("application/fastinfoset").accept("application/fastinfoset") .post(b, Book.class); assertEquals(b2.getName(), b.getName()); assertEquals(b2.getId(), b.getId()); }