org.apache.james.imapserver
Interface IMAPSystem

All Superinterfaces:
org.apache.avalon.framework.component.Composable, org.apache.avalon.framework.configuration.Configurable, org.apache.avalon.framework.context.Contextualizable
All Known Implementing Classes:
SimpleSystem

public interface IMAPSystem
extends org.apache.avalon.framework.configuration.Configurable, org.apache.avalon.framework.context.Contextualizable, org.apache.avalon.framework.component.Composable

An IMAP4rev1 messaging system, possible containing multiple Hosts. There should be one instance of this class per instance of James.

An IMAP messaging system may span more than one server. References: rfc 2060, rfc 2193, rfc 2221

Version:
0.1 on 14 Dec 2000
Author:
Charles Benett
See Also:
Host

Field Summary
static java.lang.String IMAP_SYSTEM
           
static java.lang.String OTHER_USERS
           
static java.lang.String PRIVATE
           
static java.lang.String ROLE
           
static java.lang.String SHARED
           
 
Method Summary
 java.util.Iterator getAccessibleServers(java.lang.String username)
          Returns an iterator over the collection of servers on which this user has access.
 java.lang.String getHierarchySeperator(java.lang.String namespace)
          Returns the character used as a mail hierarchy seperator in a given namespace.
 java.lang.String getHomeServer(java.lang.String username)
          Returns the home server (server with user's INBOX) for specified user.
 java.lang.String getNamespaces(java.lang.String username)
          Provides the set of namesapces a given user can access.
 java.lang.String getNamespaceToken()
          Returns the token indicating a namespace.
 
Methods inherited from interface org.apache.avalon.framework.configuration.Configurable
configure
 
Methods inherited from interface org.apache.avalon.framework.context.Contextualizable
contextualize
 
Methods inherited from interface org.apache.avalon.framework.component.Composable
compose
 

Field Detail

ROLE

public static final java.lang.String ROLE

IMAP_SYSTEM

public static final java.lang.String IMAP_SYSTEM

PRIVATE

public static final java.lang.String PRIVATE

OTHER_USERS

public static final java.lang.String OTHER_USERS

SHARED

public static final java.lang.String SHARED
Method Detail

getNamespaceToken

public java.lang.String getNamespaceToken()
Returns the token indicating a namespace. Implementation dependent but by convention, '#'. Example: #news.org.apache vs #mail.org.apache

getHomeServer

public java.lang.String getHomeServer(java.lang.String username)
                               throws AuthenticationException
Returns the home server (server with user's INBOX) for specified user. Enables Login Referrals per RFC2221. (Ie user attempts to login to a server which is not their Home Server.) The returned string must comply with RFC2192, IMAP URL Scheme.
Parameters:
username - String representation of a user
Throws:
AuthenticationException - if this System does not recognise the user.

getHierarchySeperator

public java.lang.String getHierarchySeperator(java.lang.String namespace)
Returns the character used as a mail hierarchy seperator in a given namespace. A namespace must use the same seperator at all levels of hierarchy.

Recommendations (from rfc 2683) are period (US)/ full stop (Brit), forward slash or backslash.

Parameters:
namespace - String identifying a namespace

getNamespaces

public java.lang.String getNamespaces(java.lang.String username)
Provides the set of namesapces a given user can access. Implementations should but are not required to reveal all namespaces that a user can access. Different namespaces may be handled by different IMAPHosts
Parameters:
username - String identifying a user of this System

getAccessibleServers

public java.util.Iterator getAccessibleServers(java.lang.String username)
Returns an iterator over the collection of servers on which this user has access. The collection should be unmodifiable. Enable Mailbox Referrals - RFC 2193.
Parameters:
username - String identifying a user
Returns:
iterator over a collection of strings


Copyright © 2001 Apache Jakarta Project. All Rights Reserved.