[ 
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]

Reply via email to