This is an automated email from the ASF dual-hosted git repository.

kwin pushed a commit to branch master
in repository 
https://gitbox.apache.org/repos/asf/sling-org-apache-sling-resourcemerger.git


The following commit(s) were added to refs/heads/master by this push:
     new fef21df  releng: add null annotations
fef21df is described below

commit fef21dfa384511e325e2bcbd3c18874656652c00
Author: Konrad Windszus <[email protected]>
AuthorDate: Wed Mar 10 09:41:50 2021 +0100

    releng: add null annotations
---
 pom.xml                                                           | 5 +++++
 .../apache/sling/resourcemerger/api/ResourceMergerService.java    | 8 +++++---
 .../sling/resourcemerger/impl/CRUDMergingResourceProvider.java    | 7 +++++--
 .../org/apache/sling/resourcemerger/spi/MergedResourcePicker.java | 6 +++---
 .../apache/sling/resourcemerger/spi/MergedResourcePicker2.java    | 6 +++---
 5 files changed, 21 insertions(+), 11 deletions(-)

diff --git a/pom.xml b/pom.xml
index 400d7bb..8913361 100644
--- a/pom.xml
+++ b/pom.xml
@@ -81,6 +81,11 @@
             <version>2.2.0</version>
             <scope>provided</scope>
         </dependency>
+        <dependency>
+            <groupId>org.jetbrains</groupId>
+            <artifactId>annotations</artifactId>
+            <scope>provided</scope>
+        </dependency>
         <!-- Testing -->
         <dependency>
             <groupId>junit</groupId>
diff --git 
a/src/main/java/org/apache/sling/resourcemerger/api/ResourceMergerService.java 
b/src/main/java/org/apache/sling/resourcemerger/api/ResourceMergerService.java
index f25b720..1e8a3c5 100644
--- 
a/src/main/java/org/apache/sling/resourcemerger/api/ResourceMergerService.java
+++ 
b/src/main/java/org/apache/sling/resourcemerger/api/ResourceMergerService.java
@@ -19,6 +19,8 @@
 package org.apache.sling.resourcemerger.api;
 
 import org.apache.sling.api.resource.Resource;
+import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
 import org.osgi.annotation.versioning.ProviderType;
 
 /**
@@ -36,7 +38,7 @@ public interface ResourceMergerService {
      * @return Returns the merged resource path
      * @throws IllegalArgumentException if relativePath is <code>null</code> 
or absolute
      */
-    String getMergedResourcePath(String relativePath);
+    @NotNull String getMergedResourcePath(String relativePath);
 
     /**
      * Returns a merged resource if the provided resource is from one of the 
search paths
@@ -46,7 +48,7 @@ public interface ResourceMergerService {
      * @param resource The resource
      * @return Returns the merged resource or <code>null</code>
      */
-    Resource getMergedResource(Resource resource);
+    @Nullable Resource getMergedResource(Resource resource);
 
     /**
      * Returns <code>true</code> if the provided {@link Resource} is a merged 
resource.
@@ -72,5 +74,5 @@ public interface ResourceMergerService {
      *                                  is not within the space of the merged 
resources.
      * @since 1.1
      */
-    String getResourcePath(String searchPath, String mergedResourcePath);
+    @NotNull String getResourcePath(@NotNull String searchPath, @NotNull 
String mergedResourcePath);
 }
diff --git 
a/src/main/java/org/apache/sling/resourcemerger/impl/CRUDMergingResourceProvider.java
 
