本文整理汇总了Java中org.apache.camel.Exchange.getOut方法的典型用法代码示例。如果您正苦于以下问题:Java Exchange.getOut方法的具体用法?Java Exchange.getOut怎么用?Java Exchange.getOut使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.apache.camel.Exchange
的用法示例。
在下文中一共展示了Exchange.getOut方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: process
import org.apache.camel.Exchange; //导入方法依赖的package包/类
@SuppressWarnings("unchecked")
@Override
public void process(Exchange exchange) throws Exception {
Message in = exchange.getIn();
Address address = in.getHeader(Constants.ADDRESS_HEADER, Address.class);
Class<?> datatype = in.getHeader(Constants.DATATYPE_HEADER, Class.class);
Object value = in.getBody(Object.class);
PlcWriteRequest plcSimpleWriteRequest = new PlcWriteRequest(datatype, address, value);
PlcWriter plcWriter = plcConnection.getWriter().orElseThrow(() -> new IllegalArgumentException("Writer for driver not found"));
CompletableFuture<PlcWriteResponse> completableFuture = plcWriter.write(plcSimpleWriteRequest);
int currentlyOpenRequests = openRequests.incrementAndGet();
try {
log.debug("Currently open requests including {}:{}", exchange, currentlyOpenRequests);
PlcWriteResponse plcWriteResponse = completableFuture.get();
if (exchange.getPattern().isOutCapable()) {
Message out = exchange.getOut();
out.copyFrom(exchange.getIn());
out.setBody(plcWriteResponse);
} else {
in.setBody(plcWriteResponse);
}
} finally {
int openRequestsAfterFinish = openRequests.decrementAndGet();
log.trace("Open Requests after {}:{}", exchange, openRequestsAfterFinish);
}
}
示例2: onCompletion
import org.apache.camel.Exchange; //导入方法依赖的package包/类
@Override
public void onCompletion(Exchange exchange) {
if (wrappedAggregationStrategy != null
&& wrappedAggregationStrategy instanceof CompletionAwareAggregationStrategy) {
((CompletionAwareAggregationStrategy) wrappedAggregationStrategy).onCompletion(exchange);
}
// Remove exception, fault and redelivery info from exchange
exchange.setException(null);
exchange.removeProperty(Exchange.FAILURE_HANDLED);
exchange.removeProperty(Exchange.FAILURE_ENDPOINT);
exchange.removeProperty(Exchange.FAILURE_ROUTE_ID);
exchange.removeProperty(Exchange.ERRORHANDLER_CIRCUIT_DETECTED);
exchange.removeProperty(Exchange.ERRORHANDLER_HANDLED);
exchange.removeProperty(Exchange.EXCEPTION_HANDLED);
exchange.removeProperty(Exchange.EXCEPTION_CAUGHT);
Message message = exchange.hasOut() ? exchange.getOut() : exchange.getIn();
message.setFault(false);
message.removeHeader(Exchange.REDELIVERED);
message.removeHeader(Exchange.REDELIVERY_COUNTER);
message.removeHeader(Exchange.REDELIVERY_DELAY);
message.removeHeader(Exchange.REDELIVERY_EXHAUSTED);
message.removeHeader(Exchange.REDELIVERY_MAX_COUNTER);
}
示例3: process
import org.apache.camel.Exchange; //导入方法依赖的package包/类
@Override
public void process(Exchange exchange) throws Exception {
OrientDBEndpoint endpoint = (OrientDBEndpoint)getEndpoint();
curDb = endpoint.databaseOpen();
Object input = exchange.getIn().getBody();
Message out = exchange.getOut();
out.getHeaders().putAll(exchange.getIn().getHeaders());
if (input instanceof List){
out.setBody(endpoint.makeOutObject(processList((List<?>)input, endpoint, curDb)));
}else if (input instanceof String && isJSONList((String)input)){
List<String> inputList = strToJSONsList((String)input);
out.setBody(endpoint.makeOutObject(processList(inputList, endpoint, curDb)));
}else{
out.setBody(endpoint.makeOutObject(processSingleObject(input, endpoint, curDb)));
}
endpoint.databaseClose(curDb);
curDb=null;
}
示例4: onExchange
import org.apache.camel.Exchange; //导入方法依赖的package包/类
@Override
protected void onExchange(Exchange exchange) throws Exception {
Message incomingMessage = exchange.getIn();
String newResourceUri = incomingMessage.getHeader(AtlasConstants.ATLAS_RESOURCE_URI, String.class);
if (newResourceUri != null) {
incomingMessage.removeHeader(AtlasConstants.ATLAS_RESOURCE_URI);
log.debug("{} set to {} creating new endpoint to handle exchange", AtlasConstants.ATLAS_RESOURCE_URI,
newResourceUri);
AtlasEndpoint newEndpoint = findOrCreateEndpoint(getEndpointUri(), newResourceUri);
newEndpoint.onExchange(exchange);
return;
}
AtlasSession atlasSession = getAtlasContext(incomingMessage).createSession();
boolean sourceIsXmlOrJson = isSourceXmlOrJson(atlasSession.getMapping());
Object body = incomingMessage.getBody();
if (sourceIsXmlOrJson && body instanceof InputStream) {
// read the whole stream into a String
// the XML and JSON parsers expect that
body = incomingMessage.getBody(String.class);
}
// TODO Lookup multiple inputs and map with corresponding source docId
// https://github.com/atlasmap/camel-atlasmap/issues/18
atlasSession.setInput(body);
atlasContext.process(atlasSession);
List<Audit> errors = new ArrayList<>();
for (Audit audit : atlasSession.getAudits().getAudit()) {
switch (audit.getStatus()) {
case ERROR:
errors.add(audit);
break;
case WARN:
LOG.warn("{}: docId='{}', path='{}'", audit.getMessage(), audit.getDocId(), audit.getPath());
break;
default:
LOG.info("{}: docId='{}', path='{}'", audit.getMessage(), audit.getDocId(), audit.getPath());
}
}
if (!errors.isEmpty()) {
StringBuilder buf = new StringBuilder("Errors: ");
errors.stream().forEach(a -> buf.append(
String.format("[%s: docId='%s', path='%s'], ", a.getMessage(), a.getDocId(), a.getPath())));
throw new AtlasException(buf.toString());
}
// now lets output the results to the exchange
Message out = exchange.getOut();
out.setBody(atlasSession.getOutput());
out.setHeaders(incomingMessage.getHeaders());
out.setAttachments(incomingMessage.getAttachments());
}
示例5:
import org.apache.camel.Exchange; //导入方法依赖的package包/类
@Override
/* default */ Message message(final Exchange exchange) {
return exchange.getOut();
}