Author: kwin
Date: Thu Sep 17 06:58:24 2015
New Revision: 1703499

URL: http://svn.apache.org/r1703499
Log:
SLING-4734 skip provider as early as possible if the given class is no model

Modified:
    sling/trunk/bundles/scripting/sightly/models-use-provider/pom.xml
    
sling/trunk/bundles/scripting/sightly/models-use-provider/src/main/java/org/apache/sling/scripting/sightly/models/impl/ModelFactoryUseProvider.java

Modified: sling/trunk/bundles/scripting/sightly/models-use-provider/pom.xml
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/scripting/sightly/models-use-provider/pom.xml?rev=1703499&r1=1703498&r2=1703499&view=diff
==============================================================================
--- sling/trunk/bundles/scripting/sightly/models-use-provider/pom.xml (original)
+++ sling/trunk/bundles/scripting/sightly/models-use-provider/pom.xml Thu Sep 
17 06:58:24 2015
@@ -92,7 +92,7 @@
         <dependency>
             <groupId>org.apache.sling</groupId>
             <artifactId>org.apache.sling.models.api</artifactId>
-            <version>1.2.0</version>
+            <version>1.2.2</version>
             <scope>provided</scope>
         </dependency>
 

Modified: 
sling/trunk/bundles/scripting/sightly/models-use-provider/src/main/java/org/apache/sling/scripting/sightly/models/impl/ModelFactoryUseProvider.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/scripting/sightly/models-use-provider/src/main/java/org/apache/sling/scripting/sightly/models/impl/ModelFactoryUseProvider.java?rev=1703499&r1=1703498&r2=1703499&view=diff
==============================================================================
--- 
sling/trunk/bundles/scripting/sightly/models-use-provider/src/main/java/org/apache/sling/scripting/sightly/models/impl/ModelFactoryUseProvider.java
 (original)
+++ 
sling/trunk/bundles/scripting/sightly/models-use-provider/src/main/java/org/apache/sling/scripting/sightly/models/impl/ModelFactoryUseProvider.java
 Thu Sep 17 06:58:24 2015
@@ -80,6 +80,11 @@ public class ModelFactoryUseProvider imp
             // next use provider will be queried
             return ProviderOutcome.failure();
         }
+        if (!modelFactory.isModelClass(cls)) {
+            log.debug("{} is no Sling Model (because it lacks the according 
Model annotation or is not being picked up by the Bundle Listener)!");
+            // next use provider will be queried
+            return ProviderOutcome.failure();
+        }
         Bindings globalBindings = renderContext.getBindings();
         Bindings bindings = merge(globalBindings, arguments);
         Resource resource = (Resource) bindings.get(SlingBindings.RESOURCE);
@@ -90,16 +95,11 @@ public class ModelFactoryUseProvider imp
         if (request == null) {
             return ProviderOutcome.failure(new IllegalStateException("Could 
not get request from bindings"));
         }
-
+        
         // pass parameters as request attributes
         Map<String, Object> overrides = setRequestAttributes(request, 
arguments);
         Object obj = null;
         try {
-            if (!modelFactory.isModelClass(resource, cls)) {
-                log.debug("{} is no Sling Model (because it lacks the 
according Model annotation)!");
-                // next use provider will be queried
-                return ProviderOutcome.failure();
-            }
             // try to instantiate class via Sling Models (first via request, 
then via resource)
             if (modelFactory.canCreateFromAdaptable(request, cls)) {
                 obj = modelFactory.createModel(request, cls);


Reply via email to