You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@sling.apache.org by "Stefan Seifert (JIRA)" <ji...@apache.org> on 2015/03/27 12:49:53 UTC

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

     [ https://issues.apache.org/jira/browse/SLING-4161?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Stefan Seifert reopened SLING-4161:
-----------------------------------

this has to be moved to a separate bundle.

according to [recent mailing list discussion|apache-sling.73963.n3.nabble.com/Sling-Models-1-2-Validation-tt4048605.html] we should not put any dependency to contrib bundles in a main sling bundle.

even if it is optional, it is still a hard build dependency.

another option would be to invest more work into the sling validation bundle so it can moved out of contrib and finalized (needs discussion in mailing list).

otherwise the next sling models release is blocked.

> 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 API 1.0.0, Sling Models Implementation 1.0.0
>            Reporter: Konrad Windszus
>            Assignee: Konrad Windszus
>             Fix For: Sling Models API 1.2.0, Sling Models Impl 1.2.0
>
>         Attachments: SLING-4161-api-v02.patch, SLING-4161-impl-v02.patch
>
>
> 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)