##### OpenJMS

- Overview
- Downloads
- Release Notes
- Getting Started
- User Guide
- Administrator Guide
- Developer Guide
  - Volunteers
  - Getting the Source
  - Coding Conventions
  - Building OpenJMS
  - Testing OpenJMS
  - Submitting Changes
  - Roadmap
- FAQ

##### Search OpenJMS

##### Project Documentation

- About
- Project Info
- Project Reports
- Development Process

##### Legend

- External Link
- Opens in a new window

## Coding Style

- General

  - All sources must include the license header
  - NO tabs

- Java

  - 4 space indent.
  - JavaDoc MUST exist on all methods. If your code modifications use an existing class/method/variable which lacks JavaDoc, it is required that you add it. This will improve the project as a whole.
  - If you contribute to a file (code or documentation), add yourself to the authors list at the top of the file. For java sources, the preferred format is:

        @author <a href="mailto:user@domain.com">John Smith</a>

  - Anything not specifically mentioned here should follow Sun's Code Conventions for the Java Programming Language
  - Code not following style conventions will be listed in the module's checkstyle report

- XML

  - 2 space indent.

## Coding Conventions

- Logging

  - OpenJMS uses Commons-Logging for logging.

  - Log instances must be named using the fully qualified class name in which it is used. Commons-Logging provides a convenience method to specify the name using a Class. E.g, in class org.exolab.jms.server.OpenJMS, use:

        private static final Log _log = LogFactory.getLog(OpenJMS.class);

  - Wrap logging statements with `isLogLevelEnabled()` statements to avoid evaluation of parameters if the log level is disabled. E.g:

        if (_log.isDebugEnabled()) {
            _log.debug("createReceiver(queue=" + queue + ", clientId="
                       + clientId + ", selector=" + selector
                       + ") [sessionId=" + _sessionId + "]");
        }