Apache Software Foundation > Apache POI

POI Resoluton

Resolution 001 - Minimal Coding Standards

Resolution 001 - Minimal Coding Standards

Majority Position

As the POI project has grown the "styles" used have become more varied, some see this as a bad thing, but in reality it can be a good thing. Each can learn from the different styles by working with different code. That being said there are some universal "good quality" guidelines that must be adopted on a project of any proportions.

Marc Johnson Authored the following resolution:

On Tue, 2002-01-08 at 22:23, Marc Johnson wrote: Standards are wonderful; everyone should have a set. Here's what I propose for coding standards for POI WRT comments (should I feel the need, I'll post more of these little gems):

  1. All classes and interfaces MUST have, right at the beginning of the file, the Apache Software License 2.0 License Header. (see /legal/LICENSE).
  2. All classes and interfaces MUST include class javadoc. Conventionally, this goes after the package and imports, and before the start of the class or interface.
  3. All methods that are accessible outside the class MUST have javadoc comments. In other words, if it isn't private, it MUST have javadoc comments. Simple getters can consist of a simple @return tag; simple setters can consist of a simple @param tag. Anything else requires some verbiage plus all the standard javadoc tags as appropriate. You MUST include @throws or @throws for any non-runtime exceptions, and you SHOULD document any runtime exceptions you expect to throw. @throws/@throws tags SHOULD include an explanation of why that exception would be thrown. If your method might return null, you MUST say so. An accompanying explanation of the circumstances for doing so would be nice.

Amendments (informal by extension and not by vote)


As opposed to the formerly used POI License (which was based on the Apache Public License), now that POI is part of Apache, use the standard Apache Software License 2.0 header. As per standard Apache Software Foundation policy, the full (long) version of the header should be used.

2 cents

Tip: No laughing or joking allowed in conversations regarding coding standards. Any mail on coding standards will be treated very seriously, and sent here with a RTFM.


The motion was passed unanimously with no negative or neutral votes.


Andy didn't feel like going through his mail and sucking out the comments.. If there is anything you feel should be added here do it yourself ;-).

by Andrew C. Oliver