org.apache.james.mailrepository
Class AvalonMailRepository

java.lang.Object
  extended by org.apache.avalon.framework.logger.AbstractLogEnabled
      extended by org.apache.james.mailrepository.AvalonMailRepository
All Implemented Interfaces:
org.apache.avalon.framework.activity.Initializable, org.apache.avalon.framework.configuration.Configurable, org.apache.avalon.framework.logger.LogEnabled, org.apache.avalon.framework.service.Serviceable, MailRepository
Direct Known Subclasses:
AvalonSpoolRepository

public class AvalonMailRepository
extends org.apache.avalon.framework.logger.AbstractLogEnabled
implements MailRepository, org.apache.avalon.framework.configuration.Configurable, org.apache.avalon.framework.service.Serviceable, org.apache.avalon.framework.activity.Initializable

Implementation of a MailRepository on a FileSystem. Requires a configuration element in the .conf.xml file of the form: <repository destinationURL="file://path-to-root-dir-for-repository" type="MAIL" model="SYNCHRONOUS"/> Requires a logger called MailRepository.

Version:
1.0.0, 24/04/1999

Field Summary
protected static boolean DEEP_DEBUG
          Whether 'deep debugging' is turned on.
 
Fields inherited from interface org.apache.james.services.MailRepository
MAIL, ROLE
 
Constructor Summary
AvalonMailRepository()
           
 
Method Summary
 void configure(org.apache.avalon.framework.configuration.Configuration conf)
           
 void initialize()
           
 java.util.Iterator list()
          List string keys of messages in repository.
 boolean lock(java.lang.String key)
          Obtains a lock on a message identified by a key
 void remove(java.util.Collection mails)
          Removes a Collection of mails from the repository
 void remove(Mail mail)
          Removes a specified message
 void remove(java.lang.String key)
          Removes a message identified by key.
 Mail retrieve(java.lang.String key)
          Retrieves a message given a key.
 void service(org.apache.avalon.framework.service.ServiceManager componentManager)
           
 void store(Mail mc)
          Stores a message in this repository.
 boolean unlock(java.lang.String key)
          Releases a lock on a message identified by a key
 
Methods inherited from class org.apache.avalon.framework.logger.AbstractLogEnabled
enableLogging, getLogger, setupLogger, setupLogger, setupLogger
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEEP_DEBUG

protected static final boolean DEEP_DEBUG
Whether 'deep debugging' is turned on.

See Also:
Constant Field Values
Constructor Detail

AvalonMailRepository

public AvalonMailRepository()
Method Detail

service

public void service(org.apache.avalon.framework.service.ServiceManager componentManager)
             throws org.apache.avalon.framework.service.ServiceException
Specified by:
service in interface org.apache.avalon.framework.service.Serviceable
Throws:
org.apache.avalon.framework.service.ServiceException
See Also:
org.apache.avalon.framework.service.Serviceable#compose(ServiceManager )

configure

public void configure(org.apache.avalon.framework.configuration.Configuration conf)
               throws org.apache.avalon.framework.configuration.ConfigurationException
Specified by:
configure in interface org.apache.avalon.framework.configuration.Configurable
Throws:
org.apache.avalon.framework.configuration.ConfigurationException
See Also:
Configurable.configure(Configuration)

initialize

public void initialize()
                throws java.lang.Exception
Specified by:
initialize in interface org.apache.avalon.framework.activity.Initializable
Throws:
java.lang.Exception
See Also:
Initializable.initialize()

unlock

public boolean unlock(java.lang.String key)
Releases a lock on a message identified by a key

Specified by:
unlock in interface MailRepository
Parameters:
key - the key of the message to be unlocked
Returns:
true if successfully released the lock, false otherwise

lock

public boolean lock(java.lang.String key)
Obtains a lock on a message identified by a key

Specified by:
lock in interface MailRepository
Parameters:
key - the key of the message to be locked
Returns:
true if successfully obtained the lock, false otherwise

store

public void store(Mail mc)
           throws javax.mail.MessagingException
Stores a message in this repository. Shouldn't this return the key under which it is stored?

Specified by:
store in interface MailRepository
Parameters:
mc - the mail message to store
Throws:
javax.mail.MessagingException

retrieve

public Mail retrieve(java.lang.String key)
              throws javax.mail.MessagingException
Retrieves a message given a key. At the moment, keys can be obtained from list() in superinterface Store.Repository

Specified by:
retrieve in interface MailRepository
Parameters:
key - the key of the message to retrieve
Returns:
the mail corresponding to this key, null if none exists
Throws:
javax.mail.MessagingException

remove

public void remove(Mail mail)
            throws javax.mail.MessagingException
Removes a specified message

Specified by:
remove in interface MailRepository
Parameters:
mail - the message to be removed from the repository
Throws:
javax.mail.MessagingException

remove

public void remove(java.util.Collection mails)
            throws javax.mail.MessagingException
Removes a Collection of mails from the repository

Specified by:
remove in interface MailRepository
Parameters:
mails - The Collection of MailImpl's to delete
Throws:
javax.mail.MessagingException
Since:
2.2.0

remove

public void remove(java.lang.String key)
            throws javax.mail.MessagingException
Removes a message identified by key.

Specified by:
remove in interface MailRepository
Parameters:
key - the key of the message to be removed from the repository
Throws:
javax.mail.MessagingException

list

public java.util.Iterator list()
List string keys of messages in repository.

Specified by:
list in interface MailRepository
Returns:
an Iterator over the list of keys in the repository


Copyright © 2002-2007 The Apache Software Foundation. All Rights Reserved.