Author: cziegeler
Date: Mon Feb  8 21:45:03 2016
New Revision: 1729266

URL: http://svn.apache.org/viewvc?rev=1729266&view=rev
Log:
SLING-5496 : Adaptable is not implemented for legacy providers

Modified:
    
sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/legacy/LegacyResourceProviderAdapter.java
    
sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/legacy/LegacyResourceProviderFactoryAdapter.java
    
sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/legacy/LegacyResourceProviderWhiteboard.java

Modified: 
sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/legacy/LegacyResourceProviderAdapter.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/legacy/LegacyResourceProviderAdapter.java?rev=1729266&r1=1729265&r2=1729266&view=diff
==============================================================================
--- 
sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/legacy/LegacyResourceProviderAdapter.java
 (original)
+++ 
sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/legacy/LegacyResourceProviderAdapter.java
 Mon Feb  8 21:45:03 2016
@@ -25,6 +25,7 @@ import java.util.Map;
 import javax.annotation.CheckForNull;
 import javax.annotation.Nonnull;
 
+import org.apache.sling.api.adapter.Adaptable;
 import org.apache.sling.api.resource.AttributableResourceProvider;
 import org.apache.sling.api.resource.DynamicResourceProvider;
 import org.apache.sling.api.resource.ModifyingResourceProvider;
@@ -203,6 +204,18 @@ public class LegacyResourceProviderAdapt
         }
     }
 
+    @SuppressWarnings("unchecked")
+    @Override
+    public <AdapterType> AdapterType adaptTo(final @Nonnull 
ResolveContext<Object> ctx, final @Nonnull Class<AdapterType> type) {
+        if ( rp instanceof Adaptable ) {
+            final Object value = ((Adaptable)rp).adaptTo(type);
+            if ( value != null ) {
+                return (AdapterType) value;
+            }
+        }
+        return super.adaptTo(ctx, type);
+    }
+
     private static class JCRQueryProviderAdapter implements 
QueryLanguageProvider<Object> {
 
         private final QueriableResourceProvider rp;

Modified: 
sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/legacy/LegacyResourceProviderFactoryAdapter.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/legacy/LegacyResourceProviderFactoryAdapter.java?rev=1729266&r1=1729265&r2=1729266&view=diff
==============================================================================
--- 
sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/legacy/LegacyResourceProviderFactoryAdapter.java
 (original)
+++ 
sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/legacy/LegacyResourceProviderFactoryAdapter.java
 Mon Feb  8 21:45:03 2016
@@ -130,6 +130,12 @@ public class LegacyResourceProviderFacto
         return ctx.getProviderState().hasChanges((ResolveContext) ctx);
     }
 
+    @SuppressWarnings("unchecked")
+    @Override
+    public <AdapterType> AdapterType adaptTo(final @Nonnull 
ResolveContext<LegacyResourceProviderAdapter> ctx, final @Nonnull 
Class<AdapterType> type) {
+        return (AdapterType) 
ctx.getProviderState().adaptTo((ResolveContext)ctx, type);
+    }
+
     private static class JCRQueryProviderAdapter implements 
QueryLanguageProvider<LegacyResourceProviderAdapter> {
 
         private final String[] languages;

Modified: 
sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/legacy/LegacyResourceProviderWhiteboard.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/legacy/LegacyResourceProviderWhiteboard.java?rev=1729266&r1=1729265&r2=1729266&view=diff
==============================================================================
--- 
sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/legacy/LegacyResourceProviderWhiteboard.java
 (original)
+++ 
sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/legacy/LegacyResourceProviderWhiteboard.java
 Mon Feb  8 21:45:03 2016
@@ -51,8 +51,6 @@ import org.apache.felix.scr.annotations.
 import org.apache.felix.scr.annotations.References;
 import org.apache.sling.api.adapter.Adaptable;
 import org.apache.sling.api.resource.AttributableResourceProvider;
-import org.apache.sling.api.resource.ModifyingResourceProvider;
-import org.apache.sling.api.resource.RefreshableResourceProvider;
 import org.apache.sling.api.resource.ResourceProvider;
 import org.apache.sling.api.resource.ResourceProviderFactory;
 import org.apache.sling.api.resource.runtime.dto.AuthType;
@@ -82,10 +80,10 @@ public class LegacyResourceProviderWhite
         for (String path : 
PropertiesUtil.toStringArray(ref.getProperty(ROOTS), new String[0])) {
             Dictionary<String, Object> newProps = new Hashtable<String, 
Object>();
             newProps.put(PROPERTY_AUTHENTICATE, AuthType.no.toString());
-            newProps.put(PROPERTY_MODIFIABLE, provider instanceof 
ModifyingResourceProvider);
+            newProps.put(PROPERTY_MODIFIABLE, false);
             newProps.put(PROPERTY_ADAPTABLE, provider instanceof Adaptable);
             newProps.put(PROPERTY_ATTRIBUTABLE, provider instanceof 
AttributableResourceProvider);
-            newProps.put(PROPERTY_REFRESHABLE, provider instanceof 
RefreshableResourceProvider);
+            newProps.put(PROPERTY_REFRESHABLE, false);
             newProps.put(PROPERTY_NAME, provider.getClass().getName());
             newProps.put(PROPERTY_ROOT, normalizePath(path));
             if (ArrayUtils.contains(propertyNames, SERVICE_PID)) {


Reply via email to