[bv-dev] Bean Validation 2.0 Early Draft: Web Container Clarification Request

Gunnar Morling gunnar at hibernate.org
Thu Mar 23 12:36:49 EDT 2017


My question then is whether WEB-INF/persistence.xml is supported by JPA or
not.

>From looking at the JPA 2.1 and Java EE 7 specs, that seems not to be the
case. Also just tried it on WildFly 10.1, and it's ignored when given at
WEB-INF/persistence.xml.

2017-03-21 14:40 GMT+01:00 Emmanuel Bernard <emmanuel at hibernate.org>:

> As BVAL-200 says, it was intended to support validation.xml int he same
> places persistence.xml is supported for consistency.
> Check out what is said about JPA. It might be the same issue though.
>
> On 21 Mar 2017, at 01:51, Gunnar Morling <gunnar at hibernate.org> wrote:
>
> BVAL-200 is not exactly the same (I've filed https://hibernate.atlassian.
> net/browse/BVAL-581 for the current one).
>
> BVAL-200 is about the fact that "META-INF" is located within
> WEB-INF/classes for WARs. All is good with that.
>
> But the JavaEE spec actually says that "WEB-INF/validation.xml" (i.e. not
> "WEB-INF/classes/META-INF/validation.xml") should be used for web
> modules. AFAICS, this never has worked with the RI, but it seems to be the
> case for Apache Bval.
>
> Emmanuel, do you remember whether it was actually intended to use
> "WEB-INF/validation.xml" for web modules?
>
>
> 2017-03-21 1:28 GMT+01:00 Emmanuel Bernard <emmanuel at hibernate.org>:
>
>> https://hibernate.atlassian.net/browse/BVAL-200
>>
>> On 20 Mar 2017, at 04:34, Gunnar Morling <gunnar at hibernate.org> wrote:
>>
>> Hi,
>>
>> Thanks for bringing up this issue, Nathan.
>>
>> The Bean Validation spec expects the file to be at
>> META-INF/validation.xml, no matter what type of application it is. I'll
>> need to dig a bit deeper why the platform spec mentions
>> WEB-INF/validation.xml.
>>
>> > the TCK uses the WEB-INF/validation.xml location
>>
>> Do you have a pointer to this usage? Please send it to me off-list if
>> it's somewhere within the EE TCK. The BV TCK itself uses
>> META-INF/validation.xml.
>>
>> > Therefore, I'd expect a lot of users in the field to be using the
>> WEB-INF location
>>
>> I just tried WEB-INF/validation.xml in a plain WAR as well as a WAR
>> within an EAR, and it wouldn't be applied either way (testing the BV
>> reference implementation). Do you have a test case which shows successful
>> usage of WEB-INF/validation.xml?
>>
>> > Otherwise, the JavaEE Platform spec could be changed to no longer
>> state WEB-INF/validation.xml
>>
>> My current inclination is to suggest exactly that to the Java EE leads,
>> as it seems like a glitch and I can't see how it'd ever work with the RI. But
>> I'll synch with Emmanuel (former BV lead) to make sure I'm not missing a
>> piece.
>>
>> @Marco,
>>
>> > The implementation of 'WEB-INF/validation.xml' for the web components
>> and its
>> > integration with Bean Validation is the full responsibility (EE.5.16.2)
>> of the Java EE
>> > Product Provider that declares it
>>
>> You seem to suggest that a container somehow may make it that
>> WEB-INF/validation.xml is exposed as META-INF/validation.xml to the BV
>> provider. That may theoretically be doable, but I don't think it's intended
>> or suggested by the EE spec.
>>
>> Specifically, section EE.5.16 deals with the "application client
>> container" property which the container must set depending on where this
>> app is running (ACC vs. web/EJB container). It's not related to the
>> retrieval of BV deployment descriptors.
>>
>> --Gunnar
>>
>>
>> 2017-03-17 20:03 GMT+01:00 Marco Molteni <moltenma at gmail.com>:
>>
>>> Hi Nathan,
>>>
>>> I agree that can be confusing for the developers that read the two
>>> documents but the specification of BV is, IMHO, consistent:
>>>
>>> 1.2. Specification Goals:  'The validation API developed by this JSR is
>>> not intended for use in any one tier or programming model. It is
>>> specifically not tied to either the web tier or the persistence tier'.
>>>
>>> And the JavaEE spec version 7 (and 8) :
>>> 'EE.5.16.2 Java EE Product Provider’s Responsibilities
>>> The Java EE Product Provider is responsible for providing the correct
>>> application client container property as required by this specification.'
>>>
>>>
>>> 'EE.5.17.1 Application Component Provider’s Responsibilities
>>> [...] The Application Component Provider may customize the
>>> ValidatorFactory and (indirectly) Validator instances by including a Bean
>>> Validation deployment descriptor inside a specific module of the
>>> application.'
>>>
>>> 'EE.5.17.2 Java EE Product Provider’s Responsibilities
>>> [...] These objects must be used to configure the default
>>> ValidatorFactory available at java:comp/ValidatorFactory in accordance with
>>> the bootstrapping APIs described by the Bean Validation specification.
>>> [...]'
>>>
>>>
>>> The implementation of 'WEB-INF/validation.xml' for the web components
>>> and its integration with Bean Validation is the full responsibility
>>> (EE.5.16.2) of the Java EE Product Provider that declares it .
>>> The Bean Validation doesn't have to worry (or know) about the existence
>>> of a web component or a web configuration directory, it's out of its scope.
>>> The correct configuration and communication between these (Web and BC)
>>> and other components is regulated by the container (EE.2.4).
>>>
>>> The documents are (maybe) confusing but correct, in my opinion.
>>>
>>> Regards
>>>
>>> Marco
>>>
>>>
>>> Am 15.03.2017 um 17:39 schrieb Nathan Mittlestat <nmittles at gmail.com>:
>>>
>>> Hi All,
>>>
>>> One area I'd like to see a clarification on in the spec is around the
>>> location of the validation.xml in a JavaEE web container environment.  The
>>> Bean Validation spec indicates the validation.xml is always at
>>> META-INF/validation.xml.  The JavaEE Platform spec states
>>> WEB-INF/validation.xml should be used for web modules. The entire Bean
>>> Validation spec has no mention of web modules, and seems to mainly focus on
>>> JavaSE.  However, it does mention integration points such as CDI and
>>> JAX-RS, so I don't think it would be out of line to clarify in the Bean
>>> Validation spec for web modules.  Otherwise, the JavaEE Platform spec could
>>> be changed to no longer state WEB-INF/validation.xml, but previous JavaEE
>>> versions already include this, and the TCK uses the WEB-INF/validation.xml
>>> location. Therefore, I'd expect a lot of users in the field to be using the
>>> WEB-INF location.
>>>
>>> The Bean Validation spec has the following section (page 206):
>>> Unless explicitly ignored by calling Configuration.ignoreXMLConfiguration(),
>>> a Configuration takes into
>>> account the configuration available in META-INF/validation.xml. This
>>> configuration file is optional but
>>> can be used by applications to refine some of the Bean Validation
>>> behavior. If more than one META-
>>> INF/validation.xml file is found in the classpath, a ValidationException
>>> is raised.
>>>
>>> In contrasts the JavaEE Platform spec has (page 127 of JavaEE 7):
>>> In order to customize the returned ValidatorFactory, an EJB, web or
>>> application client module may specify a Bean Validation XML deployment
>>> descriptor. The name of the descriptor is WEB-INF/validation.xml for web
>>> modules and META-INF/validation.xml for all other types of modules.
>>>
>>>
>>>
>>> --Nathan
>>> _______________________________________________
>>> beanvalidation-dev mailing list
>>> beanvalidation-dev at lists.jboss.org
>>> https://lists.jboss.org/mailman/listinfo/beanvalidation-dev
>>>
>>>
>>>
>>> _______________________________________________
>>> beanvalidation-dev mailing list
>>> beanvalidation-dev at lists.jboss.org
>>> https://lists.jboss.org/mailman/listinfo/beanvalidation-dev
>>>
>>
>> _______________________________________________
>> beanvalidation-dev mailing list
>> beanvalidation-dev at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/beanvalidation-dev
>>
>>
>>
>> _______________________________________________
>> beanvalidation-dev mailing list
>> beanvalidation-dev at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/beanvalidation-dev
>>
>
> _______________________________________________
> beanvalidation-dev mailing list
> beanvalidation-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/beanvalidation-dev
>
>
>
> _______________________________________________
> beanvalidation-dev mailing list
> beanvalidation-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/beanvalidation-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/beanvalidation-dev/attachments/20170323/21be75c6/attachment-0001.html 


More information about the beanvalidation-dev mailing list