You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ro...@apache.org on 2017/11/07 10:01:03 UTC

[sling-org-apache-sling-resourceresolver] 19/24: SLING-2796 : Support refreshing of resource providers

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

rombert pushed a commit to annotated tag org.apache.sling.resourceresolver-1.0.6
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-resourceresolver.git

commit 9cd63a893e969d38e14231332ca7121c012aa564
Author: Carsten Ziegeler <cz...@apache.org>
AuthorDate: Sun Mar 24 18:59:52 2013 +0000

    SLING-2796 :  Support refreshing of resource providers
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/bundles/resourceresolver@1460424 13f79535-47bb-0310-9956-ffa450edef68
---
 .../resourceresolver/impl/ResourceResolverImpl.java     |  7 +++++++
 .../impl/helper/ResourceResolverContext.java            | 17 +++++++++++++++++
 2 files changed, 24 insertions(+)

diff --git a/src/main/java/org/apache/sling/resourceresolver/impl/ResourceResolverImpl.java b/src/main/java/org/apache/sling/resourceresolver/impl/ResourceResolverImpl.java
index b83de33..0ffe9e4 100644
--- a/src/main/java/org/apache/sling/resourceresolver/impl/ResourceResolverImpl.java
+++ b/src/main/java/org/apache/sling/resourceresolver/impl/ResourceResolverImpl.java
@@ -1164,4 +1164,11 @@ public class ResourceResolverImpl extends SlingAdaptable implements ResourceReso
         }
         return result;
     }
+
+    /**
+     * @see org.apache.sling.api.resource.ResourceResolver#refresh()
+     */
+    public void refresh() {
+        this.context.refresh();
+    }
 }
diff --git a/src/main/java/org/apache/sling/resourceresolver/impl/helper/ResourceResolverContext.java b/src/main/java/org/apache/sling/resourceresolver/impl/helper/ResourceResolverContext.java
index d3c3543..a9ca7ef 100644
--- a/src/main/java/org/apache/sling/resourceresolver/impl/helper/ResourceResolverContext.java
+++ b/src/main/java/org/apache/sling/resourceresolver/impl/helper/ResourceResolverContext.java
@@ -25,6 +25,7 @@ import java.util.Set;
 import org.apache.sling.api.resource.DynamicResourceProvider;
 import org.apache.sling.api.resource.ModifyingResourceProvider;
 import org.apache.sling.api.resource.PersistenceException;
+import org.apache.sling.api.resource.RefreshableResourceProvider;
 import org.apache.sling.api.resource.ResourceProvider;
 import org.apache.sling.api.resource.ResourceResolver;
 
@@ -41,6 +42,9 @@ public class ResourceResolverContext {
     /** A set of all dynamic providers (for closing them later on) */
     private final Set<DynamicResourceProvider> dynamicProviders = new HashSet<DynamicResourceProvider>();
 
+    /** A set of all refreshable providers */
+    private final Set<RefreshableResourceProvider> refreshableProviders = new HashSet<RefreshableResourceProvider>();
+
     /** A set of all modifying providers */
     private final Set<ModifyingResourceProvider> modifyingProviders = new HashSet<ModifyingResourceProvider>();
 
@@ -87,6 +91,9 @@ public class ResourceResolverContext {
         if (provider instanceof ModifyingResourceProvider) {
             this.modifyingProviders.add((ModifyingResourceProvider) provider);
         }
+        if (provider instanceof RefreshableResourceProvider) {
+            this.refreshableProviders.add((RefreshableResourceProvider)provider);
+        }
     }
 
     /**
@@ -121,6 +128,7 @@ public class ResourceResolverContext {
         }
         this.dynamicProviders.clear();
         this.providers.clear();
+        this.refreshableProviders.clear();
     }
 
     /**
@@ -152,4 +160,13 @@ public class ResourceResolverContext {
         }
         return false;
     }
+
+    /**
+     * Refresh
+     */
+    public void refresh() {
+        for(final RefreshableResourceProvider provider : this.refreshableProviders) {
+            provider.refresh();
+        }
+    }
 }

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.