use of javax.ws.rs.core.GenericType in project opennms by OpenNMS.
the class RestClient method getServicesForANode.
public List<OnmsMonitoredService> getServicesForANode(String nodeCriteria, String ipAddress) {
GenericType<List<OnmsMonitoredService>> services = new GenericType<List<OnmsMonitoredService>>() {
};
final WebTarget target = getTarget().path("nodes").path(nodeCriteria).path("ipinterfaces").path(ipAddress).path("services");
return getBuilder(target).get(services);
}
use of javax.ws.rs.core.GenericType in project opennms by OpenNMS.
the class RestClient method getAllEvents.
public List<OnmsEvent> getAllEvents() {
GenericType<List<OnmsEvent>> events = new GenericType<List<OnmsEvent>>() {
};
final WebTarget target = getTarget().path("events").queryParam("limit", 0);
return getBuilder(target).get(events);
}
use of javax.ws.rs.core.GenericType in project camel by apache.
the class CxfRsProducer method invokeHttpClient.
protected void invokeHttpClient(Exchange exchange) throws Exception {
Message inMessage = exchange.getIn();
JAXRSClientFactoryBean cfb = clientFactoryBeanCache.get(CxfEndpointUtils.getEffectiveAddress(exchange, ((CxfRsEndpoint) getEndpoint()).getAddress()));
Bus bus = ((CxfRsEndpoint) getEndpoint()).getBus();
// We need to apply the bus setting from the CxfRsEndpoint which is not use the default bus
if (bus != null) {
cfb.setBus(bus);
}
WebClient client = cfb.createWebClient();
((CxfRsEndpoint) getEndpoint()).getChainedCxfRsEndpointConfigurer().configureClient(client);
String httpMethod = inMessage.getHeader(Exchange.HTTP_METHOD, String.class);
Class<?> responseClass = inMessage.getHeader(CxfConstants.CAMEL_CXF_RS_RESPONSE_CLASS, Class.class);
Type genericType = inMessage.getHeader(CxfConstants.CAMEL_CXF_RS_RESPONSE_GENERIC_TYPE, Type.class);
Object[] pathValues = inMessage.getHeader(CxfConstants.CAMEL_CXF_RS_VAR_VALUES, Object[].class);
String path = inMessage.getHeader(Exchange.HTTP_PATH, String.class);
if (LOG.isTraceEnabled()) {
LOG.trace("HTTP method = {}", httpMethod);
LOG.trace("path = {}", path);
LOG.trace("responseClass = {}", responseClass);
}
// set the path
if (path != null) {
if (ObjectHelper.isNotEmpty(pathValues) && pathValues.length > 0) {
client.path(path, pathValues);
} else {
client.path(path);
}
}
CxfRsEndpoint cxfRsEndpoint = (CxfRsEndpoint) getEndpoint();
CxfRsBinding binding = cxfRsEndpoint.getBinding();
Object body = getBody(exchange, inMessage, httpMethod, cxfRsEndpoint, binding);
setupClientMatrix(client, exchange);
setupClientQueryAndHeaders(client, exchange);
// handle cookies
CookieHandler cookieHandler = ((CxfRsEndpoint) getEndpoint()).getCookieHandler();
loadCookies(exchange, client, cookieHandler);
// invoke the client
Object response = null;
if (responseClass == null || Response.class.equals(responseClass)) {
response = client.invoke(httpMethod, body);
} else {
if (Collection.class.isAssignableFrom(responseClass)) {
if (genericType instanceof ParameterizedType) {
// Get the collection member type first
Type[] actualTypeArguments = ((ParameterizedType) genericType).getActualTypeArguments();
response = client.invokeAndGetCollection(httpMethod, body, (Class<?>) actualTypeArguments[0]);
} else {
throw new CamelExchangeException("Header " + CxfConstants.CAMEL_CXF_RS_RESPONSE_GENERIC_TYPE + " not found in message", exchange);
}
} else {
response = client.invoke(httpMethod, body, responseClass);
}
}
int statesCode = client.getResponse().getStatus();
// handle cookies
saveCookies(exchange, client, cookieHandler);
//http://en.wikipedia.org/wiki/List_of_HTTP_status_codes
if (throwException) {
if (response instanceof Response) {
Integer respCode = ((Response) response).getStatus();
if (respCode > 207) {
throw populateCxfRsProducerException(exchange, (Response) response, respCode);
}
}
}
// set response
if (exchange.getPattern().isOutCapable()) {
LOG.trace("Response body = {}", response);
exchange.getOut().getHeaders().putAll(exchange.getIn().getHeaders());
exchange.getOut().setBody(binding.bindResponseToCamelBody(response, exchange));
exchange.getOut().getHeaders().putAll(binding.bindResponseHeadersToCamelHeaders(response, exchange));
exchange.getOut().setHeader(Exchange.HTTP_RESPONSE_CODE, statesCode);
} else {
// just close the input stream of the response object
if (response instanceof Response) {
((Response) response).close();
}
}
}
use of javax.ws.rs.core.GenericType in project camel by apache.
the class CxfRsProducer method invokeAsyncHttpClient.
protected void invokeAsyncHttpClient(Exchange exchange, final AsyncCallback callback) throws Exception {
Message inMessage = exchange.getIn();
JAXRSClientFactoryBean cfb = clientFactoryBeanCache.get(CxfEndpointUtils.getEffectiveAddress(exchange, ((CxfRsEndpoint) getEndpoint()).getAddress()));
Bus bus = ((CxfRsEndpoint) getEndpoint()).getBus();
// We need to apply the bus setting from the CxfRsEndpoint which is not use the default bus
if (bus != null) {
cfb.setBus(bus);
}
WebClient client = cfb.createWebClient();
((CxfRsEndpoint) getEndpoint()).getChainedCxfRsEndpointConfigurer().configureClient(client);
String httpMethod = inMessage.getHeader(Exchange.HTTP_METHOD, String.class);
Class<?> responseClass = inMessage.getHeader(CxfConstants.CAMEL_CXF_RS_RESPONSE_CLASS, Class.class);
Type genericType = inMessage.getHeader(CxfConstants.CAMEL_CXF_RS_RESPONSE_GENERIC_TYPE, Type.class);
Object[] pathValues = inMessage.getHeader(CxfConstants.CAMEL_CXF_RS_VAR_VALUES, Object[].class);
String path = inMessage.getHeader(Exchange.HTTP_PATH, String.class);
if (LOG.isTraceEnabled()) {
LOG.trace("HTTP method = {}", httpMethod);
LOG.trace("path = {}", path);
LOG.trace("responseClass = {}", responseClass);
}
// set the path
if (path != null) {
if (ObjectHelper.isNotEmpty(pathValues) && pathValues.length > 0) {
client.path(path, pathValues);
} else {
client.path(path);
}
}
CxfRsEndpoint cxfRsEndpoint = (CxfRsEndpoint) getEndpoint();
CxfRsBinding binding = cxfRsEndpoint.getBinding();
Object body = getBody(exchange, inMessage, httpMethod, cxfRsEndpoint, binding);
setupClientMatrix(client, exchange);
setupClientQueryAndHeaders(client, exchange);
//Build message entity
Entity<Object> entity = binding.bindCamelMessageToRequestEntity(body, inMessage, exchange);
// handle cookies
CookieHandler cookieHandler = ((CxfRsEndpoint) getEndpoint()).getCookieHandler();
loadCookies(exchange, client, cookieHandler);
// invoke the client
client.async().method(httpMethod, entity, new CxfInvocationCallback(client, exchange, cxfRsEndpoint, responseClass, callback, genericType));
}
use of javax.ws.rs.core.GenericType in project opennms by OpenNMS.
the class DefaultRemoteRepository method getOnlineReports.
/**
* {@inheritDoc}
*/
@Override
public List<BasicReportDefinition> getOnlineReports() {
List<BasicReportDefinition> resultReports = new ArrayList<>();
List<RemoteReportSDO> webCallResult = new ArrayList<>();
if (isConfigOk()) {
WebTarget target = getTarget(m_remoteRepositoryDefintion.getURI() + "onlineReports" + "/" + m_jasperReportsVersion);
try {
webCallResult = getBuilder(target).get(new GenericType<List<RemoteReportSDO>>() {
});
} catch (Exception e) {
logger.error("Error requesting online reports. Error message: '{}' URI was: '{}'", e.getMessage(), target.getUri());
e.printStackTrace();
}
logger.debug("getOnlineReports got '{}' RemoteReportSDOs from uri '{}'", webCallResult.size(), target.getUri());
resultReports = this.mapSDOListToBasicReportList(webCallResult);
}
return resultReports;
}
Aggregations