> - How would we add a Matcher/Mailet?
> Update the configuration, rebuild the mailet chain and send init() to the
> added mailet.

We need to have a graceful way to stop the spooler and processors without mail being 
abandoned between mailets where some processing related to a task (processor) has 
occured but not all of it.

> - How would we remove a Matcher/Mailet?
> Update the configuration, rebuild the mailet chain and send 
> destroy() to the
> removed mailet.

ditto above, the problem being when we pause mail destined for a removed mailet, where 
does it go when we resume.


> - How would we modify a Matcher/Mailet?
> Update the configuration and send refresh() to the modified mailet.
> 
> Only two new concepts are introduced here, an updateable configuration and
> the addition of the refresh() method to the Mailet and Matcher interfaces.

I'd rather call it reconfigure()

> Adding the refresh() method to the Mailet and Matcher interfaces 
> would break
> pre-existing code.

Not if we declare it in another interface which mailets can optionally implement and 
only offer reconfiguration to those that do support it.

> So, dynamic reconfiguration of the Transport Matchers and Mailets could be
> achieved more easily than full dynamic reconfiguration which 
> requires Avalon
> support, but not without a fir amount of effort.

The effort is the big stumbling block.


> I am not sure what the demand for dynamic reconfiguration is. Its 
> great for
> developers in a code/test/fix cycle, lethal if abused in a production
> environment but sometimes a life-saver.

I think it is most in demand for production, where small mailet pipeline config 
changes shouldn't require us to stop the IO protocols.
Perhaps we want to change the destination of a "forward" or something else 
"operational"

In fact it would also be nice if we could reconfigure things like DNS, Postmaster 
address etc.

> 
> Maybe others would wish to comment on if its worth the effort?

Big effort but ultimatly YES worth it if its done well.

d.

Reply via email to