All licensing must conform to the OpenNTF IPR Policy. It is the project lead’s responsibility to ensure that the appropriate license information is provided with each project, component or control. Where the code is original IP, it will be made available under the Apache License Version 2.0 (“Alv2”), GPL3, LGPL3, or AGPL3..

The top level (root) directory for each OpenNTF project there must be the following files:
1. Apache or GPL3 License File. This file must be called “LICENSE”. Here is a copy of the Apache license text.
2. Other License Files for other 3rd party code. These files must be called “LICENSE_Xxxx.txt” where Xxxx is the name of the License. Examples would be LICENSE_EPL.txt or LICENSE_Sax.txt.
3. Notice File. This file must be called “NOTICE”. The first few lines of each NOTICE file should include the following text, suitably modified to reflect the product name and year(s) of distribution of the current and past versions of the product:
<<
[PROJECT_NAME]
Copyright [yyyy] [Copyright owner(s)]

This product includes software developed for
OpenNTF – (http://www.OpenNTF.org/)
Licensed under [License name]
>>
The NOTICE file must also include, for each third party package that is used in the project:
- the name and version number of the package
- the URL where it may be obtained
- the license under which it was obtained
Note that when you include Apache 2.0 licensed code from other projects, you need to include the Notice files from those projects either in your Notice file, or as a separate file in the root of the zip file.

All License and Notice files should be simple ASCII txt files.

For software distributions which have an extension.xml only (widgets):
Widgets can only be published on OpenNTF.Org under ALv2. Widgets posted in the catalog use the ALv2 as defined in the global terms of use (see here).

All human-readable OpenNTF developed files built from scratch should include the following source file header text, where feasible.
This is necessary for example for source files for Eclipse projects:
  • .java
  • plugin.xml
  • feature.xml
  • .css
  • .exsd
  • .properties

It is also necessary for (some) human readable code in NSFs or NTFs:
  • xpages
  • custom controls
  • agents: LotusScript and Java
  • script libraries: Java, LotusScript, JavaScript (client and server)
  • database script
  • web services: LotusScript and Java
  • shared actions: LotusScript, Java, JavaScript
  • resources: themes, style sheets and applets
  • composite applications applications

Copyright in NSFs and NTFs is not necessary for the following design elements:
  • forms (e.g. no copyright in actions in forms)
  • views (e.g. no copyright in actions in forms)
  • folders
  • framesets
  • pages
  • shared actions: simple, formula
  • agents: all agents except LotusScript and Java
  • all shared elements design elments
  • all data design elements
  • resources except themes, style sheets and applets
  • application properties
  • wiring properties

<<
Copyright [yyyy] [name of copyright owner(s)]
Licensed 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
>>

Note however, if you are creating source files that contain any third party code, such as building on a template from Eclipse, or including code from a Mozilla licensed function, do not use the above source file header. In this case, insert your own copyright statements (along with the original copyright statements of the content), and submit to OpenNTF along with documentation on the license under which you obtained the original code.
Do not, under any circumstances, remove copyright statements from any submission to OpenNTF


Coding standards
In addition to applying the license, some additional coding standards should be followed. In general there are few OpenNTF specific mandatory coding standards. The only specific convention is how to use Java package names for Eclipse code. It is highly desirable not to use company names in the package names (and project names, etc.). For example you shouldn't call your package names. com.mycompany.xxx. Instead you should call the package names:
org.openntf.[yourOpenNTFProjectName].[yourPackageName]

Packaging of Eclipse plugins
Please use this structure:
mysample.zip (pls use same name everywhere. nsf file name, in pdf doc, in notice file etc.)
  • NOTICE
  • LICENSE
  • readme.pdf or readme.txt
  • updatesite
    • features
    • plugins
  • sources
    • project1 (e.g. plugin)
    • project2 (e.g. feature)

Packaging of NSF/NTF
Please use this structure:
mysample.zip (pls use same name everywhere. nsf file name, in pdf doc, in notice file etc.)
  • NOTICE
  • LICENSE
  • readme.pdf or readme.txt
  • x.ntf/x.nsf