Author: radu
Date: Thu Sep 17 14:06:50 2015
New Revision: 1703627

URL: http://svn.apache.org/r1703627
Log:
SLING-5031 - Switch the order in which a Use object is adapted in the 
JavaUseProvider

* try to adapt the Use object first from SlingHttpServletRequest and then from 
Resource

Modified:
    
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/JavaUseProvider.java

Modified: 
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/JavaUseProvider.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/JavaUseProvider.java?rev=1703627&r1=1703626&r2=1703627&view=diff
==============================================================================
--- 
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/JavaUseProvider.java
 (original)
+++ 
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/JavaUseProvider.java
 Thu Sep 17 14:06:50 2015
@@ -78,12 +78,9 @@ public class JavaUseProvider implements
             LOG.debug("Identifier {} does not match a Java class name 
pattern.", identifier);
             return ProviderOutcome.failure();
         }
-
         Bindings globalBindings = renderContext.getBindings();
-        Bindings bindings = UseProviderUtils.merge(globalBindings, arguments);
-        SlingScriptHelper sling = UseProviderUtils.getHelper(bindings);
-        Resource resource = (Resource) bindings.get(SlingBindings.RESOURCE);
-        final SlingHttpServletRequest request = (SlingHttpServletRequest) 
bindings.get(SlingBindings.REQUEST);
+        SlingScriptHelper sling = UseProviderUtils.getHelper(globalBindings);
+        SlingHttpServletRequest request = (SlingHttpServletRequest) 
globalBindings.get(SlingBindings.REQUEST);
         Map<String, Object> overrides = setRequestAttributes(request, 
arguments);
 
         Object result;
@@ -94,9 +91,10 @@ public class JavaUseProvider implements
             if (result != null) {
                 return ProviderOutcome.success(result);
             }
-            result = resource.adaptTo(cls);
+            result = request.adaptTo(cls);
             if (result == null) {
-                result = request.adaptTo(cls);
+                Resource resource = (Resource) 
globalBindings.get(SlingBindings.RESOURCE);
+                result = resource.adaptTo(cls);
             }
             if (result != null) {
                 return ProviderOutcome.success(result);
@@ -107,7 +105,7 @@ public class JavaUseProvider implements
                  */
                 result = cls.newInstance();
                 if (result instanceof Use) {
-                    ((Use) result).init(bindings);
+                    ((Use) result).init(UseProviderUtils.merge(globalBindings, 
arguments));
                 }
                 return ProviderOutcome.notNullOrFailure(result);
             }
@@ -119,7 +117,7 @@ public class JavaUseProvider implements
             Resource caller = 
ResourceResolution.getResourceForRequest(adminResolver, sling.getRequest());
             result = sightlyJavaCompilerService.getInstance(adminResolver, 
caller, identifier, true);
             if (result instanceof Use) {
-                ((Use) result).init(bindings);
+                ((Use) result).init(UseProviderUtils.merge(globalBindings, 
arguments));
             }
             return ProviderOutcome.success(result);
         } catch (Exception e) {


Reply via email to