What is the relationship between JSR 308 and JSR 305?
Type Annotations (JSR 308) is a language extension that makes existing and future annotations more useful to programmers. By contrast, Annotations for Software Defect Detection (JSR 305) defines some specific annotations, such as @Nonnull and @Positive. The JSR 305 annotations are most useful if they can be written on types, so JSR 305 needs JSR 308 to achieve its full potential. For a more detailed comparison, see section Semantics of annotations in the Type Annotations specification.