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 2017/03/19 14:15:42 UTC

[jira] [Commented] (SLING-6660) Validators should expose their id and severity

    [ https://issues.apache.org/jira/browse/SLING-6660?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15931704#comment-15931704 ] 

Konrad Windszus commented on SLING-6660:
----------------------------------------

Although this approach would simplify code within the validator core, it would be then more effort to implement a Validator. Especially in the future with Mapped Field Injection (https://github.com/osgi/design/blob/master/rfcs/rfc0222/rfc-0222-DeclarativeServicesUpdates.pdf, 3.4) it is less effort to rely on service properties only.

Also I think it makes sense to enforce using service properties for both id and severity (to allow to reconfigure those even for existing Validator's). Also inspecting both {{id}} and {{severity}} in the web console in the existing components plugin is useful during debugging (otherwise a dedicated web console plugin would be necessary).

Currently an exception is thrown during binding (https://github.com/apache/sling/blob/trunk/bundles/extensions/validation/core/src/main/java/org/apache/sling/validation/impl/ValidationModelRetrieverImpl.java#L198) when a validator is found lacking the mandatory service.property.

Not too sure what is the better solution, though. At least for {{org.apache.sling.spi.resource.provider.ResourceProvider}} (https://github.com/apache/sling/blob/trunk/bundles/api/src/main/java/org/apache/sling/spi/resource/provider/ResourceProvider.java) it is also required to set some service properties (without exposing those values through dedicated methods).

I would be interested to hear the opinion of [~cziegeler] on this one.


> Validators should expose their id and severity
> ----------------------------------------------
>
>                 Key: SLING-6660
>                 URL: https://issues.apache.org/jira/browse/SLING-6660
>             Project: Sling
>          Issue Type: Improvement
>          Components: Extensions, Validation
>            Reporter: Oliver Lietz
>
> {{Validator}}s should expose their {{id}} and {{severity}} (maybe from service properties, but haven't to be service properties at all) by their own:
> {noformat}
> [...]
> public interface Validator <T> {
> [...]
>     String getId(); // validator.id
>     int getSeverity(); // validator.severity
> [...]
> }
> {noformat}
> This addition allows less code in {{ValidationModelRetrieverImpl}} and makes {{ValidatorAndSeverity}} obsolete.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)