Hi Freeman

Just curious, what is the difference between Netty and Undertow CXF transports ?

Thanks, Sergey


On 26/02/16 04:03, Freeman Fang wrote:
Hi Team,

I just push commit to master to add cxf http-undertow transport.

This is pretty much like how the cxf http-jetty transport works but start an 
embedded undertow server instead when launch a standalone cxf/camel-cxf 
endpoint.

As in Apache Camel there's already a camel-undertow component and in the 
upcoming Karaf 4.1(which will use OPS4J PAX-WEB 6), there's also an undertow 
http-osgi service implementation, so I think it should be good in CXF we also 
has a http-undertow transport so that end user has more option to chose the 
http transport they wanna use.

Most configuration which works for jetty engine like 
threading/TLS/maxIdleTime/continuationsEnabled/handlers/host/port are still 
works for undertow(of course here handler is the undertow style handler but not 
the jetty handler), however the sendServerVersion/connector/reuseAddress not 
applicable anymore in undertow(I will add a doc page soon).

For the end user who ever use http-jetty transport, if they wanna try the 
http-undertow transport, they just need change the dependency from 
cxf-rt-transports-http-jetty to cxf-rt-transports-http-undertow, and change the 
configuration xml(if there’s any) namespace to the undertow one.
e.g. replace
xmlns:httpj="http://cxf.apache.org/transports/http-jetty/configuration”
with
xmlns:httpu="http://cxf.apache.org/transports/http-undertow/configuration";

In the patch file I appended with CXF-6800 I just follow this way using a 
script to replace the namespace in configuration files and those existing 
system tests running against the http-jetty just passed with http-undertow.


NOTE, my commit to community master not change the existing system tests as I 
do in the patch appended with CXF-6800(That’s just the tests on my own branch 
so that I’m confident everything works with http-undertow as well). Also I ran 
camel-cxf related test against http-undertow transport and they passed.

My commit have two new modules

rt/transports/http-undertow
This is similar as the rt/transports/http-jetty, but no Undertow specific 
Continuation Provider/Wrapper because we reuse the general 
Servlet3ContinuationProvider which will call into Undertow implementation of 
Servlet3 async api.

systests/transport-undertow
Where I revise several http-jetty system test to demonstrate how the 
https/Session/Continuation(Servlet3 async api implementation in 
undertow)/ThreadPool/Undertow Handlers(for BasicAuthTest and DigestAuthTest) 
works and configures with http-undertow.

Any feedback is appreciated.

Thanks!
-------------
Freeman(Yue) Fang

Red Hat, Inc.
FuseSource is now part of Red Hat





Reply via email to