[ 
https://issues.apache.org/jira/browse/CXF-1835?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12642450#action_12642450
 ] 

Freeman Fang commented on CXF-1835:
-----------------------------------

Hi Sergey,

It should be CXF runtime -> SMX BC. Basically, smx bc are sets of cxf 
interceptors. It receive the request from cxf transport.
After recieve  soap messge  from the cxf http/jms transport, serveral 
interceptor (also cxf concept interceptor) exist in smx code base transform the 
soap message to jbi message, and then we have a JbiInvokerInterceptor, which 
not really do some invocation, but just send the jbi message to the NMR 
(servicemix Normalized message router). the import code is here
               if (CxfBcConsumer.this.isSynchronous()
                        && !CxfBcConsumer.this.isOneway) {
                    context.getDeliveryChannel().sendSync(exchange,
                            timeout);
                    process(exchange);
                } else {
                     synchronized 
(CxfBcConsumer.this.messages.get(exchange.getExchangeId())) {
                         context.getDeliveryChannel().send(exchange);
                         
CxfBcConsumer.this.messages.get(exchange.getExchangeId()).wait(timeout);
                     }

                }
So you can see if its asynchronous way,  we use 
context.getDeliveryChannel().send(exchange); this is a nonblock invocation, but 
after that, currently we have to block here until we get response from the NMR, 
otherwise the Interceptor chain will return without get correct response. What 
we actully want is we can suspend the interceptorchain during  waiting response 
from NMR, and resume the interceptorchain gracefully when the response is 
arriving. For http transport, the jetty continuation may be a choice, similiar 
issue should be taken into account when use jms transport. 

Thanks
Freeman

> Use Jetty Continuations to implement asynchronous HTTP processing
> -----------------------------------------------------------------
>
>                 Key: CXF-1835
>                 URL: https://issues.apache.org/jira/browse/CXF-1835
>             Project: CXF
>          Issue Type: Improvement
>          Components: Transports
>    Affects Versions: 2.0.8, 2.1.2
>            Reporter: Ron Gavlin
>
> Current CXF http jetty transport supports injecting a blocking and noblocking 
> connector into the JettyEngine and the default connector is noblocking.
> But we don't use the Continuation to implement the async http processing. 
> This is a request to use Jetty Continuations to implement this functionality.
> See 
> https://issues.apache.org/activemq/browse/SM-1592?focusedCommentId=46039#action_46039
>  for feedback by Willem Jiang.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to