b/src/main/java/org/apache/sling/resourcemerger/impl/CRUDMergingResourceProvider.java
index 0d2b857..68ac956 100644
--- 
a/src/main/java/org/apache/sling/resourcemerger/impl/CRUDMergingResourceProvider.java
+++ 
b/src/main/java/org/apache/sling/resourcemerger/impl/CRUDMergingResourceProvider.java
@@ -47,7 +47,7 @@ public class CRUDMergingResourceProvider
 
     private static final class ExtendedResourceHolder {
         public final String name;
-        public final List<Resource> resources = new ArrayList<Resource>();
+        public final List<Resource> resources = new ArrayList<>();
         public int count;
         public String highestResourcePath;
 
@@ -119,6 +119,9 @@ public class CRUDMergingResourceProvider
             final Resource hidingResource = 
resolver.getResource(holder.highestResourcePath);
             if ( hidingResource != null ) {
                 final ModifiableValueMap mvm = 
hidingResource.adaptTo(ModifiableValueMap.class);
+                if (mvm == null) {
+                    throw new IllegalStateException("Could not get modifiable 
value map from resource " + hidingResource.getPath());
+                }
                 mvm.remove(MergedResourceConstants.PN_HIDE_RESOURCE);
                 mvm.putAll(properties);
             }
@@ -151,7 +154,7 @@ public class CRUDMergingResourceProvider
             // create overlay resource which is hiding the other
             final String createPath = holder.highestResourcePath;
             final Resource parentResource = 
ResourceUtil.getOrCreateResource(resolver, ResourceUtil.getParent(createPath), 
(String)null, null, false);
-            final Map<String, Object> properties = new HashMap<String, 
Object>();
+            final Map<String, Object> properties = new HashMap<>();
             properties.put(MergedResourceConstants.PN_HIDE_RESOURCE, 
Boolean.TRUE);
             resolver.create(parentResource, ResourceUtil.getName(createPath), 
properties);
         }
diff --git 
a/src/main/java/org/apache/sling/resourcemerger/spi/MergedResourcePicker.java 
b/src/main/java/org/apache/sling/resourcemerger/spi/MergedResourcePicker.java
index 86585c3..31777af 100644
--- 
a/src/main/java/org/apache/sling/resourcemerger/spi/MergedResourcePicker.java
+++ 
b/src/main/java/org/apache/sling/resourcemerger/spi/MergedResourcePicker.java
@@ -21,13 +21,13 @@ package org.apache.sling.resourcemerger.spi;
 import java.util.List;
 
 import org.apache.sling.api.resource.Resource;
-import org.apache.sling.api.resource.ResourceProviderFactory;
 import org.apache.sling.api.resource.ResourceResolver;
+import org.jetbrains.annotations.NotNull;
 import org.osgi.annotation.versioning.ConsumerType;
 
 /**
  * Service interface which can be implemented to define an algorithm used to 
pick
- * resources to be merged. For each picker service, a separate {@link 
ResourceProviderFactory}
+ * resources to be merged. For each picker service, a separate {@link 
org.apache.sling.spi.resource.provider.ResourceProvider}
  * will be exposed at the MERGE_ROOT of the picker.
  * @deprecated Use new {@link MergedResourcePicker2} instead.
  */
@@ -69,5 +69,5 @@ public interface MergedResourcePicker {
      * @return a List of Resource objects
      * @see MergedResourcePicker2#pickResources(ResourceResolver, String, 
Resource)
      */
-    List<Resource> pickResources(ResourceResolver resolver, String 
relativePath);
+    @NotNull List<@NotNull Resource> pickResources(@NotNull ResourceResolver 
resolver, @NotNull String relativePath);
 }
diff --git 
a/src/main/java/org/apache/sling/resourcemerger/spi/MergedResourcePicker2.java 
b/src/main/java/org/apache/sling/resourcemerger/spi/MergedResourcePicker2.java
index 35203fd..b460c32 100644
--- 
a/src/main/java/org/apache/sling/resourcemerger/spi/MergedResourcePicker2.java
+++ 
b/src/main/java/org/apache/sling/resourcemerger/spi/MergedResourcePicker2.java
@@ -21,13 +21,13 @@ package org.apache.sling.resourcemerger.spi;
 import java.util.List;
 
 import org.apache.sling.api.resource.Resource;
-import org.apache.sling.api.resource.ResourceProviderFactory;
 import org.apache.sling.api.resource.ResourceResolver;
+import org.jetbrains.annotations.NotNull;
 import org.osgi.annotation.versioning.ConsumerType;
 
 /**
  * Service interface which can be implemented to define an algorithm used to 
pick
- * resources to be merged. For each picker service, a separate {@link 
ResourceProviderFactory}
+ * resources to be merged. For each picker service, a separate {@link 
org.apache.sling.spi.resource.provider.ResourceProvider}
  * will be exposed at the MERGE_ROOT of the picker.
  *
  * @since 1.2
@@ -70,5 +70,5 @@ public interface MergedResourcePicker2 {
      * @param relatedResource an optional resource which is related to the 
given path (always the parent resource or {@code null})
      * @return a List of Resource objects
      */
-    List<Resource> pickResources(ResourceResolver resolver, String 
relativePath, Resource relatedResource);
+    @NotNull List<@NotNull Resource> pickResources(@NotNull ResourceResolver 
resolver, @NotNull String relativePath, Resource relatedResource);
 }

Reply via email to