James User Model

For clarity, we have defined various roles for actors who interact with James servers in one way or another. The deliverables we make available are produced with these roles in mind. Note that any given person may play more than one role, even at the same time.

User

A User simply uses email without any notion of what server is providing the service.

More precisely, in typical cases a User will have an email client for reading and writing email. The email client will connect to the James server via SMTP, POP, or IMAP. The User will have no indication anywhere that the server is a James server.

Operator

An Operator installs and runs James for the benefit of Users.

The Operator does not compile any Java code, and does not require any software development environment.

Apache James offers Operators a range of servers for various use cases, including: * A Basic Server ideal for busy Operators who are interested in an easy-to-use self-hosting solution, but who may not have the time to gain deep expertise * An Advanced Server well-suited for Operators with advanced skills and resources who are not daunted by getting their hands dirty with configurations or using built-in extensions

Integrator

An Integrator has some expertise with Java or a JVM-based language. Based on this expertise the Integrator can perform more advanced server configurations and may develop Extensions to customize the behavior of a James server.

An Integrator does not need to download the source code or compile James.

Developer

A Developer uses the James codebase, executes a build using the provided build system (Maven), may edit the source code and deploy the built artifacts.

Contributor

A Contributor refers to anyone involved with the Apache James community by:

  • Filing an issue on the issue tracking system

  • Posting a question on the mailing list or on the gitter channel

  • Submitting a pull request (PR)

  • Fixes, refines and writes documentation

  • Writes a tutorial or article about James

  • Otherwise generally helps the James Community in any other way not listed here

Committer

A Committer is granted special rights (according to Apache practices) to participate in the development of James by:

PMC Member

A PMC (Project Management Committee) Member is a Committer who is also a member of the PMC, as stipulated by Apache rules.