Markus Wiederkehr wrote:
On Fri, Jan 23, 2009 at 4:57 PM, Oleg Kalnichevski <ol...@apache.org> wrote:
 <snip>

Folks

Take it for what it is worth to you.

In the HttpClient / HttpComponents land we have to deal with lots of
various HTTP protocol violations (or shall I say imperfections). There
has always been a lot of requests from users to incorporate workarounds
for their immediate problems into the stock version of HttpClient. The
only feasible approach that worked for us was to provide a plug-in
mechanism for components that might require different degree of
tolerance to a particular type of HTTP messages and to let the users
provide custom implementations that suited their specific application
needs.

Oleg

I like that idea.. What mechanism do you use to inject the plug-ins?
System properties or something more sophisticated?


We use basic constructor / setter injection, so that the users could put things together either with a DI framework of their choice or manually.

With Mime4j we have AbstractEntity.newBodyDescriptor() which is
responsible for creating a MutableBodyDescriptor.. Maybe this could be
the place where a custom body descriptor could be injected.
DefaultBodyDescriptor could do some of the parsing in protected
methods to allow a subclass to overwrite them..


Sounds reasonable to me. Something along these lines:

interface BodyDescriptorFactory {

  MutableBodyDescriptor create(
    BodyDescriptor pParent,
    MimeEntityConfig config);

}

Oleg

There may be better solutions of course..

Markus

---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org

Reply via email to