SLING-7802 apply jetbrains nullability annotations on public API
diff --git a/pom.xml b/pom.xml
index c77cf52..5bd1d04 100644
--- a/pom.xml
+++ b/pom.xml
@@ -76,6 +76,14 @@
             <scope>compile</scope>
         </dependency>
     
+        <!-- Nullability annotations -->
+        <dependency>
+            <groupId>org.jetbrains</groupId>
+            <artifactId>annotations</artifactId>
+            <version>16.0.2</version>
+            <scope>provided</scope>
+        </dependency>
+
         <dependency>
             <groupId>commons-io</groupId>
             <artifactId>commons-io</artifactId>
diff --git a/src/main/java/org/apache/sling/testing/mock/jcr/MockJcr.java b/src/main/java/org/apache/sling/testing/mock/jcr/MockJcr.java
index 31e581b..7e4a619 100644
--- a/src/main/java/org/apache/sling/testing/mock/jcr/MockJcr.java
+++ b/src/main/java/org/apache/sling/testing/mock/jcr/MockJcr.java
@@ -28,6 +28,8 @@
 import javax.jcr.query.QueryManager;
 
 import org.apache.commons.lang3.StringUtils;
+import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
 import org.osgi.annotation.versioning.ConsumerType;
 
 /**
@@ -55,7 +57,7 @@
      * its own data store.
      * @return JCR repository
      */
