cxf-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sergey Beryozkin (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CXF-5309) Support Bean Validation API for JAX-RS
Date Tue, 15 Oct 2013 10:21:42 GMT

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

Sergey Beryozkin commented on CXF-5309:
---------------------------------------

Hi, here are some more comments; I need to finish some pending work and then I will join but
in meantime please try to do/experiment with the following:

- ValidationInInterceptor: I wonder if it was correct to start with interceptors after all;
we can definitely make the code getting a Method neutral between the various frontends but
the issue is that an actual service instance is really usually available at the invoker level;
For example, in this case, if we have a per-request JAX-RS instance then asking a resource
provider to get us an instance will lead to JAXRSInvoker creating a duplicate instance later.
JAXRSInvoker may also inject path/form/etc parameters into service objects if it is per-request
life-cycle, so the validation would miss those parameters if we do it early.

I guess similarly is the case with various JAX-WS invokers, lets keep it as is for now, but
we will need to revisit this issue and I feel that may be the invoker will need to be done
in the end - it is as pluggable as interceptors are.

- Please add  ValidationOutInterceptor, method return values have to be validated too. May
be we will end up with the using the invoker in the end, but lets continue with the interceptors
for now, I can do the invoker code myself when I work on applying the patch

- Can you experiment with ValidationProvider caching the introspection info ? I'm not exactly
sure what form it will take in the end but for now please have ValidationInInterceptor &
ValidationOutInterceptor injected with  ValidationProvider instead of creating it in ValidationInInterceptor,
and may be have a sync block in ValidationProvider which will do the introspection of BeanValidation
metadata / EL expressions if it is not there and then use it; 
May be we will do it later at the endpoint creation time to avoid the synchronization, but
for now lets try the POC way :-)

- Right now I thinking that the initial step for JAX-RS at least is that users will need to
register validation exception mappers and invoker (or interceptors) manually,  in order to
avoid the compile deps on the validation API - we will have to revisit this issue later; or
may be it will end up in the other module, will depend if we want CXF to ship the API deps,
to be discussed

I guess this is it for now; hope the above sounds reasonable. I'm going to help ASAP, need
to resolve few pending work items first, thanks

> Support Bean Validation API for JAX-RS
> --------------------------------------
>
>                 Key: CXF-5309
>                 URL: https://issues.apache.org/jira/browse/CXF-5309
>             Project: CXF
>          Issue Type: Sub-task
>          Components: JAX-RS, JAX-WS Runtime
>            Reporter: Sergey Beryozkin
>         Attachments: patch-validation-poc.txt
>
>




--
This message was sent by Atlassian JIRA
(v6.1#6144)

Mime
View raw message