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 2016/02/08 22:45:03 UTC

svn commit: r1729266 - in /sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/legacy: LegacyResourceProviderAdapter.java LegacyResourceProviderFactoryAdapter.java LegacyResourceProviderWhiteboard.java

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)) {