james-server-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Noel J. Bergman" <n...@devtech.com>
Subject RE: Wanted: Volunteers for Fast-Fail Proposal/Implementation
Date Tue, 10 May 2005 00:41:37 GMT
Danny Angus wrote:

> > Two items I want to run by the list.
> > In-Protocol processor for SMTP handler:

> I don't like this, sorry mate, because (pls read all of this, it is
> *constructive*):

> I would propose an alternative architecture for James (not the mailet
> API yet) which looks like this..

I am feeling a bit snarky at the moment, but did you and the others who
replied, happen to read the REST of my e-mail, or just the first part?
Everyone developed tunnel vision on the in-process processor, and not one of
you commented on the protocol handler chain, which had already addressed
every one of your concerns.  To repeat, with emphasis:

"The *OTHER* of the *TWO* things I want to discuss is a change to how the
SMTP handler is structured.  I want to suggest a chained approach, although
I'm not entirely sure of which of a couple directions would be best.

The code currently in the handler that pulls and parses messages would be
factored out.  The code that it dispatches to would be formalized in an
interface for the protocol handler.  Each event: connection, HELO, MAIL
FROM, RCPT TO, etc. would have a corresponding method in the protocol
specific interface.  Our code would implement that interface, but so would
fast-fail filters.  The outside loop, either MINA based or socket-based,
would take the each complete command and dispatch it to the chain, at which
point either the container would iterate over the handler chain, or we would
use a doNext type approach.  This would give us a nice pluggable
architecture for fast-fail on a per-event basis."

I even laid out how this fits in with Mike Heath's work on MINA, and how we
can accommodate the use of *either* MINA or the current socket-based code.

The in-protocol processor and protocol handler chain are complementary

	--- Noel

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

View raw message