Update the project-specific Eclipse settings to replace the use of the org.eclipse.jdt.annotation.Nullable class the new JGit-specific @Nullable annotation. I verified that Eclipse reports errors when the return value of a method annotated with @org.eclipse.jgit.annotations.Nullable is dereferenced without a null check. Also remove the Maven and MANIFEST.MF dependencies on org.eclipse.jdt.annotation. Eclipse null analysis uses three annotations: @Nullable, @NonNull and @NonNullByDefault. All three are updated in this patch because it is invalid to set the Eclipse preferences to empty values. So far only @Nullable has been introduced in org.eclipse.jgit.annotations. My personal preference is to follow the advice in Effective Java and avoid the null-return idiom, and to avoid passing null values in general. This sets the expectation is that arguments and return types are assumed non-null unless otherwise documented. If that is the expectation, then consistent application of @NonNull is redundant and hurts readability by cluttering the code, obscuring the occasional @Nullable annotation that really requires attention. If the JGit community decides there is value in using the @NonNull and @NonNullByDefault annotations we can add them--this change configures Eclipse to use them. Change-Id: I9af1b786d1b44b9b0d9c609480dc842df79bf698 Signed-off-by: Terry Parker <tparker@google.com>tags/v4.2.0.201511101648-m1
eclipse.preferences.version=1 | eclipse.preferences.version=1 | ||||
org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=enabled | org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=enabled | ||||
org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore | org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore | ||||
org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull | |||||
org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault | |||||
org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable | |||||
org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jgit.annotations.NonNull | |||||
org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jgit.annotations.NonNullByDefault | |||||
org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jgit.annotations.Nullable | |||||
org.eclipse.jdt.core.compiler.annotation.nullanalysis=enabled | org.eclipse.jdt.core.compiler.annotation.nullanalysis=enabled | ||||
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled | org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled | ||||
org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate | org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate |
org.eclipse.jgit.api, | org.eclipse.jgit.api, | ||||
org.apache.commons.compress.archivers, | org.apache.commons.compress.archivers, | ||||
org.osgi.framework" | org.osgi.framework" | ||||
Require-Bundle: org.eclipse.jdt.annotation;bundle-version="[1.1.0,2.0.0)";resolution:=optional |
eclipse.preferences.version=1 | eclipse.preferences.version=1 | ||||
org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=enabled | org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=enabled | ||||
org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore | org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore | ||||
org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull | |||||
org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault | |||||
org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable | |||||
org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jgit.annotations.NonNull | |||||
org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jgit.annotations.NonNullByDefault | |||||
org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jgit.annotations.Nullable | |||||
org.eclipse.jdt.core.compiler.annotation.nullanalysis=enabled | org.eclipse.jdt.core.compiler.annotation.nullanalysis=enabled | ||||
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled | org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled | ||||
org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate | org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate |
org.kohsuke.args4j" | org.kohsuke.args4j" | ||||
Main-Class: org.eclipse.jgit.pgm.Main | Main-Class: org.eclipse.jgit.pgm.Main | ||||
Implementation-Title: JGit Command Line Interface | Implementation-Title: JGit Command Line Interface | ||||
Require-Bundle: org.eclipse.jdt.annotation;bundle-version="[1.1.0,2.0.0)";resolution:=optional |
eclipse.preferences.version=1 | eclipse.preferences.version=1 | ||||
org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=enabled | org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=enabled | ||||
org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore | org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore | ||||
org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull | |||||
org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault | |||||
org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable | |||||
org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jgit.annotations.NonNull | |||||
org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jgit.annotations.NonByDefault | |||||
org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jgit.annotations.Nullable | |||||
org.eclipse.jdt.core.compiler.annotation.nullanalysis=enabled | org.eclipse.jdt.core.compiler.annotation.nullanalysis=enabled | ||||
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled | org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled | ||||
org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate | org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate |
org.ietf.jgss", | org.ietf.jgss", | ||||
org.eclipse.jgit.util.io;version="4.2.0" | org.eclipse.jgit.util.io;version="4.2.0" | ||||
Bundle-RequiredExecutionEnvironment: JavaSE-1.7 | Bundle-RequiredExecutionEnvironment: JavaSE-1.7 | ||||
Require-Bundle: com.jcraft.jsch;bundle-version="[0.1.37,0.2.0)", | |||||
org.eclipse.jdt.annotation;bundle-version="[1.1.0,2.0.0)";resolution:=optional | |||||
Require-Bundle: com.jcraft.jsch;bundle-version="[0.1.37,0.2.0)" | |||||
Import-Package: com.googlecode.javaewah;version="[0.7.9,0.8.0)", | Import-Package: com.googlecode.javaewah;version="[0.7.9,0.8.0)", | ||||
javax.crypto, | javax.crypto, | ||||
javax.net.ssl, | javax.net.ssl, |
<groupId>org.slf4j</groupId> | <groupId>org.slf4j</groupId> | ||||
<artifactId>slf4j-api</artifactId> | <artifactId>slf4j-api</artifactId> | ||||
</dependency> | </dependency> | ||||
<dependency> | |||||
<groupId>org.eclipse.jdt</groupId> | |||||
<artifactId>org.eclipse.jdt.annotation</artifactId> | |||||
<version>1.1.0</version> | |||||
</dependency> | |||||
</dependencies> | </dependencies> | ||||
<build> | <build> |