1 <?xml version="1.0" encoding="UTF-8"?>
3 ====================================================================
4 Licensed to the Apache Software Foundation (ASF) under one or more
5 contributor license agreements. See the NOTICE file distributed with
6 this work for additional information regarding copyright ownership.
7 The ASF licenses this file to You under the Apache License, Version 2.0
8 (the "License"); you may not use this file except in compliance with
9 the License. You may obtain a copy of the License at
11 http://www.apache.org/licenses/LICENSE-2.0
13 Unless required by applicable law or agreed to in writing, software
14 distributed under the License is distributed on an "AS IS" BASIS,
15 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 See the License for the specific language governing permissions and
17 limitations under the License.
18 ====================================================================
20 <!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V1.1//EN" "../dtd/document-v11.dtd">
24 <title>POI Resoluton</title>
25 <subtitle>Resolution 001 - Minimal Coding Standards</subtitle>
27 <person name="Andrew C. Oliver" email="acoliver@apache.org"/>
32 <section><title>Resolution 001 - Minimal Coding Standards</title>
33 <section><title>Majority Position</title>
35 As the POI project has grown the "styles" used have become more
36 varied, some see this as a bad thing, but in reality it
37 can be a good thing. Each can learn from the different
38 styles by working with different code. That being said
39 there are some universal "good quality" guidelines that
40 must be adopted on a project of any proportions.
43 Marc Johnson Authored the following resolution:
46 On Tue, 2002-01-08 at 22:23, Marc Johnson wrote:
47 Standards are wonderful; everyone should have a set.
48 Here's what I propose for coding standards for POI WRT comments (should I
49 feel the need, I'll post more of these little gems):
53 All classes and interfaces MUST have, right at the beginning, the POI
54 License (see poi/doc/LICENSE).
57 All classes and interfaces MUST include class javadoc. Conventionally,
58 this goes after the package and imports, and before the start of the class
59 or interface. The class javadoc MUST have at least one @author tag
62 All methods that are accessible outside the class MUST have javadoc
63 comments. In other words, if it isn't private, it MUST have javadoc
64 comments. Simple getters can consist of a simple @return tag; simple setters
65 can consist of a simple @param tag. Anything else requires some verbiage
66 plus all the standard javadoc tags as appropriate. You MUST include @throws
67 or @exception for any non-runtime exceptions, and you SHOULD document any
68 runtime exceptions you expect to throw. @throws/@exception tags SHOULD
69 include an explanation of why that exception would be thrown. If your method
70 might return null, you MUST say so. An accompanying explanation of the
71 circumstances for doing so would be nice.
75 <section><title>Amendments (informal by extension and not by vote)</title>
76 <section><title>License</title>
78 As opposed to the formerly used POI License which was
79 based on the Apache Public License, now that POI is part of
80 Jakarta, use the APL 1.1 for the header. Currently, the
81 Apache Software Foundation requires us to use the full
85 <section><title>2 cents</title>
87 Tip: No laughing or joking allowed in conversations regarding coding
89 Any mail on coding standards will be treated very seriously,
90 and sent here with a RTFM.
94 <section><title>Dissent</title>
96 The motion was passed unanimously with no negative or
100 <section><title>Comments</title>
102 Andy didn't feel like going through his mail and sucking
103 out the comments.. If there is anything you feel should
104 be added here do it yourself ;-).