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",