From 2f6959d9f31faadcc50b5b0ded25f5e5a11befa4 Mon Sep 17 00:00:00 2001 From: Andrey Loskutov Date: Mon, 16 Nov 2015 23:41:38 +0100 Subject: [PATCH] Make jgit annotations accessible to other plugins Other plugins which want to use JGit nullness annotations in their code cannot do this if the annotations aren't part of the published API. Unfortunately it looks like although Eclipse JDT allows to use custom nullness annotation types per project, it does not understand if those annotations are used mixed with other nullness annotations in other projects. E.g. EGit can either configure JGit annotations for NPE analysis and so "understand" nullness from JGit API but so it loses the ability to use any other nullness annotations to annotate its own code. Change-Id: Ieeeb578c2fe35223a7561d668dce8e767dc89ef0 Signed-off-by: Andrey Loskutov --- org.eclipse.jgit/META-INF/MANIFEST.MF | 52 ++++++------------- .../org/eclipse/jgit/annotations/NonNull.java | 2 + .../eclipse/jgit/annotations/Nullable.java | 2 + 3 files changed, 19 insertions(+), 37 deletions(-) diff --git a/org.eclipse.jgit/META-INF/MANIFEST.MF b/org.eclipse.jgit/META-INF/MANIFEST.MF index b6899b280..2a953b559 100644 --- a/org.eclipse.jgit/META-INF/MANIFEST.MF +++ b/org.eclipse.jgit/META-INF/MANIFEST.MF @@ -6,7 +6,8 @@ Bundle-Version: 4.2.0.qualifier Bundle-Localization: plugin Bundle-Vendor: %provider_name Bundle-ActivationPolicy: lazy -Export-Package: org.eclipse.jgit.api;version="4.2.0"; +Export-Package: org.eclipse.jgit.annotations;version="4.2.0", + org.eclipse.jgit.api;version="4.2.0"; uses:="org.eclipse.jgit.revwalk, org.eclipse.jgit.treewalk.filter, org.eclipse.jgit.diff, @@ -20,9 +21,7 @@ Export-Package: org.eclipse.jgit.api;version="4.2.0"; org.eclipse.jgit.submodule, org.eclipse.jgit.transport, org.eclipse.jgit.merge", - org.eclipse.jgit.api.errors;version="4.2.0"; - uses:="org.eclipse.jgit.lib, - org.eclipse.jgit.errors", + org.eclipse.jgit.api.errors;version="4.2.0";uses:="org.eclipse.jgit.lib,org.eclipse.jgit.errors", org.eclipse.jgit.attributes;version="4.2.0", org.eclipse.jgit.blame;version="4.2.0"; uses:="org.eclipse.jgit.lib, @@ -47,8 +46,7 @@ Export-Package: org.eclipse.jgit.api;version="4.2.0"; org.eclipse.jgit.internal.storage.pack, org.eclipse.jgit.transport, org.eclipse.jgit.dircache", - org.eclipse.jgit.events;version="4.2.0"; - uses:="org.eclipse.jgit.lib", + org.eclipse.jgit.events;version="4.2.0";uses:="org.eclipse.jgit.lib", org.eclipse.jgit.fnmatch;version="4.2.0", org.eclipse.jgit.gitrepo;version="4.2.0"; uses:="org.eclipse.jgit.api, @@ -57,14 +55,11 @@ Export-Package: org.eclipse.jgit.api;version="4.2.0"; org.xml.sax.helpers, org.xml.sax", org.eclipse.jgit.gitrepo.internal;version="4.2.0";x-internal:=true, - org.eclipse.jgit.hooks;version="4.2.0"; - uses:="org.eclipse.jgit.lib", + org.eclipse.jgit.hooks;version="4.2.0";uses:="org.eclipse.jgit.lib", org.eclipse.jgit.ignore;version="4.2.0", org.eclipse.jgit.ignore.internal;version="4.2.0";x-friends:="org.eclipse.jgit.test", org.eclipse.jgit.internal;version="4.2.0";x-friends:="org.eclipse.jgit.test,org.eclipse.jgit.http.test", - org.eclipse.jgit.internal.storage.dfs;version="4.2.0"; - x-friends:="org.eclipse.jgit.test, - org.eclipse.jgit.http.server", + org.eclipse.jgit.internal.storage.dfs;version="4.2.0";x-friends:="org.eclipse.jgit.test,org.eclipse.jgit.http.server", org.eclipse.jgit.internal.storage.file;version="4.2.0"; x-friends:="org.eclipse.jgit.test, org.eclipse.jgit.junit, @@ -96,31 +91,18 @@ Export-Package: org.eclipse.jgit.api;version="4.2.0"; org.eclipse.jgit.treewalk, org.eclipse.jgit.revwalk, org.eclipse.jgit.merge", - org.eclipse.jgit.patch;version="4.2.0"; - uses:="org.eclipse.jgit.lib, - org.eclipse.jgit.diff", - org.eclipse.jgit.revplot;version="4.2.0"; - uses:="org.eclipse.jgit.lib, - org.eclipse.jgit.revwalk", + org.eclipse.jgit.patch;version="4.2.0";uses:="org.eclipse.jgit.lib,org.eclipse.jgit.diff", + org.eclipse.jgit.revplot;version="4.2.0";uses:="org.eclipse.jgit.lib,org.eclipse.jgit.revwalk", org.eclipse.jgit.revwalk;version="4.2.0"; uses:="org.eclipse.jgit.lib, org.eclipse.jgit.treewalk, org.eclipse.jgit.treewalk.filter, org.eclipse.jgit.diff, org.eclipse.jgit.revwalk.filter", - org.eclipse.jgit.revwalk.filter;version="4.2.0"; - uses:="org.eclipse.jgit.revwalk, - org.eclipse.jgit.lib, - org.eclipse.jgit.util", - org.eclipse.jgit.storage.file;version="4.2.0"; - uses:="org.eclipse.jgit.lib, - org.eclipse.jgit.util", - org.eclipse.jgit.storage.pack;version="4.2.0"; - uses:="org.eclipse.jgit.lib", - org.eclipse.jgit.submodule;version="4.2.0"; - uses:="org.eclipse.jgit.lib, - org.eclipse.jgit.treewalk.filter, - org.eclipse.jgit.treewalk", + org.eclipse.jgit.revwalk.filter;version="4.2.0";uses:="org.eclipse.jgit.revwalk,org.eclipse.jgit.lib,org.eclipse.jgit.util", + org.eclipse.jgit.storage.file;version="4.2.0";uses:="org.eclipse.jgit.lib,org.eclipse.jgit.util", + org.eclipse.jgit.storage.pack;version="4.2.0";uses:="org.eclipse.jgit.lib", + org.eclipse.jgit.submodule;version="4.2.0";uses:="org.eclipse.jgit.lib,org.eclipse.jgit.treewalk.filter,org.eclipse.jgit.treewalk", org.eclipse.jgit.transport;version="4.2.0"; uses:="org.eclipse.jgit.transport.resolver, org.eclipse.jgit.revwalk, @@ -133,11 +115,8 @@ Export-Package: org.eclipse.jgit.api;version="4.2.0"; org.eclipse.jgit.transport.http, org.eclipse.jgit.errors, org.eclipse.jgit.storage.pack", - org.eclipse.jgit.transport.http;version="4.2.0"; - uses:="javax.net.ssl", - org.eclipse.jgit.transport.resolver;version="4.2.0"; - uses:="org.eclipse.jgit.lib, - org.eclipse.jgit.transport", + org.eclipse.jgit.transport.http;version="4.2.0";uses:="javax.net.ssl", + org.eclipse.jgit.transport.resolver;version="4.2.0";uses:="org.eclipse.jgit.lib,org.eclipse.jgit.transport", org.eclipse.jgit.treewalk;version="4.2.0"; uses:="org.eclipse.jgit.lib, org.eclipse.jgit.revwalk, @@ -145,8 +124,7 @@ Export-Package: org.eclipse.jgit.api;version="4.2.0"; org.eclipse.jgit.treewalk.filter, org.eclipse.jgit.util, org.eclipse.jgit.dircache", - org.eclipse.jgit.treewalk.filter;version="4.2.0"; - uses:="org.eclipse.jgit.treewalk", + org.eclipse.jgit.treewalk.filter;version="4.2.0";uses:="org.eclipse.jgit.treewalk", org.eclipse.jgit.util;version="4.2.0"; uses:="org.eclipse.jgit.lib, org.eclipse.jgit.transport.http, diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/annotations/NonNull.java b/org.eclipse.jgit/src/org/eclipse/jgit/annotations/NonNull.java index a74654fb5..08f81cb9f 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/annotations/NonNull.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/annotations/NonNull.java @@ -58,6 +58,8 @@ *

* Denotes that a local variable, parameter, field, method return value expected * to be non {@code null}. + * + * @since 4.2 */ @Documented @Retention(RetentionPolicy.CLASS) diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/annotations/Nullable.java b/org.eclipse.jgit/src/org/eclipse/jgit/annotations/Nullable.java index 254920e7a..4275dc4fa 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/annotations/Nullable.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/annotations/Nullable.java @@ -58,6 +58,8 @@ *

* Denotes that a local variable, parameter, field, method return value can be * {@code null}. + * + * @since 4.2 */ @Documented @Retention(RetentionPolicy.CLASS)