Author: kwin
Date: Thu Mar  2 15:03:40 2017
New Revision: 1785150

URL: http://svn.apache.org/viewvc?rev=1785150&view=rev
Log:
SLING-6588 extend logging and fix handling of validation models with no 
applicablePaths property

Modified:
    
sling/trunk/bundles/extensions/validation/core/src/main/java/org/apache/sling/validation/impl/ValidationModelRetrieverImpl.java
    
sling/trunk/bundles/extensions/validation/core/src/main/java/org/apache/sling/validation/impl/resourcemodel/ResourceValidationModelProviderImpl.java

Modified: 
sling/trunk/bundles/extensions/validation/core/src/main/java/org/apache/sling/validation/impl/ValidationModelRetrieverImpl.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/validation/core/src/main/java/org/apache/sling/validation/impl/ValidationModelRetrieverImpl.java?rev=1785150&r1=1785149&r2=1785150&view=diff
==============================================================================
--- 
sling/trunk/bundles/extensions/validation/core/src/main/java/org/apache/sling/validation/impl/ValidationModelRetrieverImpl.java
 (original)
+++ 
sling/trunk/bundles/extensions/validation/core/src/main/java/org/apache/sling/validation/impl/ValidationModelRetrieverImpl.java
 Thu Mar  2 15:03:40 2017
@@ -51,8 +51,6 @@ import org.slf4j.LoggerFactory;
 @Component
 public class ValidationModelRetrieverImpl implements ValidationModelRetriever {
 
-    public static final String CACHE_INVALIDATION_EVENT_TOPIC = 
"org/apache/sling/validation/cache/INVALIDATE";
-
     /** 
      * Map of validation providers (key=service properties), Declarative 
Services 1.3 takes care that the list is ordered according to {@link 
ServiceReference#compareTo(Object)}.
      * Highest ranked service is the last one in the list.
@@ -90,6 +88,7 @@ public class ValidationModelRetrieverImp
             try {
                 resourceResolver = 
resourceResolverFactory.getServiceResourceResolver(null);
                 while ((currentResourceType = 
resourceResolver.getParentResourceType(currentResourceType)) != null) {
+                    LOG.debug("Retrieving validation models for resource super 
type {}...", currentResourceType);
                     ValidationModel modelToMerge = 
getModel(currentResourceType, resourcePath);
                     if (modelToMerge != null) {
                         if (baseModel == null) {
@@ -133,11 +132,17 @@ public class ValidationModelRetrieverImp
         // fill trie with data from model providers (all models for the given 
resource type, independent of resource path)
         // lowest ranked model provider inserts first (i.e. higher ranked 
should overwrite)
         for (ValidationModelProvider modelProvider : modelProviders) {
-            for (ValidationModel model : modelProvider.getModels(resourceType, 
validators)) {
+            LOG.debug("Retrieving validation models with resource type {} from 
provider {}...", resourceType, modelProvider.getClass().getName());
+            List<ValidationModel> models = 
modelProvider.getModels(resourceType, validators);
+            for (ValidationModel model : models) {
                 for (String applicablePath : model.getApplicablePaths()) {
+                    LOG.debug("Found validation model for resource type {} for 
applicable path {}", resourceType, applicablePath);
                     modelsForResourceType.insert(applicablePath, model);
                 }
             }
+            if (models.isEmpty()) {
+                LOG.debug("Found no validation model with resource type {} 
from provider {}", resourceType, modelProvider.getClass().getName());
+            }
         }
         return modelsForResourceType;
     }

Modified: 
sling/trunk/bundles/extensions/validation/core/src/main/java/org/apache/sling/validation/impl/resourcemodel/ResourceValidationModelProviderImpl.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/validation/core/src/main/java/org/apache/sling/validation/impl/resourcemodel/ResourceValidationModelProviderImpl.java?rev=1785150&r1=1785149&r2=1785150&view=diff
==============================================================================
--- 
sling/trunk/bundles/extensions/validation/core/src/main/java/org/apache/sling/validation/impl/resourcemodel/ResourceValidationModelProviderImpl.java
 (original)
+++ 
sling/trunk/bundles/extensions/validation/core/src/main/java/org/apache/sling/validation/impl/resourcemodel/ResourceValidationModelProviderImpl.java
 Thu Mar  2 15:03:40 2017
@@ -43,7 +43,6 @@ import org.apache.sling.validation.impl.
 import org.apache.sling.validation.impl.model.ParameterizedValidatorImpl;
 import org.apache.sling.validation.impl.model.ResourcePropertyImpl;
 import org.apache.sling.validation.impl.model.ValidationModelBuilder;
-import org.apache.sling.validation.impl.util.Trie;
 import org.apache.sling.validation.model.ChildResource;
 import org.apache.sling.validation.model.ParameterizedValidator;
 import org.apache.sling.validation.model.ResourceProperty;
@@ -216,6 +215,8 @@ public class ResourceValidationModelProv
         if (cacheEntry == null) {
             cacheEntry = doGetModels(relativeResourceType, validatorsMap);
             validationModelCacheByResourceType.put(relativeResourceType, 
cacheEntry);
+        } else {
+            LOG.debug("Found entry in cache for resource type {}", 
relativeResourceType);
         }
         return cacheEntry;
     }
@@ -237,6 +238,7 @@ public class ResourceValidationModelProv
             String[] searchPaths = resourceResolver.getSearchPath();
             for (String searchPath : searchPaths) {
                 final String queryString = String.format(MODEL_XPATH_QUERY, 
searchPath, relativeResourceType);
+                LOG.debug("Looking for validation models with query '{}'", 
queryString);
                 Iterator<Resource> models = 
resourceResolver.findResources(queryString, "xpath");
                 while (models.hasNext()) {
                     Resource model = models.next();
@@ -245,7 +247,7 @@ public class ResourceValidationModelProv
                     try {
                         ValidationModelBuilder modelBuilder = new 
ValidationModelBuilder();
                         ValueMap validationModelProperties = 
model.adaptTo(ValueMap.class);
-                        
modelBuilder.addApplicablePaths(validationModelProperties.get(ResourceValidationModelProviderImpl.APPLICABLE_PATHS,
 String[].class));
+                        
modelBuilder.addApplicablePaths(validationModelProperties.get(ResourceValidationModelProviderImpl.APPLICABLE_PATHS,
 new String[]{}));
                         Resource propertiesResource = 
model.getChild(ResourceValidationModelProviderImpl.PROPERTIES);
                         
modelBuilder.resourceProperties(buildProperties(validatorsMap, 
propertiesResource));
                         modelBuilder.childResources(buildChildren(model, 
model, validatorsMap));


Reply via email to