cxf-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Glynn, Eoghan" <>
Subject RE: Duplication in http2 module
Date Tue, 30 Jan 2007 15:03:22 GMT

>-----Original Message-----
>From: Willem Jiang []
>Sent: Tue 1/30/2007 4:00 AM
>Subject: Duplication in http2 module
>Hi Eoghan,
>The original thought to add the module http2 was we can replace the 
>Jetty5 with new NIO support Jetty6, than we  can replace http  module 
>with http.
>Unfortunately when I finished the porting , I found the Jetty6 ssl
>is still in a pre-alpha state. So I can move http2 to http.
>There are some my random thoughts about the http2 module.
>1.  making the http transport decouple with the detail Http Transport 
>In this way ,we can share the common http transport logical code with 
>the different Http Transport engines.
>So the CXF can support tomcat , Jetty5 , Jetty6 to provide the 
>standalone web services.

Yes, the whole point is that much of the logic in the servlet, Jetty5-
and Jetty6-based HTTP transports is actually common to all three and
hence is sharable via abstract base classes.

I'd already raised a JIRA issue
( to remove the duplication
from the servlet transport. A similar unification approach could also be
used for the Jetty5 and Jetty6-based HTTP transports.

>2. If we want to support Jetty5 and Jetty6 in the same http transport 
>module, how can we achieve it.

Simply by encapsulating all usage of Jetty-version-specific APIs into
pluggable components. 

>In Jetty <=5, there was an API for pure Jetty HTTP requests and 
>responses. The Jetty requests and responses where wrapped by the 
>ServletHandler to provide the Servlet API for requests and responses.
>In Jetty 6, all requests and responses are based on the Servlet APIs 
>requests and responses.

Sure the APIs are slightly different, but that doesn't prevent sharing
all the code that actually is common. 

Now the refactoring job is made easier by the fact that the logic common
to *all* Destination implementations (i.e. both HTTP and non-HTTP) is
now factored out into an AbstractDestination class. However, there's
still plenty of duplicated and potentially sharable logic in the three
HTTP Destination implementations,  e.g. the logic concerned with
managing HTTP headers, acting on policies and setting message

>May be we need different Jetty factory to create the detail 
>JettyHTTPServerEngine and JettyHTTPDestionation which will consume the 
>different version's Jetty API.
>These will take some time to finish and we also need to wait for the 
>Jetty6 SSL engine stable release. Eoghan, I agree we can put the http2 
>into the branch which will not take effect with the mail line.
>But I have no ideal how to sync the branch with the main line's http 
>transport common logical. Can someone help me out ?

I don't understand what exactly you're asking for help with. Can you


>-----Original Message-----
>From: Glynn, Eoghan []
>Sent: Mon 1/29/2007 18:13
>Subject: Duplication in http2 module [was RE: svn commit: r497869 - 
>The problem with keeping these modules separate is that every change to
>the main http module has to be duplicated manually to the http2 module
>which is time-consuming and error-prone.
>So if the http2 stuff is still in a pre-alpha state, then it should be
>taken off the mainline onto a branch until its ready to either share
>common base classes with the core (Jetty5-based) http transport or
>replace it outright.
> > -----Original Message-----
> > From: Willem Jiang []
> > Sent: 19 January 2007 18:08
> > To:
> > Subject: Re: svn commit: r497869 -
> > /incubator/cxf/trunk/rt/transports/http2/src/main/java/org/apa
> > che/cxf/transport/http/
> >
> > Hi Eoghan,
> >
> > The duplication in http transports is because I don't want
> > the development of the Jetty6 support takes effect to the
> > current code base.
> >
> > Since Jetty6 's ssl support is in pre-alpha state , we don't
> > want to replace Jetty5 with Jetty6 right now, I agree we can
> > move the Jetty6 supporting from rt-tranpsorts-http2 to
> > rt-transports-http to reduce the duplication, and get CXF
> > http-transport more flexible.
> >
> > Cheers,
> >
> > Willem.
> >
> > Glynn, Eoghan wrote:
> > > Hi Willem,
> > >
> > > Why all the duplication in rt-transports-http2?
> > >
> > > If we're going to keep the Jetty5-based rt-transports-http
> > stuff, then
> > > the two modules should be merged so as to avoid duplication, with
> > > common code factored up into abstract base classes.
> > >
> > > I've raised an JIRA task for a similar refactoring of the
> > > duplication-heavy servlet code:
> > >
> > >
> > > Cheers,
> > > Eoghan
> > >
> > >   
> > >>

View raw message