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 2024/02/20 12:17:03 UTC
(sling-org-apache-sling-servlets-resolver) 01/01: SLING-12255 fix formatting
This is an automated email from the ASF dual-hosted git repository.
joerghoh pushed a commit to branch SLING-12255
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-servlets-resolver.git
commit 058e28a65d23b0b255806ae2be0290a339b5d232
Author: Joerg Hoh <jo...@apache.org>
AuthorDate: Tue Feb 20 13:16:49 2024 +0100
SLING-12255 fix formatting
---
.../internal/helper/AbstractResourceCollector.java | 124 +++++++++---------
.../helper/AbstractResourceCollectorTest.java | 140 ++++++++++-----------
2 files changed, 132 insertions(+), 132 deletions(-)
diff --git a/src/main/java/org/apache/sling/servlets/resolver/internal/helper/AbstractResourceCollector.java b/src/main/java/org/apache/sling/servlets/resolver/internal/helper/AbstractResourceCollector.java
index 2179d37..11e4e18 100644
--- a/src/main/java/org/apache/sling/servlets/resolver/internal/helper/AbstractResourceCollector.java
+++ b/src/main/java/org/apache/sling/servlets/resolver/internal/helper/AbstractResourceCollector.java
@@ -45,10 +45,10 @@ import org.slf4j.LoggerFactory;
* script to handle a request to the given resource.
*/
public abstract class AbstractResourceCollector {
-
+
private static final Logger LOG = LoggerFactory.getLogger(AbstractResourceCollector.class);
protected static final String CACHE_KEY_CHILDREN_LIST = AbstractResourceCollector.class.getName() + ".childrenList";
-
+
protected static final String CACHE_KEY_RESOURCES = AbstractResourceCollector.class.getName() + ".resources";
// the most generic resource type to use. This may be null in which
@@ -65,7 +65,7 @@ public abstract class AbstractResourceCollector {
protected final String resourceSuperType;
protected final String[] executionPaths;
-
+
protected boolean useResourceCaching;
protected AbstractResourceCollector(final String baseResourceType,
@@ -110,10 +110,10 @@ public abstract class AbstractResourceCollector {
}
return o1.compareTo(o2);
});
-
-
+
+
List<Resource> locations = LocationCollector.getLocations(resourceType, resourceSuperType,
- baseResourceType, resolver, this.useResourceCaching);
+ baseResourceType, resolver, this.useResourceCaching);
locations.forEach(locationRes -> getWeightedResources(resources, locationRes));
List<Resource> result = new ArrayList<>(resources.size());
@@ -122,7 +122,7 @@ public abstract class AbstractResourceCollector {
}
protected abstract void getWeightedResources(final Set<WeightedResource> resources,
- final Resource location);
+ final Resource location);
/**
* Creates a {@link WeightedResource} and adds it to the set of resources.
@@ -143,7 +143,7 @@ public abstract class AbstractResourceCollector {
final int numSelectors,
final int methodPrefixWeight) {
final WeightedResource lr = new WeightedResource(resources.size(), resource,
- numSelectors, methodPrefixWeight);
+ numSelectors, methodPrefixWeight);
resources.add(lr);
}
@@ -159,8 +159,8 @@ public abstract class AbstractResourceCollector {
* synthetic resource representing the path location.
*/
protected final @NotNull Resource getResource(@NotNull final ResourceResolver resolver,
- @NotNull String path,
- boolean useCaching) {
+ @NotNull String path,
+ boolean useCaching) {
Resource res = getResourceOrNull(resolver,path, useCaching);
if (res == null) {
@@ -180,9 +180,9 @@ public abstract class AbstractResourceCollector {
}
final AbstractResourceCollector o = (AbstractResourceCollector)obj;
return stringEquals(resourceType, o.resourceType)
- && stringEquals(resourceSuperType, o.resourceSuperType)
- && stringEquals(extension, o.extension)
- && stringEquals(baseResourceType, o.baseResourceType);
+ && stringEquals(resourceSuperType, o.resourceSuperType)
+ && stringEquals(extension, o.extension)
+ && stringEquals(baseResourceType, o.baseResourceType);
}
@Override
@@ -210,7 +210,7 @@ public abstract class AbstractResourceCollector {
}
return null;
}
-
+
/**
* Retrieves the list of children for a resource; if useCaching is set to true, it is
* tried to read the result from a cache, and persist any non-cached result there as well.
@@ -220,17 +220,17 @@ public abstract class AbstractResourceCollector {
*/
@SuppressWarnings("unchecked")
static @NotNull List<Resource> getChildrenList(@NotNull Resource parent, boolean useCaching) {
-
+
List<Resource> childList = new ArrayList<>();
if (useCaching) {
-
+
// init the caching structure
Map<String,List<Resource>> childrenListMap = new HashMap<>();
Map<String,Object> cache = parent.getResourceResolver().getPropertyMap();
if (!cache.containsKey(CACHE_KEY_CHILDREN_LIST)) {
childrenListMap = new HashMap<>();
cache.put(CACHE_KEY_CHILDREN_LIST, childrenListMap);
-
+
} else {
Object entry = cache.get(CACHE_KEY_CHILDREN_LIST);
if (entry instanceof HashMap) {
@@ -241,7 +241,7 @@ public abstract class AbstractResourceCollector {
CACHE_KEY_CHILDREN_LIST, entry.getClass().getName());
}
}
-
+
// cache lookup
if (childrenListMap.containsKey(parent.getPath())) {
// this is a cache hit
@@ -259,23 +259,23 @@ public abstract class AbstractResourceCollector {
LOG.trace("getChildrenList cache-miss for {} with {} child resources", parent.getPath(),childList.size());
return childList;
}
-
+
/* Clear all caching structures
* @param resolver
*/
public static void clearCache(@NotNull ResourceResolver resolver) {
- Object o1 = resolver.getPropertyMap().get(CACHE_KEY_CHILDREN_LIST);
- if (o1 instanceof HashMap) {
- Map<String,List<Resource>> childrenListMap = (HashMap) o1;
- childrenListMap.clear();
- }
- Object o2 = resolver.getPropertyMap().get(CACHE_KEY_RESOURCES);
- if (o2 instanceof HashMap) {
- Map<String,Resource> resourceMap = (HashMap<String,Resource>) o2;
- resourceMap.clear();
- }
+ Object o1 = resolver.getPropertyMap().get(CACHE_KEY_CHILDREN_LIST);
+ if (o1 instanceof HashMap) {
+ Map<String,List<Resource>> childrenListMap = (HashMap) o1;
+ childrenListMap.clear();
+ }
+ Object o2 = resolver.getPropertyMap().get(CACHE_KEY_RESOURCES);
+ if (o2 instanceof HashMap) {
+ Map<String,Resource> resourceMap = (HashMap<String,Resource>) o2;
+ resourceMap.clear();
+ }
}
-
+
/**
* Resolvers a resource or null if there is no resource resolved from the given path.
* @param resolver the resourceResolver to use
@@ -284,38 +284,38 @@ public abstract class AbstractResourceCollector {
* @return a resource or null if no resource can be resolved
*/
public static @Nullable Resource getResourceOrNull(@NotNull ResourceResolver resolver, @NotNull String path, boolean useCaching) {
- Object o = resolver.getPropertyMap().get(CACHE_KEY_RESOURCES);
- if (useCaching) {
- if (o instanceof Map) {
- // cache structure already initialized
- final Map<String,Resource> resourceMap = (Map<String,Resource>) o;
- if (resourceMap.containsKey(path)) {
- // cache hit
- LOG.trace("getResourceOrNull cache-hit for path {}", path);
- return resourceMap.get(path);
- } else {
- // cache miss
- LOG.trace("getResourceOrNull cache-miss for path {}", path);
- final Resource resource = resolver.getResource(path);
- resourceMap.put(path, resource);
- return resource;
- }
- }
- if (o == null) {
- // cache structure not initialized yet
- LOG.trace("getResourceOrNull cache-miss on init for path {}", path);
- final Map<String,Resource> resourceMap = new HashMap<>();
- resolver.getPropertyMap().put(CACHE_KEY_RESOURCES, resourceMap);
- final Resource resource = resolver.getResource(path);
- resourceMap.put(path, resource);
- return resource;
- }
- // key already used by someone else
- LOG.debug("Found key '{}' used with the unexpected type '{}', not caching the resource for path {}",
- CACHE_KEY_RESOURCES, o.getClass().getName(), path);
- }
- return resolver.getResource(path);
+ Object o = resolver.getPropertyMap().get(CACHE_KEY_RESOURCES);
+ if (useCaching) {
+ if (o instanceof Map) {
+ // cache structure already initialized
+ final Map<String,Resource> resourceMap = (Map<String,Resource>) o;
+ if (resourceMap.containsKey(path)) {
+ // cache hit
+ LOG.trace("getResourceOrNull cache-hit for path {}", path);
+ return resourceMap.get(path);
+ } else {
+ // cache miss
+ LOG.trace("getResourceOrNull cache-miss for path {}", path);
+ final Resource resource = resolver.getResource(path);
+ resourceMap.put(path, resource);
+ return resource;
+ }
+ }
+ if (o == null) {
+ // cache structure not initialized yet
+ LOG.trace("getResourceOrNull cache-miss on init for path {}", path);
+ final Map<String,Resource> resourceMap = new HashMap<>();
+ resolver.getPropertyMap().put(CACHE_KEY_RESOURCES, resourceMap);
+ final Resource resource = resolver.getResource(path);
+ resourceMap.put(path, resource);
+ return resource;
+ }
+ // key already used by someone else
+ LOG.debug("Found key '{}' used with the unexpected type '{}', not caching the resource for path {}",
+ CACHE_KEY_RESOURCES, o.getClass().getName(), path);
+ }
+ return resolver.getResource(path);
}
-
+
}
diff --git a/src/test/java/org/apache/sling/servlets/resolver/internal/helper/AbstractResourceCollectorTest.java b/src/test/java/org/apache/sling/servlets/resolver/internal/helper/AbstractResourceCollectorTest.java
index d4bf5ed..d2b9a29 100644
--- a/src/test/java/org/apache/sling/servlets/resolver/internal/helper/AbstractResourceCollectorTest.java
+++ b/src/test/java/org/apache/sling/servlets/resolver/internal/helper/AbstractResourceCollectorTest.java
@@ -35,11 +35,11 @@ import org.mockito.Mockito;
public class AbstractResourceCollectorTest {
-
+
@Rule
public SlingContext context = new SlingContext();
-
-
+
+
@Before
public void setup() {
context.create().resource("/parent");
@@ -47,114 +47,114 @@ public class AbstractResourceCollectorTest {
context.create().resource("/parent/child2");
context.create().resource("/parent/child3");
}
-
+
@Test
public void testGetChildrenWithCachingEnabled() {
-
+
Resource spy = Mockito.spy(context.resourceResolver().getResource("/parent"));
-
+
List<Resource> children = AbstractResourceCollector.getChildrenList(spy, true);
assertEquals(3,children.size());
children = AbstractResourceCollector.getChildrenList(spy, true);
Mockito.verify(spy,Mockito.times(1)).listChildren();
-
+
Map<String,List<Resource>> map = (Map<String, List<Resource>>)
- context.resourceResolver().getPropertyMap().get(AbstractResourceCollector.CACHE_KEY_CHILDREN_LIST);
+ context.resourceResolver().getPropertyMap().get(AbstractResourceCollector.CACHE_KEY_CHILDREN_LIST);
assertEquals(1, map.values().size());
AbstractResourceCollector.clearCache(context.resourceResolver());
assertEquals(0, map.values().size());
}
-
-
+
+
@Test
public void testGetChildrenWithCachingDisabled() {
-
+
Resource spy = Mockito.spy(context.resourceResolver().getResource("/parent"));
-
+
List<Resource> children = AbstractResourceCollector.getChildrenList(spy, false);
assertEquals(3,children.size());
children = AbstractResourceCollector.getChildrenList(spy, false);
Mockito.verify(spy,Mockito.times(2)).listChildren();
}
-
+
@Test
public void testGetChildrenWithCachingWithAlreadyUsedCacheKey() {
-
+
Resource spy = Mockito.spy(context.resourceResolver().getResource("/parent"));
String payload = "some payload";
context.resourceResolver().getPropertyMap().put(AbstractResourceCollector.CACHE_KEY_CHILDREN_LIST, payload);
-
+
List<Resource> children = AbstractResourceCollector.getChildrenList(spy, true);
assertEquals(3,children.size());
children = AbstractResourceCollector.getChildrenList(spy, true);
Mockito.verify(spy,Mockito.times(2)).listChildren();
assertEquals(payload, context.resourceResolver().getPropertyMap().get(AbstractResourceCollector.CACHE_KEY_CHILDREN_LIST));
-
+
AbstractResourceCollector.clearCache(context.resourceResolver());
assertEquals(payload, context.resourceResolver().getPropertyMap().get(AbstractResourceCollector.CACHE_KEY_CHILDREN_LIST));
}
-
-
+
+
@Test
public void testGetResourceOrNullWithCachingEnabled() {
- ResourceResolver spyResolver = Mockito.spy(context.resourceResolver());
-
- // not yet initialized
- Resource res1 = AbstractResourceCollector.getResourceOrNull(spyResolver,"/parent/child1",true);
- assertNotNull(res1);
- Mockito.verify(spyResolver,Mockito.times(1)).getResource("/parent/child1");
- // cache hit
- Resource res2 = AbstractResourceCollector.getResourceOrNull(spyResolver,"/parent/child1",true);
- assertNotNull(res2);
- Mockito.verify(spyResolver,Mockito.times(1)).getResource("/parent/child1");
- assertEquals(res1,res2);
-
- // cache miss
- Resource res3 = AbstractResourceCollector.getResourceOrNull(spyResolver,"/parent/child2",true);
- assertNotNull(res2);
- Mockito.verify(spyResolver,Mockito.times(1)).getResource("/parent/child2");
-
- // cache miss
- assertNull(AbstractResourceCollector.getResourceOrNull(spyResolver, "/parent/nonExistingChild", true));
- assertNull(AbstractResourceCollector.getResourceOrNull(spyResolver, "/parent/nonExistingChild", true));
- Mockito.verify(spyResolver,Mockito.times(1)).getResource("/parent/nonExistingChild");
-
- // when the cache is cleared, it should read again via the ResourceResolver
- AbstractResourceCollector.clearCache(spyResolver);
- Mockito.reset(spyResolver);
- Resource res4 = AbstractResourceCollector.getResourceOrNull(spyResolver,"/parent/child1",true);
- assertNotNull(res4);
- Mockito.verify(spyResolver,Mockito.times(1)).getResource("/parent/child1");
+ ResourceResolver spyResolver = Mockito.spy(context.resourceResolver());
+
+ // not yet initialized
+ Resource res1 = AbstractResourceCollector.getResourceOrNull(spyResolver,"/parent/child1",true);
+ assertNotNull(res1);
+ Mockito.verify(spyResolver,Mockito.times(1)).getResource("/parent/child1");
+ // cache hit
+ Resource res2 = AbstractResourceCollector.getResourceOrNull(spyResolver,"/parent/child1",true);
+ assertNotNull(res2);
+ Mockito.verify(spyResolver,Mockito.times(1)).getResource("/parent/child1");
+ assertEquals(res1,res2);
+
+ // cache miss
+ Resource res3 = AbstractResourceCollector.getResourceOrNull(spyResolver,"/parent/child2",true);
+ assertNotNull(res2);
+ Mockito.verify(spyResolver,Mockito.times(1)).getResource("/parent/child2");
+
+ // cache miss
+ assertNull(AbstractResourceCollector.getResourceOrNull(spyResolver, "/parent/nonExistingChild", true));
+ assertNull(AbstractResourceCollector.getResourceOrNull(spyResolver, "/parent/nonExistingChild", true));
+ Mockito.verify(spyResolver,Mockito.times(1)).getResource("/parent/nonExistingChild");
+
+ // when the cache is cleared, it should read again via the ResourceResolver
+ AbstractResourceCollector.clearCache(spyResolver);
+ Mockito.reset(spyResolver);
+ Resource res4 = AbstractResourceCollector.getResourceOrNull(spyResolver,"/parent/child1",true);
+ assertNotNull(res4);
+ Mockito.verify(spyResolver,Mockito.times(1)).getResource("/parent/child1");
}
-
+
@Test
public void testGetResourceOrNullWithAlreadyUsedCacheKey() {
- ResourceResolver spyResolver = Mockito.spy(context.resourceResolver());
-
- String payload = "some payload";
- spyResolver.getPropertyMap().put(AbstractResourceCollector.CACHE_KEY_RESOURCES, payload);
-
- // not yet initialized
- Resource res1 = AbstractResourceCollector.getResourceOrNull(spyResolver,"/parent/child1",true);
- Resource res2 = AbstractResourceCollector.getResourceOrNull(spyResolver,"/parent/child1",true);
- Mockito.verify(spyResolver,Mockito.times(2)).getResource("/parent/child1");
-
- assertEquals(payload, spyResolver.getPropertyMap().get(AbstractResourceCollector.CACHE_KEY_RESOURCES));
- AbstractResourceCollector.clearCache(spyResolver);
+ ResourceResolver spyResolver = Mockito.spy(context.resourceResolver());
+
+ String payload = "some payload";
+ spyResolver.getPropertyMap().put(AbstractResourceCollector.CACHE_KEY_RESOURCES, payload);
+
+ // not yet initialized
+ Resource res1 = AbstractResourceCollector.getResourceOrNull(spyResolver,"/parent/child1",true);
+ Resource res2 = AbstractResourceCollector.getResourceOrNull(spyResolver,"/parent/child1",true);
+ Mockito.verify(spyResolver,Mockito.times(2)).getResource("/parent/child1");
+
+ assertEquals(payload, spyResolver.getPropertyMap().get(AbstractResourceCollector.CACHE_KEY_RESOURCES));
+ AbstractResourceCollector.clearCache(spyResolver);
assertEquals(payload, spyResolver.getPropertyMap().get(AbstractResourceCollector.CACHE_KEY_RESOURCES));
}
-
+
@Test
public void testGetResourceOrNullCachingDisabled() {
- ResourceResolver spyResolver = Mockito.spy(context.resourceResolver());
-
- Resource res1 = AbstractResourceCollector.getResourceOrNull(spyResolver,"/parent/child1",false);
- assertNotNull(res1);
- Mockito.verify(spyResolver,Mockito.times(1)).getResource("/parent/child1");
- Resource res2 = AbstractResourceCollector.getResourceOrNull(spyResolver,"/parent/child1",false);
- assertNotNull(res2);
- Mockito.verify(spyResolver,Mockito.times(2)).getResource("/parent/child1");
+ ResourceResolver spyResolver = Mockito.spy(context.resourceResolver());
+
+ Resource res1 = AbstractResourceCollector.getResourceOrNull(spyResolver,"/parent/child1",false);
+ assertNotNull(res1);
+ Mockito.verify(spyResolver,Mockito.times(1)).getResource("/parent/child1");
+ Resource res2 = AbstractResourceCollector.getResourceOrNull(spyResolver,"/parent/child1",false);
+ assertNotNull(res2);
+ Mockito.verify(spyResolver,Mockito.times(2)).getResource("/parent/child1");
}
-
-
+
+
}