Stefano Bagnara wrote:

> > It used to be kept out of MOST of the Matchers and Mailets.
> > IIRC, at one point it was only in RemoteDelivery, and then
> I added it (by necessity) to the quota code.  Likewise, Mark
> did evil :-) things with the CommandListServ configuration code.

> Here is a list of mailets/matchers/commands having avalon dependencies:

Right.

> AbstractStorageQuota.java (2 matches)

I did that one.  Needed it to get at the user repository info, which should be 
replaced by JNDI and/or Mailet API enhancements.

Danny really wants to keep the Mailet API small and sweet, but maybe we should 
look at some supplemental packages to keep the core API small and still add 
some other concepts.

> BayesianAnalysis.java (3 matches)
> BayesianAnalysisFeeder.java (3 matches)
> JDBCVirtualUserTable.java (3 matches)
> WhiteListManager.java (3 matches)
> IsInWhiteList.java (3 matches)

Most of those are relatively new, and use it only to get the datasource, which 
can be easily replaced with a JNDI lookup.

> BaseCommand.java (2 matches)
> CommandListservFooter.java
> CommandListservManager.java (3 matches)
> CommandListservProcessor.java (2 matches)
> ICommandListservManager.java (2 matches)
> IListServCommand.java (2 matches)
> Subscribe.java (2 matches)
> SubscribeConfirm.java (2 matches)
> UnSubscribe.java (2 matches)
> UnSubscribeConfirm.java (2 matches)
> Info.java (2 matches)
> Owner.java (2 matches)
> ErrorCommand.java (2 matches)

Right, this is what Mark did to get more sophisticated configuration than the 
Mailet API provides.  All of this would be replaced by switching to a more 
sophisticated configuration in the Mailet API, to which we have at long last 
agreed to expand beyond the flat mailet configuration and too-simple matcher 
configuration.

> AvalonListserv.java (2 matches)
> AvalonListservManager.java (2 matches)
> JDBCAlias.java (3 matches)
> JDBCListserv.java (3 matches)

Obsolete and ready to deprecate, IMO.

> FromRepository.java (4 matches)

Would be replaced by standard (JNDI) lookup of mail repositories.

> RemoteDelivery.java (4 matches)

One aspect would be replaced by a JNDI DNS lookup (or adding functionality to 
the MailetContext), the other by the new spooler.

> ToMultiRepository.java (4 matches)
> ToRepository.java (4 matches)
> UsersRepositoryAliasingForwarding.java (2 matches)

This was recently caused by not using the MailetContext.

> Well, James depends on almost 50% of classes defined in the 
> avalon-framework-api-4.3.jar file. It is a 32K jar with very
> few interfaces, but we really use most of it in james code.

The matchers and mailets can be re-isolated from Avalon as above.  The protocol 
handlers can be addressed as discussed a bit earlier today.  The user 
repository and message store should to be replaced, anyway.  Logging for 
matchers, mailets and handlers should be provided by the container, either as 
currently or via a standard API (Commons Logging or java.util.logging).

> as I already said the most critical imho is the 
> Configuration/Configurable interface.

We talked at ApacheCon about basing a new org.apache.mailet configuration 
package on Jakarta Commons Configuration.

> About the ServiceManager we can either create our "Service locator" 
> interfaces/code in james

No need to reinvent something for which we've had a Java standard for years.

        --- Noel


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to