-    public static Repository newRepository() {
+    public static @NotNull Repository newRepository() {
         return new MockRepository();
     }
 
@@ -65,7 +67,7 @@
      * collected.
      * @return JCR session
      */
-    public static Session newSession() {
+    public static @NotNull Session newSession() {
         return newSession(null, null);
     }
 
@@ -73,11 +75,12 @@
      * Create a new mocked in-memory JCR session. It contains only the root
      * node. All data of the session is thrown away if it gets garbage
      * collected.
-     * @param userId User id for the mock environment.
-     * @param workspaceName Workspace name for the mock environment.
+     * @param userId User id for the mock environment. If null a dummy value is used.
+     * @param workspaceName Workspace name for the mock environment. If null a dummy value is used.
      * @return JCR session
      */
-    public static Session newSession(String userId, String workspaceName) {
+    @SuppressWarnings("null")
+    public static @NotNull Session newSession(@Nullable String userId, @Nullable String workspaceName) {
         try {
             return newRepository().login(
                     new SimpleCredentials(StringUtils.defaultString(userId, DEFAULT_USER_ID), new char[0]),
@@ -93,7 +96,7 @@
      * @param session JCR session
      * @param resultList Result list
      */
-    public static void setQueryResult(final Session session, final List<Node> resultList) {
+    public static void setQueryResult(@NotNull final Session session, @NotNull final List<Node> resultList) {
         setQueryResult(getQueryManager(session), resultList);
     }
     
@@ -102,7 +105,7 @@
      * @param queryManager Mocked query manager
      * @param resultList Result list
      */
-    public static void setQueryResult(final QueryManager queryManager, final List<Node> resultList) {
+    public static void setQueryResult(@NotNull final QueryManager queryManager, @NotNull final List<Node> resultList) {
         addQueryResultHandler(queryManager, new MockQueryResultHandler() {
             @Override
             public MockQueryResult executeQuery(MockQuery query) {
@@ -118,7 +121,8 @@
      * @param language Query language
      * @param resultList Result list
      */
-    public static void setQueryResult(final Session session, final String statement, final String language, final List<Node> resultList) {
+    public static void setQueryResult(@NotNull final Session session, @NotNull final String statement,
+            @NotNull final String language, @NotNull final List<Node> resultList) {
         setQueryResult(getQueryManager(session), statement, language, resultList);
     }
     
@@ -129,7 +133,8 @@
      * @param language Query language
      * @param resultList Result list
      */
-    public static void setQueryResult(final QueryManager queryManager, final String statement, final String language, final List<Node> resultList) {
+    public static void setQueryResult(@NotNull final QueryManager queryManager, @NotNull final String statement,
+            @NotNull final String language, @NotNull final List<Node> resultList) {
         addQueryResultHandler(queryManager, new MockQueryResultHandler() {
             @Override
             public MockQueryResult executeQuery(MockQuery query) {
@@ -149,7 +154,7 @@
      * @param session JCR session
      * @param resultHandler Mock query result handler
      */
-    public static void addQueryResultHandler(final Session session, final MockQueryResultHandler resultHandler) {
+    public static void addQueryResultHandler(@NotNull final Session session, @NotNull final MockQueryResultHandler resultHandler) {
         addQueryResultHandler(getQueryManager(session), resultHandler);
     }
     
@@ -158,11 +163,12 @@
      * @param queryManager Mocked query manager
      * @param resultHandler Mock query result handler
      */
-    public static void addQueryResultHandler(final QueryManager queryManager, final MockQueryResultHandler resultHandler) {
+    public static void addQueryResultHandler(@NotNull final QueryManager queryManager, @NotNull final MockQueryResultHandler resultHandler) {
         ((MockQueryManager)queryManager).addResultHandler(resultHandler);
     }
     
-    private static QueryManager getQueryManager(Session session) {
+    @SuppressWarnings("null")
+    private static @NotNull QueryManager getQueryManager(@NotNull Session session) {
         try {
             return session.getWorkspace().getQueryManager();
         }
diff --git a/src/main/java/org/apache/sling/testing/mock/jcr/MockQueryResult.java b/src/main/java/org/apache/sling/testing/mock/jcr/MockQueryResult.java
index 356d1da..3ab0842 100644
--- a/src/main/java/org/apache/sling/testing/mock/jcr/MockQueryResult.java
+++ b/src/main/java/org/apache/sling/testing/mock/jcr/MockQueryResult.java
@@ -29,6 +29,7 @@
 
 import org.apache.jackrabbit.commons.iterator.NodeIteratorAdapter;
 import org.apache.jackrabbit.commons.iterator.RowIteratorAdapter;
+import org.jetbrains.annotations.Nullable;
 import org.osgi.annotation.versioning.ProviderType;
 
 import com.google.common.base.Function;
@@ -64,7 +65,7 @@
     public RowIterator getRows() throws RepositoryException {
         return new RowIteratorAdapter(Lists.transform(nodes, new Function<Node, Row>() {
             @Override
-            public Row apply(Node node) {
+            public Row apply(@Nullable Node node) {
                 return new MockRow(columnNames, node);
             }
         }));
diff --git a/src/main/java/org/apache/sling/testing/mock/jcr/package-info.java b/src/main/java/org/apache/sling/testing/mock/jcr/package-info.java
index b4794d7..76b9bb0 100644
--- a/src/main/java/org/apache/sling/testing/mock/jcr/package-info.java
+++ b/src/main/java/org/apache/sling/testing/mock/jcr/package-info.java
@@ -19,5 +19,5 @@
 /**
  * Mock implementation of selected JCR APIs.
  */
-@org.osgi.annotation.versioning.Version("1.0.1")
+@org.osgi.annotation.versioning.Version("1.0.2")
 package org.apache.sling.testing.mock.jcr;
diff --git a/src/test/java/org/apache/sling/testing/mock/jcr/MockNodeTest.java b/src/test/java/org/apache/sling/testing/mock/jcr/MockNodeTest.java
index 32807e4..c89401d 100644
--- a/src/test/java/org/apache/sling/testing/mock/jcr/MockNodeTest.java
+++ b/src/test/java/org/apache/sling/testing/mock/jcr/MockNodeTest.java
@@ -45,7 +45,6 @@
     private Node rootNode;
     private Node node1;
     private Property prop1;
-    private Property prop2;
     private Node node11;
 
     @Before
diff --git a/src/test/java/org/apache/sling/testing/mock/jcr/MockQueryManagerTest.java b/src/test/java/org/apache/sling/testing/mock/jcr/MockQueryManagerTest.java
index 8280ab6..fdb2ed5 100644
--- a/src/test/java/org/apache/sling/testing/mock/jcr/MockQueryManagerTest.java
+++ b/src/test/java/org/apache/sling/testing/mock/jcr/MockQueryManagerTest.java
@@ -39,6 +39,7 @@
 
 import com.google.common.collect.ImmutableList;
 
+@SuppressWarnings("null")
 public class MockQueryManagerTest {
 
     private Session session;