[ 
https://issues.apache.org/jira/browse/JAMES-347?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Norman Maurer resolved JAMES-347.
---------------------------------

       Resolution: Fixed
    Fix Version/s: 3.0-M1
                   3.0

I think thats done now

> make POP3Handler.java/POP3Server.java and AvalonUsersStore.java extensible
> --------------------------------------------------------------------------
>
>                 Key: JAMES-347
>                 URL: https://issues.apache.org/jira/browse/JAMES-347
>             Project: JAMES Server
>          Issue Type: Improvement
>          Components: POP3Server
>    Affects Versions: 2.3.0
>         Environment: any
>            Reporter: Ralf Hauser
>            Priority: Minor
>             Fix For: 3.0, 3.0-M1
>
>
> 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.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to