You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@sling.apache.org by "Konrad Windszus (JIRA)" <ji...@apache.org> on 2014/11/13 17:57:35 UTC

[jira] [Created] (SLING-4161) Support Sling Validation through a new field of the Model annotation

Konrad Windszus created SLING-4161:
--------------------------------------

             Summary: Support Sling Validation through a new field of the Model annotation
                 Key: SLING-4161
                 URL: https://issues.apache.org/jira/browse/SLING-4161
             Project: Sling
          Issue Type: Improvement
          Components: Extensions
    Affects Versions: Sling Models Implementation 1.0.0, Sling Models API 1.0.0
            Reporter: Konrad Windszus


The current way of integrating Sling Validation (SLING-2803) with Sling Models is to inject the validation service and then call it within a PostConstruct method (http://www.slideshare.net/raducotescu/apache-sling-generic-validation-framework/16).
This has the drawback that
# the {{ValidationService}} needs to be injected
# a PostConstruct needs to be implemented
# the other injections need to be marked as optional (otherwise the validation is never triggered in case of e.g. missing required valuemap values)

Instead it would be good to support this use case with just an additional field on the annotation {{Model}} which is named {{validate}}. By default this should be {{false}} (to be backwards compatible), but if it is {{true}} the Sling Validation should be called before any values are injected into the model. If validation fails the {{ModelAdapterFactory}} should never instanciate the model and rather return null (or throw a meaningful exception for SLING-3709).




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)