You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by cz...@apache.org on 2014/01/29 14:14:33 UTC

svn commit: r1562433 - in /sling/trunk/contrib/extensions/resourcemerger: ./ src/main/java/org/apache/sling/resourcemerger/impl/MergedResource.java src/main/java/org/apache/sling/resourcemerger/impl/MergedResourceProviderFactory.java

Author: cziegeler
Date: Wed Jan 29 13:14:32 2014
New Revision: 1562433

URL: http://svn.apache.org/r1562433
Log:
SLING-2986 : Merged Resource Provider. Minor code changes and metatype info

Modified:
    sling/trunk/contrib/extensions/resourcemerger/   (props changed)
    sling/trunk/contrib/extensions/resourcemerger/src/main/java/org/apache/sling/resourcemerger/impl/MergedResource.java
    sling/trunk/contrib/extensions/resourcemerger/src/main/java/org/apache/sling/resourcemerger/impl/MergedResourceProviderFactory.java

Propchange: sling/trunk/contrib/extensions/resourcemerger/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Wed Jan 29 13:14:32 2014
@@ -0,0 +1,4 @@
+target
+.classpath
+.settings
+.project

Modified: sling/trunk/contrib/extensions/resourcemerger/src/main/java/org/apache/sling/resourcemerger/impl/MergedResource.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/resourcemerger/src/main/java/org/apache/sling/resourcemerger/impl/MergedResource.java?rev=1562433&r1=1562432&r2=1562433&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/resourcemerger/src/main/java/org/apache/sling/resourcemerger/impl/MergedResource.java (original)
+++ sling/trunk/contrib/extensions/resourcemerger/src/main/java/org/apache/sling/resourcemerger/impl/MergedResource.java Wed Jan 29 13:14:32 2014
@@ -46,7 +46,9 @@ public class MergedResource extends Abst
      * @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 Abst
      * @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 Abst
     /**
      * {@inheritDoc}
      */
-    public void addMappedResource(String path) {
+    public void addMappedResource(final String path) {
         mappedResources.add(path);
     }
 
@@ -101,6 +106,7 @@ public class MergedResource extends Abst
     /**
      * {@inheritDoc}
      */
+    @Override
     public Iterator<Resource> listChildren() {
         return resolver.listChildren(this);
     }
@@ -142,13 +148,14 @@ public class MergedResource extends Abst
     /**
      * {@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 Abst
      * @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;
         }

Modified: sling/trunk/contrib/extensions/resourcemerger/src/main/java/org/apache/sling/resourcemerger/impl/MergedResourceProviderFactory.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/resourcemerger/src/main/java/org/apache/sling/resourcemerger/impl/MergedResourceProviderFactory.java?rev=1562433&r1=1562432&r2=1562433&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/resourcemerger/src/main/java/org/apache/sling/resourcemerger/impl/MergedResourceProviderFactory.java (original)
+++ sling/trunk/contrib/extensions/resourcemerger/src/main/java/org/apache/sling/resourcemerger/impl/MergedResourceProviderFactory.java Wed Jan 29 13:14:32 2014
@@ -24,17 +24,22 @@ import org.apache.felix.scr.annotations.
 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.Pro
  */
 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);
     }
 
 }