Uses of Interface
org.apache.camel.Exchange
Packages that use Exchange
Package
Description
The core Camel API.
Camel cloud
Service Provider Interfaces used by the Camel runtime which are plugin strategies.
-
Uses of Exchange in org.apache.camel
Subinterfaces of Exchange in org.apache.camelModifier and TypeInterfaceDescriptioninterfacePooledExchangewhich contains the methods and APIs that are not intended for Camel end users but used internally by Camel for optimizing memory footprint by reusing exchanges created byConsumers viaExchangeFactory.Methods in org.apache.camel that return ExchangeModifier and TypeMethodDescriptionAggregates an old and new exchange together to create a single combined exchangedefault ExchangeAggregates an old and new exchange together to create a single combined exchange.Exchange.copy()Creates a copy of the current message exchange so that it can be forwarded to another destinationExchangeExtension.createCopyWithProperties(CamelContext context) Create a new exchange copied from this, with the context set to the given contextConsumer.createExchange(boolean autoRelease) Creates anExchangethat was consumed.Endpoint.createExchange()Create a new exchange for communicating with this endpoint.Endpoint.createExchange(ExchangePattern pattern) Create a new exchange for communicating with this endpoint with the specifiedExchangePatternsuch as whether its going to be anExchangePattern.InOnlyorExchangePattern.InOutexchangeCamelExchangeException.getExchange()Returns the exchange which caused the exceptionExpectedBodyTypeException.getExchange()ExpressionEvaluationException.getExchange()Message.getExchange()Returns the exchange this message is related toRuntimeExchangeException.getExchange()Returns the exchange which caused the exceptionReceives from the endpoint, waiting until there is a responseReceives from the endpoint, waiting until there is a response or the timeout occursReceives from the endpoint, waiting until there is a response.Receives from the endpoint, waiting until there is a response or the timeout occursPollingConsumer.receive()Waits until a message is available and then returns it.PollingConsumer.receive(long timeout) Attempts to receive a message exchange, waiting up to the given timeout to expire if a message is not yet available.ConsumerTemplate.receiveNoWait(String endpointUri) Receives from the endpoint, not waiting for a response if non exists.ConsumerTemplate.receiveNoWait(Endpoint endpoint) Receives from the endpoint, not waiting for a response if non exists.PollingConsumer.receiveNoWait()Attempts to receive a message exchange immediately without waiting and returning null if a message exchange is not available yet.Sends an exchange to an endpoint using a supplied processor Uses anExchangePattern.InOutmessage exchange pattern.Sends an exchange to an endpoint using a supplied processor Uses anExchangePattern.InOutmessage exchange pattern.FluentProducerTemplate.send()Send to an endpoint (InOnly)Sends the exchange to the given endpoint
ProducerTemplate.send(String endpointUri, ExchangePattern pattern, Processor processor) Sends an exchange to an endpoint using a supplied processor
Sends an exchange to an endpoint using a supplied processor
Sends the exchange to the given endpoint
ProducerTemplate.send(Endpoint endpoint, ExchangePattern pattern, Processor processor) Sends an exchange to an endpoint using a supplied processor
ProducerTemplate.send(Endpoint endpoint, ExchangePattern pattern, Processor processor, Processor resultProcessor) Sends an exchange to an endpoint using a supplied processor
Sends an exchange to an endpoint using a supplied processor
Sends the exchange to the default endpoint
Notice: that if the processing of the exchange failed with an Exception it is not thrown from this method, but you can access it from the returned exchange usinggetException().Sends an exchange to the default endpoint using a supplied processor
Notice: that if the processing of the exchange failed with an Exception it is not thrown from this method, but you can access it from the returned exchange usinggetException().Methods in org.apache.camel that return types with arguments of type ExchangeModifier and TypeMethodDescriptionFluentProducerTemplate.asyncSend()Sends asynchronously to the given endpoint (InOnly).Sends an asynchronous exchange to the given endpoint.Sends an asynchronous exchange to the given endpoint.Sends an asynchronous exchange to the given endpoint.Sends an asynchronous exchange to the given endpoint.AsyncProcessor.processAsync(Exchange exchange) Methods in org.apache.camel with parameters of type ExchangeModifier and TypeMethodDescriptiondefault booleanNamedNode.acceptDebugger(Exchange exchange) Whether this node can accept debugging the current exchange.Aggregates an old and new exchange together to create a single combined exchangedefault ExchangeAggregates an old and new exchange together to create a single combined exchange.Sends an asynchronous exchange to the given endpoint.Sends an asynchronous exchange to the given endpoint.voidEndpoint.configureExchange(Exchange exchange) Configures a newly createdExchange.<T> TConverts the value to the specified type in the context of an exchangeCreate a copy of the stream.voidExchangeExtension.copyInternalProperties(Exchange target) To copy the internal properties from this exchange to the target exchangestatic StringCamelExchangeException.createExceptionMessage(String message, Exchange exchange, Throwable cause) Creates an exception message with the provided details.protected static StringRuntimeExchangeException.createMessage(String message, Exchange exchange) default AsyncCallbackConsumer.defaultConsumerCallback(Exchange exchange, boolean autoRelease) The default callback to use with the consumer when calling the processor using asynchronous routing.void<T> TReturns the value of the expression on the given exchangevoidExchangeExtension.handoverCompletions(Exchange target) Handover all the on completions from this exchange to the target exchange.protected static String<T> TTypeConverter.mandatoryConvertTo(Class<T> type, Exchange exchange, Object value) Converts the value to the specified type in the context of an exchangebooleanEvaluates the predicate on the message exchange and returns true if this exchange matches the predicateBinaryPredicate.matchesReturningFailureMessage(Exchange exchange) Evaluates the predicate on the message exchange and returns null if this exchange matches the predicate.default voidAggregationStrategy.onCompletion(Exchange exchange) The aggregatedExchangehas completed Important: This method must not throw any exceptions.default voidAggregationStrategy.onCompletion(Exchange exchange, Exchange inputExchange) The aggregatedExchangehas completed Important: This method must not throw any exceptions.voiddefault voidAggregationStrategy.onOptimisticLockFailure(Exchange oldExchange, Exchange newExchange) Callback when the aggregatedExchangefails to add in theOptimisticLockingAggregationRepositorybecause of anOptimisticLockingAggregationRepository.OptimisticLockingException.default booleanAggregationStrategy.preComplete(Exchange oldExchange, Exchange newExchange) Determines if the aggregation should complete the current group, and start a new group, or the aggregation should continue using the current group.booleanAsyncProcessor.process(Exchange exchange, AsyncCallback callback) Processes the message exchange.voidProcesses the message exchangeAsyncProcessor.processAsync(Exchange exchange) protected static Stringprotected static Stringprotected static StringvoidConsumer.releaseExchange(Exchange exchange, boolean autoRelease) Releases theExchangewhen its completed processing and no longer needed.Sends the exchange to the given endpoint
Sends the exchange to the given endpoint
Sends the exchange to the default endpoint
Notice: that if the processing of the exchange failed with an Exception it is not thrown from this method, but you can access it from the returned exchange usinggetException().default voidA timeout occurred.<T> TTypeConverter.tryConvertTo(Class<T> type, Exchange exchange, Object value) Tries to convert the value to the specified type in the context of an exchange, returning null if not possible to convert.FluentProducerTemplate.withExchange(Exchange exchange) Set the exchange to use for send.static CamelExecutionExceptionCamelExecutionException.wrapCamelExecutionException(Exchange exchange, Throwable e) Wraps the caused exception in aCamelExecutionExceptionif its not already such an exception.Method parameters in org.apache.camel with type arguments of type ExchangeModifier and TypeMethodDescriptionFluentProducerTemplate.withExchange(Supplier<Exchange> exchangeSupplier) Set the exchangeSupplier which will be invoke to get the exchange to be used for send.Constructors in org.apache.camel with parameters of type ExchangeModifierConstructorDescriptionCamelAuthorizationException(String message, Exchange exchange) CamelAuthorizationException(String message, Exchange exchange, Throwable cause) CamelExchangeException(String message, Exchange exchange) CamelExchangeException(String message, Exchange exchange, Throwable cause) CamelExecutionException(String message, Exchange exchange) CamelExecutionException(String message, Exchange exchange, Throwable cause) CamelUnitOfWorkException(Exchange exchange, List<Exception> causes) ExchangeTimedOutException(Exchange exchange, long timeout) ExchangeTimedOutException(Exchange exchange, long timeout, String message) ExpectedBodyTypeException(Exchange exchange, Class<?> expectedBodyType) ExpressionEvaluationException(Expression expression, String message, Exchange exchange, Throwable cause) ExpressionEvaluationException(Expression expression, Exchange exchange, Throwable cause) InvalidPayloadException(Exchange exchange, Class<?> type) InvalidPayloadException(Exchange exchange, Class<?> type, Message message) InvalidPayloadException(Exchange exchange, Class<?> type, Message message, Throwable cause) InvalidPayloadRuntimeException(Exchange exchange, Class<?> type) InvalidPayloadRuntimeException(Exchange exchange, Class<?> type, Throwable cause) InvalidPayloadRuntimeException(Exchange exchange, Class<?> type, Message message) InvalidPayloadRuntimeException(Exchange exchange, Class<?> type, Message message, Throwable cause) NoSuchHeaderException(String message, Exchange exchange, String headerName) NoSuchHeaderException(Exchange exchange, String headerName, Class<?> type) NoSuchHeaderOrPropertyException(Exchange exchange, String headerName, String propertyName, Class<?> type) NoSuchPropertyException(Exchange exchange, String propertyName) NoSuchPropertyException(Exchange exchange, String propertyName, Class<?> type) NoSuchVariableException(Exchange exchange, String variableName) NoSuchVariableException(Exchange exchange, String variableName, Class<?> type) RollbackExchangeException(String message, Exchange exchange) RollbackExchangeException(String message, Exchange exchange, Throwable cause) RollbackExchangeException(Exchange exchange) RollbackExchangeException(Exchange exchange, Throwable cause) RuntimeExchangeException(String message, Exchange exchange) RuntimeExchangeException(String message, Exchange exchange, Throwable cause) ValidationException(String message, Exchange exchange, Throwable cause) ValidationException(Exchange exchange, String message) -
Uses of Exchange in org.apache.camel.cloud
Methods in org.apache.camel.cloud with parameters of type ExchangeModifier and TypeMethodDescriptionServiceFilter.apply(Exchange exchange, List<ServiceDefinition> services) Deprecated.Chooses service candidates to use<T> TServiceLoadBalancer.process(Exchange exchange, String serviceName, ServiceLoadBalancerFunction<T> function) Deprecated. -
Uses of Exchange in org.apache.camel.cloudevents
Methods in org.apache.camel.cloudevents with parameters of type ExchangeModifier and TypeMethodDescriptiondefault StringCloudEvent.getEventTime(Exchange exchange) Construct event time from given Camel exchange. -
Uses of Exchange in org.apache.camel.spi
Methods in org.apache.camel.spi that return ExchangeModifier and TypeMethodDescriptionAggregationRepository.add(CamelContext camelContext, String key, Exchange exchange) Add the givenExchangeunder the correlation key.OptimisticLockingAggregationRepository.add(CamelContext camelContext, String key, Exchange oldExchange, Exchange newExchange) Add the givenExchangeunder the correlation key.ExchangeFactory.create(boolean autoRelease) Gets a newExchangeGets a newExchangeProcessorExchangeFactory.create(Endpoint fromEndpoint, ExchangePattern exchangePattern) Gets a newExchangeProcessorExchangeFactory.createCopy(Exchange exchange) Gets a copy of the givenExchangeProcessorExchangeFactory.createCorrelatedCopy(Exchange exchange, boolean handover) Gets a copy of the givenExchangeand the copy is correlated to the sourceAggregationRepository.get(CamelContext camelContext, String key) Gets the given exchange with the correlation keyGets the exchange from the repository.ClaimCheckRepository.getAndRemove(String key) Gets and removes the exchange from the repository.AsyncProcessorAwaitManager.AwaitThread.getExchange()The exchange being processed by the other thread.CamelEvent.ExchangeEvent.getExchange()InflightRepository.InflightExchange.getExchange()The exchange being inflightBacklogDebugger.getSuspendedExchange(String id) Gets the exchanged suspended at the given breakpoint id or null if there is none at that id.ClaimCheckRepository.pop()Pops the repository and returns the latest.Waits until a message is available and then returns it.Attempts to receive a message exchange, waiting up to the given timeout to expire if a message is not yet available.ConsumerCache.receiveNoWait(Endpoint endpoint) Attempts to receive a message exchange immediately without waiting and returning null if a message exchange is not available yet.RecoverableAggregationRepository.recover(CamelContext camelContext, String exchangeId) Recovers the exchange with the given exchange idSends the exchange to the given endpoint.Methods in org.apache.camel.spi that return types with arguments of type ExchangeModifier and TypeMethodDescriptionProducerCache.asyncSendExchange(Endpoint endpoint, ExchangePattern pattern, Processor processor, Processor resultProcessor, Exchange exchange, CompletableFuture<Exchange> future) Asynchronously sends an exchange to an endpoint using a suppliedProcessorto populate the exchangeBrowsableEndpoint.getExchanges()Return the exchanges available on this endpointMethods in org.apache.camel.spi with parameters of type ExchangeModifier and TypeMethodDescriptionAggregationRepository.add(CamelContext camelContext, String key, Exchange exchange) Add the givenExchangeunder the correlation key.booleanAdds the exchange to the repository.default booleanAdds the key to the repository.voidAdds the exchange to the inflight registry to the total countervoidAdds the exchange to the inflight registry associated to the given routeOptimisticLockingAggregationRepository.add(CamelContext camelContext, String key, Exchange oldExchange, Exchange newExchange) Add the givenExchangeunder the correlation key.voidCallback executed after processing a step in the route.voidvoidBacklogDebugger.afterProcess(Exchange exchange, Processor processor, NamedNode definition, long timeTaken) Callback invoked after a breakpointvoidBreakpoint.afterProcess(Exchange exchange, Processor processor, NamedNode definition, long timeTaken) Callback invoked when the breakpoint was hit and theExchangehas been processed (after).booleanDebugger.afterProcess(Exchange exchange, Processor processor, NamedNode definition, long timeTaken) Callback invoked when anExchangehas been processed which allows implementators to notify breakpoints.voidUnitOfWork.afterProcess(Processor processor, Exchange exchange, AsyncCallback callback, boolean doneSync) Strategy for work to be executed after the processingvoidUnitOfWork.afterRoute(Exchange exchange, Route route) Invoked when this unit of work is done being routed by the given route.booleanHeaderFilterStrategy.applyFilterToCamelHeaders(String headerName, Object headerValue, Exchange exchange) Applies filtering logic to Camel Message header that is going to be copied to target message such as CXF and JMS message.booleanHeaderFilterStrategy.applyFilterToExternalHeaders(String headerName, Object headerValue, Exchange exchange) Applies filtering logic to an external message header such as CXF and JMS message that is going to be copied to Camel message header.ProducerCache.asyncSendExchange(Endpoint endpoint, ExchangePattern pattern, Processor processor, Processor resultProcessor, Exchange exchange, CompletableFuture<Exchange> future) Asynchronously sends an exchange to an endpoint using a suppliedProcessorto populate the exchangeCallback executed before processing a step in the route.voidSynchronizationVetoable.beforeHandover(Exchange target) A method to perform optional housekeeping when a Synchronization is being handed over.org.apache.camel.util.StopWatchBacklogDebugger.beforeProcess(Exchange exchange, Processor processor, NamedNode definition) Callback invoked before hitting a breakpointvoidBreakpoint.beforeProcess(Exchange exchange, Processor processor, NamedNode definition) Callback invoked when the breakpoint was hit and theExchangeis about to be processed (before).booleanDebugger.beforeProcess(Exchange exchange, Processor processor, NamedNode definition) Callback invoked when anExchangeis about to be processed which allows implementators to notify breakpoints.UnitOfWork.beforeProcess(Processor processor, Exchange exchange, AsyncCallback callback) Strategy for work to be executed before processing.voidUnitOfWork.beforeRoute(Exchange exchange, Route route) Invoked when this unit of work is about to be routed by the given route.Caches the body aas aStreamCache.default booleanConfirms the key, after the exchange has been processed successfully.default booleanReturns true if this repository contains the specified element.<T> TConverts the value to the specified type in the context of an exchangedefault <T> TEventFactory.createCamelExchangeAsyncProcessingStartedEvent(Exchange exchange) Creates anCamelEventwhen anExchangeasynchronous processing has been started.UnitOfWork.createChildUnitOfWork(Exchange childExchange) Create a child unit of work, which is associated to this unit of work as its parent.ProcessorExchangeFactory.createCopy(Exchange exchange) Gets a copy of the givenExchangeProcessorExchangeFactory.createCorrelatedCopy(Exchange exchange, boolean handover) Gets a copy of the givenExchangeand the copy is correlated to the sourceEventFactory.createExchangeCompletedEvent(Exchange exchange) Creates anCamelEventwhen anExchangehas been completed successfullyEventFactory.createExchangeCreatedEvent(Exchange exchange) Creates anCamelEventwhen anExchangehas been createdEventFactory.createExchangeFailedEvent(Exchange exchange) Creates anCamelEventwhen anExchangehas failedEventFactory.createExchangeFailureHandledEvent(Exchange exchange, Processor failureHandler, boolean deadLetterChannel, String deadLetterUri) Creates anCamelEventwhen anExchangehas failed but was handled by the Camel error handlers such as an dead letter channel, or a doTry .. doCatch block.EventFactory.createExchangeFailureHandlingEvent(Exchange exchange, Processor failureHandler, boolean deadLetterChannel, String deadLetterUri) Creates anCamelEventwhen anExchangehas failed but is being handled by the Camel error handlers such as an dead letter channel, or a doTry .. doCatch block.EventFactory.createExchangeRedeliveryEvent(Exchange exchange, int attempt) Creates anCamelEventwhen anExchangeis about to be redeliveredEventFactory.createExchangeSendingEvent(Exchange exchange, Endpoint endpoint) Creates anCamelEventwhen anExchangeis about to be sent to the endpoint (eg before).EventFactory.createExchangeSentEvent(Exchange exchange, Endpoint endpoint, long timeTaken) Creates anCamelEventwhen anExchangehas completely been sent to the endpoint (eg after).SendDynamicAware.createPostProcessor(Exchange exchange, SendDynamicAware.DynamicAwareEntry entry) Creates an optional postProcessorthat will be executed afterwards when the message has been sent dynamic.SendDynamicAware.createPreProcessor(Exchange exchange, SendDynamicAware.DynamicAwareEntry entry) EventFactory.createStepCompletedEvent(Exchange exchange, String stepId) Creates anCamelEventwhen a step has been completed successfullyEventFactory.createStepFailedEvent(Exchange exchange, String stepId) Creates anCamelEventwhen a step has failedEventFactory.createStepStartedEvent(Exchange exchange, String stepId) Creates anCamelEventwhen a step has been startedUnitOfWorkFactory.createUnitOfWork(Exchange exchange) Creates a newUnitOfWorkbooleanProducerCache.AsyncProducerCallback.doInAsyncProducer(AsyncProducer asyncProducer, Exchange exchange, AsyncCallback callback) Performs operation on the given producer to send the given exchange.booleanProducerCache.doInAsyncProducer(Endpoint endpoint, Exchange exchange, AsyncCallback callback, ProducerCache.AsyncProducerCallback producerCallback) Sends an exchange to an endpoint using a supplied callback supporting the asynchronous routing engine.voidInvoked when this unit of work has been completed, whether it has failed or completedGenerates a string representation of the exchangevoidExceptionHandler.handleException(String message, Exchange exchange, Throwable exception) Handles the given exceptionvoidUnitOfWork.handoverSynchronization(Exchange target) Handover all the registered synchronizations to the targetExchange.voidUnitOfWork.handoverSynchronization(Exchange target, Predicate<Synchronization> filter) Handover all the registered synchronizations to the targetExchange.voidTo interrupt an exchange which may seem as stuck, to force the exchange to continue, allowing any blocking thread to be released.InvokeOnHeaderStrategy.invoke(Object target, String key, Exchange exchange, AsyncCallback callback) Invoke the method based on the header keydefault <T> TBulkTypeConverters.mandatoryConvertTo(Class<?> from, Class<T> to, Exchange exchange, Object value) Converts the value to the specified type in the context of an exchangedefault <T> TBulkTypeConverters.mandatoryConvertTo(Class<T> type, Exchange exchange, Object value) voidDataFormat.marshal(Exchange exchange, Object graph, OutputStream stream) Marshals the object to the given Stream.booleanCondition.matchEvent(Exchange exchange, CamelEvent.ExchangeEvent event) Does the condition matchbooleanCondition.matchProcess(Exchange exchange, Processor processor, NamedNode definition, boolean before) Does the condition matchMessageHistoryFactory.newMessageHistory(String routeId, NamedNode node, Exchange exchange) Creates a newMessageHistoryPredicateExceptionFactory.newPredicateException(Exchange exchange, Predicate predicate, String nodeId) Allows to return a specific exception for the given predicate in case it failedvoidNotifyBuilderMatcher.notifyBuilderOnExchange(Exchange exchange) When an exchange was receivedvoidSynchronizationRouteAware.onAfterRoute(Route route, Exchange exchange) Invoked after theExchangehas been routed by the given route.voidSynchronizationRouteAware.onBeforeRoute(Route route, Exchange exchange) Invoked before theExchangeis being routed by the given route.voidSynchronization.onComplete(Exchange exchange) Called when the processing of the message exchange is completevoidBreakpoint.onEvent(Exchange exchange, CamelEvent.ExchangeEvent event, NamedNode definition) booleanDebugger.onEvent(Exchange exchange, CamelEvent.ExchangeEvent event) Callback invoked when anExchangeis being processed which allows implementators to notify breakpoints.voidRoutePolicy.onExchangeBegin(Route route, Exchange exchange) voidRoutePolicy.onExchangeDone(Route route, Exchange exchange) voidCalled when the processing of the message exchange has failed for some reason.LogListener.onLog(Exchange exchange, CamelLogger camelLogger, String message) Invoked right before Log component or Log EIP logs.booleanPrepares this unit of work with the given inputExchangePrepares for using optimised dynamic to by parsing the uri and returning an entry of details that are used for creating the pre and post processors, and the static uri.voidAsyncProcessorAwaitManager.process(AsyncProcessor processor, Exchange exchange) Process the given exchange synchronously.default voidbooleanSharedInternalProcessor.process(Exchange exchange, AsyncCallback originalCallback, AsyncProcessor processor, Processor resultProcessor) Asynchronous APIvoidSharedInternalProcessor.process(Exchange exchange, AsyncProcessor processor, Processor resultProcessor) Synchronous APIvoidPushes the exchange on top of the repository.default booleanReleases the exchange back into the poolbooleanReleases the exchange back into the poolvoidAggregationRepository.remove(CamelContext camelContext, String key, Exchange exchange) Removes the exchange with the given correlation key, which should happen when anExchangeis completeddefault booleanRemoves the key from the repository.voidRemoves the exchange from the inflight registry to the total countervoidRemoves the exchange from the inflight registry removing association to the given routevoidOptimisticLockingAggregationRepository.remove(CamelContext camelContext, String key, Exchange exchange) Removes the given Exchange when both the supplied key and Exchange are present in the repository.SendDynamicAware.resolveStaticUri(Exchange exchange, SendDynamicAware.DynamicAwareEntry entry) Sends the exchange to the given endpoint.String[]Tokenizes the data in the provided Exchange using the current configuration options.voidTracer.traceAfterNode(NamedNode node, Exchange exchange) Trace after the given nodevoidTracer.traceAfterRoute(NamedRoute route, Exchange exchange) Trace after the route (eg output from route)voidTracer.traceBeforeNode(NamedNode node, Exchange exchange) Trace before the given nodevoidTracer.traceBeforeRoute(NamedRoute route, Exchange exchange) Trace before the route (eg input to route)voidTracer.traceSentNode(NamedNode node, Exchange exchange, Endpoint endpoint, long elapsed) Trace when an Exchange was sent to a given endpointdefault <T> TBulkTypeConverters.tryConvertTo(Class<?> from, Class<T> to, Exchange exchange, Object value) Tries to convert the value to the specified type, returning null if not possible to convert.default <T> TBulkTypeConverters.tryConvertTo(Class<T> type, Exchange exchange, Object value) DataFormat.unmarshal(Exchange exchange, InputStream stream) Unmarshals the given stream into an object.default ObjectUnmarshals the given body into an object.RestClientRequestValidator.validate(Exchange exchange, RestClientRequestValidator.ValidationContext validationContent) Validates the incoming client requestMethod parameters in org.apache.camel.spi with type arguments of type ExchangeModifier and TypeMethodDescriptionProducerCache.asyncSendExchange(Endpoint endpoint, ExchangePattern pattern, Processor processor, Processor resultProcessor, Exchange exchange, CompletableFuture<Exchange> future) Asynchronously sends an exchange to an endpoint using a suppliedProcessorto populate the exchange