You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by jo...@apache.org on 2022/01/11 17:30:14 UTC

[sling-org-apache-sling-testing-resourceresolver-mock] 01/01: SLING-11053 implement support for getPropertyMap

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

joerghoh pushed a commit to branch improvement/SLING-11053-support-getPropertyMap
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-testing-resourceresolver-mock.git

commit 8373b446130073ea2c491d8e06ea2c861ef1e561
Author: Joerg Hoh <jh...@adobe.com>
AuthorDate: Tue Jan 11 18:29:21 2022 +0100

    SLING-11053 implement support for getPropertyMap
---
 .../resourceresolver/MockResourceResolver.java     | 32 +++++++++++++++++++---
 1 file changed, 28 insertions(+), 4 deletions(-)

diff --git a/src/main/java/org/apache/sling/testing/resourceresolver/MockResourceResolver.java b/src/main/java/org/apache/sling/testing/resourceresolver/MockResourceResolver.java
index a9e535e..3b105f6 100644
--- a/src/main/java/org/apache/sling/testing/resourceresolver/MockResourceResolver.java
+++ b/src/main/java/org/apache/sling/testing/resourceresolver/MockResourceResolver.java
@@ -18,6 +18,7 @@
  */
 package org.apache.sling.testing.resourceresolver;
 
+import java.io.Closeable;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Dictionary;
@@ -28,6 +29,7 @@ import java.util.Iterator;
 import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Map.Entry;
 import java.util.Objects;
 import java.util.Set;
 import java.util.regex.Pattern;
@@ -62,6 +64,8 @@ public class MockResourceResolver extends SlingAdaptable implements ResourceReso
     private final MockResourceResolverFactory factory;
 
     private final Map<String,Object> attributes;
+    
+    private Map<String,Object> propertyMap;
 
     private final List<MockFindResourcesHandler> findResourcesHandlers = new ArrayList<>();
     private final List<MockQueryResourceHandler> queryResourcesHandlers = new ArrayList<>();
@@ -272,9 +276,25 @@ public class MockResourceResolver extends SlingAdaptable implements ResourceReso
 
     @Override
     public void close() {
+        clearPropertyMap();
         this.factory.closed(this);
     }
 
+    private void clearPropertyMap(){
+        if (propertyMap != null) {
+            for (Entry<String, Object> entry : propertyMap.entrySet()) {
+                if (entry.getValue()  instanceof Closeable) {
+                    try {
+                        ((Closeable) entry.getValue()).close();
+                    } catch (Exception e) {
+                        // ignore
+                    }
+                }
+            }
+            propertyMap.clear();
+        }
+    }
+
     @Override
     public String getUserID() {
         return null;
@@ -499,6 +519,13 @@ public class MockResourceResolver extends SlingAdaptable implements ResourceReso
         queryResourcesHandlers.add(handler);
     }
 
+    // Sling API 2.24.0
+    public @NotNull Map<String, Object> getPropertyMap() {
+        if (propertyMap == null) {
+            propertyMap = new HashMap<>();
+        }
+        return propertyMap;
+    }
 
     // --- unsupported operations ---
 
@@ -529,9 +556,6 @@ public class MockResourceResolver extends SlingAdaptable implements ResourceReso
         throw new UnsupportedOperationException();
     }
 
-    // Sling API 2.24.0
-    public @NotNull Map<String, Object> getPropertyMap() {
-        throw new UnsupportedOperationException();
-    }
+
 
 }