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/02/23 16:08:19 UTC

svn commit: r1784164 - /sling/trunk/bundles/extensions/validation/core/src/main/java/org/apache/sling/validation/impl/ValidationModelRetrieverImpl.java

Author: kwin
Date: Thu Feb 23 16:08:19 2017
New Revision: 1784164

URL: http://svn.apache.org/viewvc?rev=1784164&view=rev
Log:
use Reference annotations correctly for method injection (broken after migration to OSGi DS annotations)

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=1784164&r1=1784163&r2=1784164&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 Feb 23 16:08:19 2017
@@ -62,13 +62,11 @@ public class ValidationModelRetrieverImp
     protected Map<String, Trie<ValidationModel>> validationModelsCache = new ConcurrentHashMap<String, Trie<ValidationModel>>();
 
     /** Map of validation providers (key=service properties) */
-    @Reference(name = "modelProvider", service = ValidationModelProvider.class, bind="bindModelProvider", policy = ReferencePolicy.DYNAMIC, cardinality = ReferenceCardinality.MULTIPLE)
     private RankedServices<ValidationModelProvider> modelProviders = new RankedServices<ValidationModelProvider>();
 
     /**
      * List of all known validators (key=classname of validator)
      */
-    @Reference(name = "validator",  service = Validator.class,  bind="bindValidator",policy = ReferencePolicy.DYNAMIC, cardinality = ReferenceCardinality.MULTIPLE)
     @Nonnull Map<String, Validator<?>> validators = new ConcurrentHashMap<String, Validator<?>>();
 
     @Reference
@@ -160,26 +158,28 @@ public class ValidationModelRetrieverImp
         return modelsForResourceType;
     }
 
-    protected void bindModelProvider(ValidationModelProvider modelProvider, Map<String, Object> props) {
+    @Reference(policy = ReferencePolicy.DYNAMIC, cardinality = ReferenceCardinality.MULTIPLE)
+    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);
         validationModelsCache.clear();
     }
 
-    protected void unbindModelProvider(ValidationModelProvider modelProvider, Map<String, Object> props) {
+    protected void removeModelProvider(ValidationModelProvider modelProvider, Map<String, Object> props) {
         modelProviders.unbind(modelProvider, props);
         LOG.debug("Invalidating models cache because model provider '{}' is no longer available", modelProvider);
         validationModelsCache.clear();
     }
 
-    protected void bindValidator(Validator<?> validator) {
+    @Reference(policy = ReferencePolicy.DYNAMIC, cardinality = ReferenceCardinality.MULTIPLE)
+    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",
                     validator.getClass().getName());
         }
     }
 
-    protected void unbindValidator(Validator<?> validator) {
+    protected void removeValidator(Validator<?> validator) {
         // also remove references to all validators in the cache
         validator = validators.remove(validator.getClass().getName());
         if (validator != null) {