| <?xml version="1.0"?> |
| <!-- |
| Licensed to the Apache Software Foundation (ASF) under one |
| or more contributor license agreements. See the NOTICE file |
| distributed with this work for additional information |
| regarding copyright ownership. The ASF licenses this file |
| to you under the Apache License, Version 2.0 (the |
| "License"); you may not use this file except in compliance |
| with the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, |
| software distributed under the License is distributed on an |
| "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| KIND, either express or implied. See the License for the |
| specific language governing permissions and limitations |
| under the License. |
| --> |
| <document> |
| |
| <properties> |
| <title>Mailbox API</title> |
| </properties> |
| |
| <body> |
| |
| <section name="Mailbox API Responsibility"> |
| <p>This module contains the interfaces and exceptions to be used by the |
| mailbox clients. It represents the "external view" of the mailbox |
| library client.</p> |
| <p>The services the mailbox library provides can be summarized as "store/retrieve/search/delete mails" |
| and update the mails metadata (via uid and flags)</p> |
| <p>The main entrance interfaces are represented by 3 managers, each responsible |
| for a specific area: the mailbox manager, the message manager and the |
| subscription manager.</p> |
| <p>For example, Apache James Server injects the managers in the POP3, SMTP, IMAP4 servers |
| and in the Mailet container.</p> |
| <p>Each implementation <a href="mailbox-memory.html">Memory</a>, |
| <a href="mailbox-jpa.html">JPA</a>) is responsible |
| to implement the management interfaces. All "common/util" implementations |
| reside in the <a href="mailbox-store.html">Mailbox Store</a> module.</p> |
| </section> |
| |
| <section name="Manager Interfaces"> |
| |
| <subsection name="Mailbox Manager"> |
| <p>The Mailbox Manager is responsible for session creation, operations on mailbox (create, delete, search) |
| and to return a Message Manager. It also allows to copy and list messages. |
| </p> |
| |
| <ul> |
| Mailbox manager capabilities represents which operations a mailbox manager is able to support. For now the list is : |
| <li>Basic: supports all basic operations</li> |
| <li>Move: implements the move capability</li> |
| </ul> |
| |
| <!-- |
| Image is no more in line with trunk |
| <p><img src="images/uml/org-apache-james-mailbox-api-mailboxmanager.png"/></p> |
| --> |
| </subsection> |
| |
| <subsection name="Message Manager"> |
| <p>The Message Manager is responsible to create, delete message and its associated metadata (the uid and the flags).</p> |
| <!-- |
| Image is no more in line with trunk |
| <p><img src="images/uml/org-apache-james-mailbox-api-messagemanager.png"/></p> |
| --> |
| </subsection> |
| |
| <subsection name="Subscription Manager"> |
| <p>The Subscription Manager is responsible for the (un)subscription between a user and a mailbox.</p> |
| <!-- |
| Image is no more in line with trunk |
| <p><img src="images/uml/org-apache-james-mailbox-api-subscriptionmanager.png"/></p> |
| --> |
| </subsection> |
| |
| </section> |
| <!-- |
| <section name="Other Interfaces and Classes"> |
| Image is no more in line with trunk |
| <p><img src="images/uml/org-apache-james-mailbox-api-msc.png"/></p> |
| </section> |
| --> |
| </body> |
| |
| </document> |