@Override public String createEndpointUri(final String scheme, final Map<String, String> options) throws URISyntaxException { // set serviceUri on delegate component Olingo4Component delegate = getCamelContext().getComponent(scheme, Olingo4Component.class); Olingo4Configuration configuration = new Olingo4Configuration(); configuration.setServiceUri(this.serviceUri); delegate.setConfiguration(configuration); setAfterProducer( exchange -> { if (!exchange.isFailed()) { ClientEntity clientEntity = exchange.getIn().getBody(ClientEntity.class); if (clientEntity != null) { // convert client entity to JSON final StringWriter writer = new StringWriter(); final Entity entity = odataClient.getBinder().getEntity(clientEntity); final ODataSerializer serializer = odataClient.getSerializer(APPLICATION_JSON); serializer.write(writer, entity); exchange.getIn().setBody(writer.toString()); } } // TODO handle failure on missing resource 404 }); return super.createEndpointUri(scheme, options); }
private CamelContext createCamelContext() throws Exception { final CamelContext context = new DefaultCamelContext(); Map<String, Object> options = new HashMap<String, Object>(); options.put("serviceUri", getRealServiceUrl(TEST_SERVICE_BASE_URL)); options.put("contentType", "application/json;charset=utf-8"); final Olingo4Configuration configuration = new Olingo4Configuration(); IntrospectionSupport.setProperties(configuration, options); // add OlingoComponent to Camel context final Olingo4Component component = new Olingo4Component(context); component.setConfiguration(configuration); context.addComponent("olingo4", component); return context; }