Applying Apache License


All licensing must conform to the OpenNTF Alliance 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”).

Following the Apache approach, in the top level (root) directory for each OpenNTF Alliance software download, there must be the following files:
1. Apache License File. This file must be called “LICENSE” and must include a copy of the license text from here.
2. Other License Files. 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. Note that the use of any code that requires a license other than the Apache License Version 2.0, or which is not original code developed by the Contributor must be approved by OpenNTF Alliance. Please send details of any such planned submission to IP-manager@OpenNTF.org, and do not post such submissions until approval is received from OpenNTF Alliance.
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:
<<
OpenNTF Alliance [PROJECT_NAME]
Copyright [yyyy] [Copyright owner(s)]

This product includes software developed for
OpenNTF Alliance – (http://www.OpenNTF.org/)
>>

The NOTICE file must also include any notices associated with third party components, if any. All Notice files for Projects that include third party components (any components that you did not build from scratch) must be approved by IP-manager@OpenNTF.org.

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

For software distributions that includes several files that are packaged in a zip file:
1. License: To apply the ALv2 to a new software distribution, include one copy of the license text into a file called “LICENSE” in the top level (root) directory of your distribution. Try to add the LICENSE file first in order to place it at the top of the archive. This covers the collective licensing for the distribution. Other License Files, if necessary, should be added at the same location, as described above.
2. Notice: You must add a “NOTICE” file, as described above, in the same directory as the LICENSE file.

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 Alliance-developed files built from scratch must 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 Alliance 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 Alliance.


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