[
https://issues.apache.org/jira/browse/SLING-4161?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14239208#comment-14239208
]
Konrad Windszus commented on SLING-4161:
----------------------------------------
I was finally able to execute the Models IT successfully and there it ran fine
(without Sling Validation being installed). I locally modified the patch a bit
further and removed any dependencies to Sling Validation from the
ModelAdapterFacotry. I also tested to deploy Sling Validation Bundle afterwards
and now the validation was working (without restarting the Sling Models Bundle)
and removing Sling Validation is also working (i.e. Sling Models still work but
of course no longer supporting the validation).
> 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
> 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)