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