james-server-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Danny Angus" <da...@apache.org>
Subject RE: Supporting multiple "root processor"s in James 1.3?
Date Sun, 20 Apr 2003 21:36:42 GMT
I agree with Sid about that, but still think that being able to specify
which is "root" for each SMTP vhost would go a long way to supporting
address based hosting for SMTP.
  -----Original Message-----
  From: Sid Stuart [mailto:sid@weaselworks.com]
  Sent: 20 April 2003 22:20
  To: James Developers List
  Subject: Re: Supporting multiple "root processor"s in James 1.3?

  Noel J. Bergman wrote:

The cleanest solution would be to have a second "root processor",
defined specifically to deal with mail queued in the error repository.

No, you just need an option to specify which processor to inject the mail
into, e.g., the "transport" processor.

	--- Noel
  I haven't checked to see how this works, but I worry a bit about
programatic selection of processors. The root processor defines a
(hopefully) non-looping tree of processors. If a mailet selects a processor
that is a point in the tree above where the mailet it normally called, it
would introduce a processing loop.

  The problem is it is not obvious whether a mailet sets a new processor
queue and which processor it does call when defining the XML tree. This is
not too much of a problem now, but could lead to a fragile system as the
number of mailets grows. One would need to understand the details of each
when building the tree in an XML definition to be sure loops are not

  I suggest requiring mailets that forward to new processors pick up the
name of the processor from the XML definition. In other words, change
setQueue to not accept an argument, but to use a parameter specified in the
XML file. (The name of the method could be refactored at the same time. :)
That way, the flow of control is defined in one location and  loop detection
should be easy to do during the XML parsing phase.

  Also, while I have not made a strong case for it, I want to be able to use
mailets to define a custom processing mechanism for mail that has been
delivered. I very much believe having multiple root processors that act on
messages with different attributes (spooled, delivered, dead-letter...) to
be a big win.


View raw message