[ 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 if > 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 enabled="false"> > 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: http://issues.apache.org/jira/secure/Administrators.jspa - If you want more information on JIRA, or have a bug to report see: http://www.atlassian.com/software/jira --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
