Ok, according to documentation on the bottom of this page:
http://camel.apache.org/using-camelproxy.html
I did the following:
public interface AsyncHandler {
Future<EventData> asyncHandle(EventData data) throws HandlerException;
}
public interface SyncHandler {
EventData handle(EventData data) throws HandlerException;
}
public interface Handler extends SyncHandler, AsyncHandler {
}
Then, I implemented asyncHandle in my base abstract class as:
@Override
public Future<EventData> asyncHandle(final EventData data) throws
HandlerException {
return
new FutureTask<>(
new Callable<EventData>() {
@Override
public EventData call() throws Exception {
return
handle(data);
}
}
);
}
Finally, I changed all my proxy references to use AsyncHandler as the
interface and I changed all my invocations to use asyncHandle which returns
Future<EventData>.
However, I must still be missing something as my processing does not advance
past the from, and still returns with: The OUT message was not received
within: 30000 millis.
I feel that somehow I need to tie this together with a ThreadPool and
execute my FutureTask<EventData>, but I thought that Camel would do that...
Do I need to create my own ThreadPool, throw the FutureTask<EventData> in
there and at the same time return it to the caller?
How do I get a reference to a thread pool created by Camel without tying my
code to Camel and making it aware of Camel? Am I still missing something in
the configuration? I changed all my routes to be vm:// instead of
direct://.
Lord have mercy.
-AP_
--
View this message in context:
http://camel.465427.n5.nabble.com/Unable-to-setup-route-with-limit-of-30-queue-size-and-5-processing-threads-tp5766520p5766537.html
Sent from the Camel - Users mailing list archive at Nabble.com.