uimaAsContext.setConcurrentConsumerCount(concurrentRequestConsumers);
uimaAsContext.put("EndpointName", endpointName);
UimaTransport vmTransport = getTransport(uimaAsContext);
// Creates delegate Listener for receiving requests from the parent
UimaMessageListener messageListener = vmTransport.produceUimaMessageListener();
// Plug in message handlers
messageListener.initialize(uimaAsContext);
// Store the listener
messageListeners.put(getName(), messageListener);
// Creates parent controller dispatcher for this delegate. The dispatcher is wired
// with this delegate's listener.
UimaAsContext uimaAsContext2 = new UimaAsContext();
// Set up as many reply threads as there are threads to process requests
uimaAsContext2.setConcurrentConsumerCount(concurrentReplyConsumers);
uimaAsContext2.put("EndpointName", endpointName);
UimaTransport parentVmTransport = parentController.getTransport(uimaAsContext2, endpointName);
parentVmTransport.produceUimaMessageDispatcher(vmTransport);
// Creates parent listener for receiving replies from this delegate.
UimaMessageListener parentListener = parentVmTransport.produceUimaMessageListener();
// Plug in message handlers
parentListener.initialize(uimaAsContext2);
// Creates delegate's dispatcher. It is wired to send replies to the parent's listener.
vmTransport.produceUimaMessageDispatcher(parentVmTransport);
// Register input queue with JMX. This is an internal (non-jms) queue where clients
// send requests to this service.
vmTransport.registerWithJMX(this, "VmInputQueue");