You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by kw...@apache.org on 2017/03/01 10:14:13 UTC
svn commit: r1784906 -
/sling/trunk/bundles/extensions/validation/core/src/main/java/org/apache/sling/validation/impl/ValidationModelRetrieverImpl.java
Author: kwin
Date: Wed Mar 1 10:14:13 2017
New Revision: 1784906
URL: http://svn.apache.org/viewvc?rev=1784906&view=rev
Log:
greedily bind validators and modelproviders, the latter should lead to a restart of this service
Modified:
sling/trunk/bundles/extensions/validation/core/src/main/java/org/apache/sling/validation/impl/ValidationModelRetrieverImpl.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=1784906&r1=1784905&r2=1784906&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 Wed Mar 1 10:14:13 2017
@@ -39,6 +39,7 @@ import org.osgi.service.component.annota
import org.osgi.service.component.annotations.Reference;
import org.osgi.service.component.annotations.ReferenceCardinality;
import org.osgi.service.component.annotations.ReferencePolicy;
+import org.osgi.service.component.annotations.ReferencePolicyOption;
import org.osgi.service.event.Event;
import org.osgi.service.event.EventConstants;
import org.osgi.service.event.EventHandler;
@@ -56,7 +57,7 @@ public class ValidationModelRetrieverImp
public static final String CACHE_INVALIDATION_EVENT_TOPIC = "org/apache/sling/validation/cache/INVALIDATE";
/**
- * Map of known validation models (key=validated resourceType, value=trie of ValidationModels sorted by their
+ * Map of known validation models (key=validated resourceType, value={@link Trie} of {@link ValidationModel}s sorted by their
* allowed paths)
*/
protected Map<String, Trie<ValidationModel>> validationModelsCache = new ConcurrentHashMap<String, Trie<ValidationModel>>();
@@ -150,7 +151,7 @@ public class ValidationModelRetrieverImp
return modelsForResourceType;
}
- @Reference(policy = ReferencePolicy.DYNAMIC, cardinality = ReferenceCardinality.MULTIPLE)
+ @Reference(policy = ReferencePolicy.DYNAMIC, cardinality = ReferenceCardinality.MULTIPLE, policyOption=ReferencePolicyOption.GREEDY)
protected synchronized void addModelProvider(ValidationModelProvider modelProvider, Map<String, Object> props) {
modelProviders.bind(modelProvider, props);
LOG.debug("Invalidating models cache because new model provider '{}' available", modelProvider);
@@ -163,7 +164,7 @@ public class ValidationModelRetrieverImp
validationModelsCache.clear();
}
- @Reference(policy = ReferencePolicy.DYNAMIC, cardinality = ReferenceCardinality.MULTIPLE)
+ @Reference(cardinality = ReferenceCardinality.MULTIPLE, policyOption=ReferencePolicyOption.GREEDY)
protected void addValidator(Validator<?> validator) {
if (validators.put(validator.getClass().getName(), validator) != null) {
LOG.debug("Validator with the name '{}' has been registered in the system already and was now overwritten",