The Checker Framework
Copyright 2004-present by the Checker Framework developers


Most of the Checker Framework is licensed under the GNU General Public
License, version 2 (GPL2), with the classpath exception.  The text of this
license appears below.  This is the same license used for OpenJDK.

A few parts of the Checker Framework have more permissive licenses, notably
the parts that you might want to include with your own program.

 * The annotations and utility files are licensed under the MIT License.
   (The text of this license also appears below.)  This applies to the
   checker-qual*.jar and all the files that appear in it:  every file in a
   qual/ directory, plus utility files FormatUtil.java,
   I18nFormatUtil.java, NullnessUtil.java, Opt.java, PurityUnqualified.java,
   RegexUtil.java, SignednessUtil.java, SignednessUtilExtra.java, and
   UnitsTools.java.  It also applies to the cleanroom implementations of
   third-party annotations (in checker/src/testannotations/ and in
   framework/src/main/java/org/jmlspecs/).

The Checker Framework includes annotations for some libraries.  Those in
.astub files use the MIT License.  Those in https://github.com/typetools/jdk
(which appears in the annotated-jdk directory of file checker.jar) use the
GPL2 license.

Some external libraries that are included with the Checker Framework
distribution have different licenses.  Here are some examples.

 * javaparser is dual licensed under the LGPL or the Apache license -- you
   may use it under whichever one you want.  (The javaparser source code
   contains a file with the text of the GPL, but it is not clear why, since
   javaparser does not use the GPL.)  See
   https://github.com/typetools/stubparser .

 * Annotation Tools (https://github.com/typetools/annotation-tools) uses
   the MIT license.

 * Libraries in plume-lib (https://github.com/plume-lib/) are licensed
   under the MIT License.