Jukka Zitting ha scritto: > Hi, > > I'm working on the JCR mail repository for James, and I'd like to > better understand the Mail and MailRepository interfaces. > > a) Should implementations of the MailRepository class be thread-safe?
YES > b) Should the Avalon lifecycle interfaces be used when implementing > MailRepository? If you need a lifecycle yes. If you don't have resources/dependencies/configuration/initialization you can skip this. My suggestion is to place the core non-avalon code in the main class and then write an avalonized wrapper to that class (or an extended version implementing avalon interfaces). > c) What parts of a mail message need to be stored when > MailRepository.store(Mail) is called? For example should the mail name > (Mail.getName()) or attributes (Mail.hasAttributes(), etc.) be stored? the name is the key used to retrieve it later. attributes must be persisted. Every property you see in the Mail object is persisted (name, sender, recipients, remoteaddr, remotehost, errormessage, message, state, lastupdated). > d) Should mailRepository.store(mailRepository.retrieve(...)) update > the existing message or create a new one? Update the existing message. Store using an existing key is an update. Store using a new key is an insert. > e) Should mailRepository.retrieve(...).setMessage(...) update the mail > repository? no. You have to call store if you want to update the repository. > f) Should mailRepository.retrieve(...).getMessage().setFrom(...) > update the mail repository? same as "e)" > g) Should mail.setRecipients(...) affect > mail.getMessage().getAllRecipients()? No. mail recipients are the envelope recipients and are not related to the mimemessage header recipients. A repository implementation should completely ignore the "message" content and behaviour. > h) Should mail.getMessage().addRecipients(...) affect mail.getRecipients()? same as "g)". > I'll probably come up with more questions, but I guess these are a > good starting point. :-) You're welcome :-) > BR, > > Jukka Zitting Maybe some of this things should be changed, I simply replied with what the current code does and expects. Stefano --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
