james-server-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ralf Hauser (JIRA)" <server-...@james.apache.org>
Subject [jira] Commented: (JAMES-347) make POP3Handler.java/POP3Server.java and AvalonUsersStore.java extensible
Date Tue, 11 Jan 2005 14:09:15 GMT
     [ http://issues.apache.org/jira/browse/JAMES-347?page=comments#action_57515 ]
Ralf Hauser commented on JAMES-347:

Same desire applies to RemoteManager.java and the corresponding handler and config. I faintly
remember that in the Swing GUI, "Delegation" was used to glue the V+C of the MVC. It would
helpful if Danny could elaborate a little bit how this would work here.

> make POP3Handler.java/POP3Server.java and AvalonUsersStore.java extensible
> --------------------------------------------------------------------------
>          Key: JAMES-347
>          URL: http://issues.apache.org/jira/browse/JAMES-347
>      Project: James
>         Type: Improvement
>   Components: POP3Server
>     Versions: 2.2.1
>  Environment: any
>     Reporter: Ralf Hauser
>     Priority: Minor

> As discussed in James 288, my application of james i) needs more memory efficiency and
ii) unfortunately needs to remain with "db store" and iii) adds some extra logic to the pop
implementation (see http://p4u.ch)
> In order to allow for such extensions without requiring duplication of existing code
that is perfectly ok for my purposes (most of the POP3Handler.do*() methods), it would great
> 1) the methods of POP3Handler.java would not be of type "private" such that classes extending
POP3Handler.java could use them if there is no need to overwrite them (the same applies to
the "final static String OK_RESPONSE="... and alike) even if the extending class is not in
the same directory
> 2) similarly, make org.apache.james.core.AvalonUsersStore extensible by making its contents
also accessible to extending classes thereof (the methods are "public", but the content only
"protected" - so either provide getters and setters or make them public)
> 3) ditto org.apache.james.pop3server.POP3Server - then I could specify the extended class
in james-assembly without having to copy all unchanged methods. If in org.apache.james.pop3server.POP3Server.POP3HandlerFactory.newInstance()
were to create a configurable handler object as suggested in "4)" and not the hard-coded POP3Handler,
extending the POP3Server might not even be necessary
> 4) in the config, allow to specify other (extended) classes for james-assembly's role="org.apache.james.services.UsersStore"
much like the struts-config.xml's <message-resources null="false" ...
>       className="...MessageResourcesConfigExtension" /> does where either the default
class is used or an own implementation will be used 
> - another little difficulty is that it doesn't appear to be possible to use an extended
UserStore just for pop3server, but not the others since ins assembly.xml, I can only specify
one user-store in the <!-- The User Storage block -->  <block name="users-store"
> - furthermore, the compose method of each AbstractJamesService such as org.apache.james.smtpserver.SMTPServer
all lookup("org.apache.james.services.UsersStore") that is hard-coded
> - also, that compose() method is executed even if though my config.xml says <smtpserver
> Reasons for doing all these extensions:
> * above-mentioined efficiency
> * being able to provide error messages in the user's language (nls/i18n)
> * being able to perform the authentication test with additional parameters such as remotehost,
etc., SSL session ID, ...
> * additional security/privacy/DSN logic as implemented http://p4u.ch

This message is automatically generated by JIRA.
If you think it was sent incorrectly contact one of the administrators:
If you want more information on JIRA, or have a bug to report see:

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

View raw message