public abstract class AbstractApiProducer<E extends Enum<E> & ApiName,T> extends DefaultAsyncProducer implements PropertiesInterceptor, ResultInterceptor
| Modifier and Type | Field and Description |
|---|---|
protected AbstractApiEndpoint<E,T> |
endpoint |
protected ApiMethodHelper<?> |
methodHelper |
protected ApiMethodPropertiesHelper<T> |
propertiesHelper |
shutdown, shuttingdown, started, starting, stopped, stopping, suspended, suspending| Constructor and Description |
|---|
AbstractApiProducer(AbstractApiEndpoint<E,T> endpoint,
ApiMethodPropertiesHelper<T> propertiesHelper) |
| Modifier and Type | Method and Description |
|---|---|
protected Object |
doInvokeMethod(ApiMethod method,
Map<String,Object> properties)
Invoke the API method.
|
protected ApiMethod |
findMethod(Exchange exchange,
Map<String,Object> properties) |
void |
interceptProperties(Map<String,Object> properties)
Intercept method invocation arguments used to find and invoke API method.
|
void |
interceptResult(Object methodResult,
Exchange resultExchange)
Do additional result exchange processing, for example, adding custom headers.
|
boolean |
process(Exchange exchange,
AsyncCallback callback)
Processes the message exchange.
|
Object |
splitResult(Object result)
Split a complex result into result elements.
|
processcreateExchange, createExchange, createExchange, doStart, doStop, getEndpoint, isSingleton, toStringdoResume, doShutdown, doSuspend, getStatus, getVersion, isRunAllowed, isStarted, isStarting, isStopped, isStopping, isStoppingOrStopped, isSuspended, isSuspending, resume, shutdown, start, stop, suspendprotected final ApiMethodPropertiesHelper<T> propertiesHelper
protected final ApiMethodHelper<?> methodHelper
public AbstractApiProducer(AbstractApiEndpoint<E,T> endpoint, ApiMethodPropertiesHelper<T> propertiesHelper)
public boolean process(Exchange exchange, AsyncCallback callback)
AsyncProcessorProcessor.process(org.apache.camel.Exchange), but the caller supports having the exchange asynchronously processed.
If there was a failure processing then the caused Exception would be set on the Exchange.process in interface AsyncProcessorexchange - the message exchangecallback - the AsyncCallback will be invoked when the processing of the exchange is completed.
If the exchange is completed synchronously, then the callback is also invoked synchronously.
The callback should therefore be careful of starting recursive loop.public void interceptProperties(Map<String,Object> properties)
PropertiesInterceptorinterceptProperties in interface PropertiesInterceptorproperties - method invocation arguments.protected Object doInvokeMethod(ApiMethod method, Map<String,Object> properties) throws RuntimeCamelException
method - API method to invoke.properties - method arguments from endpoint properties and exchange In headers.RuntimeCamelException - on error. Exceptions thrown by API method are wrapped.public final Object splitResult(Object result)
ResultInterceptorsplitResult in interface ResultInterceptorresult - API method invocation resultpublic void interceptResult(Object methodResult, Exchange resultExchange)
ResultInterceptorinterceptResult in interface ResultInterceptormethodResult - result of API method invocation.resultExchange - result as a Camel exchange, may be a split result from Arrays or Collections.Copyright © 2007–2015 The Apache Software Foundation. All rights reserved.