Stefano Bagnara wrote:
1. Why MailRepository gets configured on startup?
Every MAIL repository used by ToRepository and FromRepository
mailets, the SPOOL repository used by RemoteDelivery and the main
SPOOL repository used by the JamesSpoolManager (localspoolrepository)
are created/configured when the components are initialized.
On startup a MailRepository object gets configured with
destinationURL="whatever://var/mail/inboxes/" and initialized. That
MailRepository object won't ever be used. So I shouldn't do anything
in initialize method at that time, but how can I determine that?
Can you tell me where does this happens?
I cannot find this in the code.
I don't know where and why it happens exactly. But I found something in
the mailstore.log: (at startup)
24/05/06 13:42:15 INFO mailstore: JamesMailStore init...
24/05/06 13:42:15 INFO mailstore: Registering Repository instance of
class org.apache.james.mailrepository.AvalonMailRepository to handle
file protocol requests for repositories of type MAIL
24/05/06 13:42:15 INFO mailstore: Registering Repository instance of
class org.apache.james.mailrepository.AvalonSpoolRepository to handle
file protocol requests for repositories of type SPOOL
...
24/05/06 13:42:15 INFO mailstore: Registering Repository instance of
class org.apache.james.mailrepository.UIDPlusFolderMailRepository to
handle maildir protocol requests for repositories of type MAIL
...
24/05/06 13:42:17 DEBUG mailstore: obtained repository:
org.apache.james.mailrepository.UIDPlusFolderMailRepository to handle:
maildir,MAIL
24/05/06 13:42:17 DEBUG mailstore: maildir service
24/05/06 13:42:17 DEBUG mailstore: maildir configure
24/05/06 13:42:17 DEBUG mailstore: MaildirMailRepository.destinationURL:
maildir://var/mail/inboxes/
24/05/06 13:42:17 DEBUG mailstore: destination:
maildir:///apps/james/var/mail/inboxes/Maildir/
24/05/06 13:42:17 DEBUG mailstore: maildir configured
24/05/06 13:42:17 DEBUG mailstore: maildir initialized
And when it's demanded for a specific user:
24/05/06 13:44:51 DEBUG mailstore: obtained repository:
org.apache.james.mailrepository.UIDPlusFolderMailRepository to handle:
maildir,MAIL
24/05/06 13:44:51 DEBUG mailstore: maildir service
24/05/06 13:44:51 DEBUG mailstore: maildir configure
24/05/06 13:44:51 DEBUG mailstore: MaildirMailRepository.destinationURL:
maildir://var/mail/inboxes/joachim2/
24/05/06 13:44:51 DEBUG mailstore: destination:
maildir:///apps/james/var/mail/inboxes/joachim2/Maildir/
24/05/06 13:44:51 DEBUG mailstore: maildir configured
24/05/06 13:44:51 DEBUG mailstore: maildir initialized
24/05/06 13:44:51 INFO mailstore: added repository:
maildir://var/mail/inboxes/joachim2/MAIL->org.apache.james.mailrepository.UIDPlusFolderMailRepository
I think that happens to every MailRepository that is configured in
config.xml.
<config>
<James>
<inboxRepository>
<repository destinationURL="maildir://var/mail/inboxes/"
type="MAIL"/>
</inboxRepository>
</James>
<mailstore>
<repositories>
<repository
class="org.apache.james.mailrepository.UIDPlusFolderMailRepository ">
<protocols>
<protocol>maildir</protocol>
</protocols>
<types>
<type>MAIL</type>
</types>
</repository>
</repositories>
</mailstore>
</config>
When a MailRepository is demanded for a specific user it get's
configured with destinationURL="whatever://var/mail/inboxes/username".
Of course I can add "if (!open) open();" to every store, list, remove
method, but I just wonder if there is a better way.
What is "open()" ?
MailRepository does not have an open method.
Sorry, just pseudo code. open() creates the the mailbox structure on
disk. It's like "lazy loading". This can't happen in initialize method
because that gets called on James start up
Joachim
24/05/06 13:42:15 INFO mailstore: JamesMailStore init...
24/05/06 13:42:15 INFO mailstore: Registering Repository instance of class
org.apache.james.mailrepository.AvalonMailRepository to handle file protocol
requests for repositories of type MAIL
24/05/06 13:42:15 INFO mailstore: Registering Repository instance of class
org.apache.james.mailrepository.AvalonSpoolRepository to handle file protocol
requests for repositories of type SPOOL
24/05/06 13:42:15 INFO mailstore: Registering Repository instance of class
org.apache.james.mailrepository.JDBCMailRepository to handle db protocol
requests for repositories of type MAIL
24/05/06 13:42:15 INFO mailstore: Registering Repository instance of class
org.apache.james.mailrepository.JDBCSpoolRepository to handle db protocol
requests for repositories of type SPOOL
24/05/06 13:42:15 INFO mailstore: Registering Repository instance of class
org.apache.james.mailrepository.JDBCMailRepository to handle dbfile protocol
requests for repositories of type MAIL
24/05/06 13:42:15 INFO mailstore: Registering Repository instance of class
org.apache.james.mailrepository.JDBCSpoolRepository to handle dbfile protocol
requests for repositories of type SPOOL
24/05/06 13:42:15 INFO mailstore: Registering Repository instance of class
org.apache.james.mailrepository.MBoxMailRepository to handle mbox protocol
requests for repositories of type MAIL
24/05/06 13:42:15 INFO mailstore: Registering Repository instance of class
org.apache.james.mailrepository.UIDPlusFolderMailRepository to handle maildir
protocol requests for repositories of type MAIL
24/05/06 13:42:17 DEBUG mailstore: obtained repository:
org.apache.james.mailrepository.JDBCSpoolRepository to handle: dbfile,SPOOL
24/05/06 13:42:17 DEBUG mailstore:
org.apache.james.mailrepository.JDBCSpoolRepository.compose()
24/05/06 13:42:17 DEBUG mailstore:
org.apache.james.mailrepository.JDBCSpoolRepository.configure()
24/05/06 13:42:17 DEBUG mailstore: Parsed URL: table = 'spool', repositoryName
= 'spool'
24/05/06 13:42:17 DEBUG mailstore: Got filestore for JdbcMailRepository:
file://var/dbmail
24/05/06 13:42:17 DEBUG mailstore:
org.apache.james.mailrepository.JDBCSpoolRepository created according to
dbfile://maildb/spool/spool/
24/05/06 13:42:17 DEBUG mailstore:
org.apache.james.mailrepository.JDBCSpoolRepository.initialize()
24/05/06 13:42:17 DEBUG mailstore: Reading SQL resources from file:
B:\java\jamesws\JamesNewTrunk\dist\james-2.4-dev\apps\james\conf\sqlResources.xml,
section org.apache.james.mailrepository.JDBCSpoolRepository.
24/05/06 13:42:17 INFO mailstore: JdbcMailRepository 'spool, table 'spool':
JDBC Mail Attributes support ready.
24/05/06 13:42:17 INFO mailstore: added repository:
dbfile://maildb/spool/spoolSPOOL->org.apache.james.mailrepository.JDBCSpoolRepository
24/05/06 13:42:17 DEBUG mailstore: obtained repository:
org.apache.james.mailrepository.UIDPlusFolderMailRepository to handle:
maildir,MAIL
24/05/06 13:42:17 DEBUG mailstore: maildir service
24/05/06 13:42:17 DEBUG mailstore: maildir configure
24/05/06 13:42:17 DEBUG mailstore: MaildirMailRepository.destinationURL:
maildir://var/mail/inboxes/
24/05/06 13:42:17 DEBUG mailstore: destination:
maildir:///apps/james/var/mail/inboxes/Maildir/
24/05/06 13:42:17 DEBUG mailstore: maildir configured
24/05/06 13:42:17 DEBUG mailstore: maildir initialized
24/05/06 13:42:17 INFO mailstore: added repository:
maildir://var/mail/inboxes/MAIL->org.apache.james.mailrepository.UIDPlusFolderMailRepository
24/05/06 13:42:17 DEBUG mailstore: obtained repository:
org.apache.james.mailrepository.AvalonMailRepository to handle: file,MAIL
24/05/06 13:42:17 DEBUG mailstore: AvalonMailRepository.destinationURL:
file://var/mail/error/
24/05/06 13:42:17 DEBUG mailstore:
org.apache.james.mailrepository.AvalonMailRepository created in
file://var/mail/error/
24/05/06 13:42:17 INFO mailstore: added repository:
file://var/mail/error/MAIL->org.apache.james.mailrepository.AvalonMailRepository
24/05/06 13:42:17 DEBUG mailstore: obtained repository:
org.apache.james.mailrepository.AvalonSpoolRepository to handle: file,SPOOL
24/05/06 13:42:17 DEBUG mailstore: AvalonMailRepository.destinationURL:
file://var/mail/outgoing/
24/05/06 13:42:17 DEBUG mailstore:
org.apache.james.mailrepository.AvalonSpoolRepository created in
file://var/mail/outgoing/
24/05/06 13:42:17 INFO mailstore: added repository:
file://var/mail/outgoing/SPOOL->org.apache.james.mailrepository.AvalonSpoolRepository
24/05/06 13:42:17 DEBUG mailstore: obtained repository:
org.apache.james.mailrepository.AvalonMailRepository to handle: file,MAIL
24/05/06 13:42:17 DEBUG mailstore: AvalonMailRepository.destinationURL:
file://var/mail/spam/
24/05/06 13:42:17 DEBUG mailstore:
org.apache.james.mailrepository.AvalonMailRepository created in
file://var/mail/spam/
24/05/06 13:42:17 INFO mailstore: added repository:
file://var/mail/spam/MAIL->org.apache.james.mailrepository.AvalonMailRepository
24/05/06 13:42:17 DEBUG mailstore: obtained repository:
org.apache.james.mailrepository.AvalonMailRepository to handle: file,MAIL
24/05/06 13:42:17 DEBUG mailstore: AvalonMailRepository.destinationURL:
file://var/mail/address-error/
24/05/06 13:42:17 DEBUG mailstore:
org.apache.james.mailrepository.AvalonMailRepository created in
file://var/mail/address-error/
24/05/06 13:42:17 INFO mailstore: added repository:
file://var/mail/address-error/MAIL->org.apache.james.mailrepository.AvalonMailRepository
24/05/06 13:42:17 DEBUG mailstore: obtained repository:
org.apache.james.mailrepository.AvalonMailRepository to handle: file,MAIL
24/05/06 13:42:17 DEBUG mailstore: AvalonMailRepository.destinationURL:
file://var/mail/relay-denied/
24/05/06 13:42:17 DEBUG mailstore:
org.apache.james.mailrepository.AvalonMailRepository created in
file://var/mail/relay-denied/
24/05/06 13:42:17 INFO mailstore: added repository:
file://var/mail/relay-denied/MAIL->org.apache.james.mailrepository.AvalonMailRepository
24/05/06 13:44:51 DEBUG mailstore: obtained repository:
org.apache.james.mailrepository.UIDPlusFolderMailRepository to handle:
maildir,MAIL
24/05/06 13:44:51 DEBUG mailstore: maildir service
24/05/06 13:44:51 DEBUG mailstore: maildir configure
24/05/06 13:44:51 DEBUG mailstore: MaildirMailRepository.destinationURL:
maildir://var/mail/inboxes/joachim2/
24/05/06 13:44:51 DEBUG mailstore: destination:
maildir:///apps/james/var/mail/inboxes/joachim2/Maildir/
24/05/06 13:44:51 DEBUG mailstore: maildir configured
24/05/06 13:44:51 DEBUG mailstore: maildir initialized
24/05/06 13:44:51 INFO mailstore: added repository:
maildir://var/mail/inboxes/joachim2/MAIL->org.apache.james.mailrepository.UIDPlusFolderMailRepository
24/05/06 13:44:51 DEBUG mailstore: UIDPlusFolder list
24/05/06 13:44:51 INFO mailstore: list: UIDValidity: 1148045725656 UID: 2
Key:james-uid:1148045725656;2;1148471091875;-2604109196052168574
24/05/06 13:44:51 DEBUG mailstore: UIDPlusFolder retrieve
james-uid:1148045725656;2;1148471091875;-2604109196052168574
24/05/06 13:44:51 INFO mailstore: getMessageFromInbox: UIDValidity:
1148045725656 UID: 2
Key:james-uid:1148045725656;2;1148471091875;-2604109196052168574
24/05/06 13:45:35 DEBUG mailstore: UIDPlusFolder remove by Collection 0
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]