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 09:58:42 UTC

[sling-org-apache-sling-resourcemerger] 02/24: SLING-2986 : Merged Resource Provider. Minor code changes and metatype info

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

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

commit 4c9a3bce16feb4cd949ed3a85604ce1c689b4b0c
Author: Carsten Ziegeler <cz...@apache.org>
AuthorDate: Wed Jan 29 13:14:32 2014 +0000

    SLING-2986 : Merged Resource Provider. Minor code changes and metatype info
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/contrib/extensions/resourcemerger@1562433 13f79535-47bb-0310-9956-ffa450edef68
---
 .../sling/resourcemerger/impl/MergedResource.java  | 18 ++++++++++-----
 .../impl/MergedResourceProviderFactory.java        | 26 +++++++++++++---------
 2 files changed, 29 insertions(+), 15 deletions(-)

diff --git a/src/main/java/org/apache/sling/resourcemerger/impl/MergedResource.java b/src/main/java/org/apache/sling/resourcemerger/impl/MergedResource.java
index 542a70a..b2b69cd 100644
--- a/src/main/java/org/apache/sling/resourcemerger/impl/MergedResource.java
+++ b/src/main/java/org/apache/sling/resourcemerger/impl/MergedResource.java
@@ -46,7 +46,9 @@ public class MergedResource extends AbstractResource {
      * @param mergeRootPath Merge root path
      * @param relativePath  Relative path
      */
-    MergedResource(ResourceResolver resolver, String mergeRootPath, String relativePath) {
+    MergedResource(final ResourceResolver resolver,
+                   final String mergeRootPath,
+                   final String relativePath) {
         this.resolver = resolver;
         this.mergeRootPath = mergeRootPath;
         this.relativePath = relativePath;
@@ -60,7 +62,10 @@ public class MergedResource extends AbstractResource {
      * @param relativePath    Relative path
      * @param mappedResources List of physical mapped resources' paths
      */
-    MergedResource(ResourceResolver resolver, String mergeRootPath, String relativePath, List<String> mappedResources) {
+    MergedResource(final ResourceResolver resolver,
+                   final String mergeRootPath,
+                   final String relativePath,
+                   final List<String> mappedResources) {
         this.resolver = resolver;
         this.mergeRootPath = mergeRootPath;
         this.relativePath = relativePath;
@@ -77,7 +82,7 @@ public class MergedResource extends AbstractResource {
     /**
      * {@inheritDoc}
      */
-    public void addMappedResource(String path) {
+    public void addMappedResource(final String path) {
         mappedResources.add(path);
     }
 
@@ -101,6 +106,7 @@ public class MergedResource extends AbstractResource {
     /**
      * {@inheritDoc}
      */
+    @Override
     public Iterator<Resource> listChildren() {
         return resolver.listChildren(this);
     }
@@ -142,13 +148,14 @@ public class MergedResource extends AbstractResource {
     /**
      * {@inheritDoc}
      */
+    @Override
     @SuppressWarnings("unchecked")
     public <AdapterType> AdapterType adaptTo(Class<AdapterType> type) {
         if (type == ValueMap.class) {
             return (AdapterType) new MergedValueMap(this);
         }
 
-        return null;
+        return super.adaptTo(type);
     }
 
 
@@ -162,7 +169,8 @@ public class MergedResource extends AbstractResource {
      * @return Returns <code>true</code> if the two merged resources have the
      *         same path.
      */
-    public boolean equals(Object o) {
+    @Override
+    public boolean equals(final Object o) {
         if (o == null) {
             return false;
         }
diff --git a/src/main/java/org/apache/sling/resourcemerger/impl/MergedResourceProviderFactory.java b/src/main/java/org/apache/sling/resourcemerger/impl/MergedResourceProviderFactory.java
index 0a49607..159738c 100644
--- a/src/main/java/org/apache/sling/resourcemerger/impl/MergedResourceProviderFactory.java
+++ b/src/main/java/org/apache/sling/resourcemerger/impl/MergedResourceProviderFactory.java
@@ -24,17 +24,22 @@ import org.apache.felix.scr.annotations.Activate;
 import org.apache.felix.scr.annotations.Component;
 import org.apache.felix.scr.annotations.Properties;
 import org.apache.felix.scr.annotations.Property;
-import org.apache.felix.scr.annotations.Reference;
 import org.apache.felix.scr.annotations.Service;
 import org.apache.sling.api.resource.LoginException;
 import org.apache.sling.api.resource.ResourceProvider;
 import org.apache.sling.api.resource.ResourceProviderFactory;
 import org.apache.sling.commons.osgi.PropertiesUtil;
 
-@Component(metatype = false)
+@Component(name = "Apache Sling Merged Resource Provider Factory",
+           description = "This resource provider delivers merged resources based on the search paths.",
+           metatype=true)
 @Service(value = ResourceProviderFactory.class)
 @Properties({
-        @Property(name = ResourceProvider.ROOTS, value = {"/merge"}, propertyPrivate = true)
+    @Property(name = ResourceProvider.ROOTS, value=MergedResourceProviderFactory.DEFAULT_ROOT,
+            label="Root",
+            description="The mount point of merged resources"),
+    @Property(name = ResourceProvider.USE_RESOURCE_ACCESS_SECURITY, boolValue=true,
+              label="Secure", description="If enabled additional access checks are performed")
 })
 /**
  * The <code>MergedResourceProviderFactory</code> creates merged resource
@@ -42,28 +47,29 @@ import org.apache.sling.commons.osgi.PropertiesUtil;
  */
 public class MergedResourceProviderFactory implements ResourceProviderFactory {
 
+    public static final String DEFAULT_ROOT = "/merged";
+
     private String mergeRootPath;
 
     /**
      * {@inheritDoc}
      */
-    public ResourceProvider getResourceProvider(Map<String, Object> stringObjectMap) throws LoginException {
+    public ResourceProvider getResourceProvider(final Map<String, Object> stringObjectMap)
+    throws LoginException {
         return new MergedResourceProvider(mergeRootPath);
     }
 
     /**
      * {@inheritDoc}
      */
-    public ResourceProvider getAdministrativeResourceProvider(Map<String, Object> stringObjectMap) throws LoginException {
+    public ResourceProvider getAdministrativeResourceProvider(final Map<String, Object> stringObjectMap)
+    throws LoginException {
         return new MergedResourceProvider(mergeRootPath);
     }
 
     @Activate
-    private void configure(Map<String, ?> properties) {
-        String[] mergeRootPaths = PropertiesUtil.toStringArray(properties.get(ResourceProvider.ROOTS), new String[0]);
-        if (mergeRootPaths.length > 0) {
-            mergeRootPath = mergeRootPaths[0];
-        }
+    protected void configure(final Map<String, Object> properties) {
+        mergeRootPath = PropertiesUtil.toString(properties.get(ResourceProvider.ROOTS), DEFAULT_ROOT);
     }
 
 }

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