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