I can't think why you would specify mapping files in [*-INF]/validation.xml just to ignore them. Rather you'd *either* use this file to configure the default Validator or bootstrap programmatically and use Configuration#addMapping() for your mappings. Do you have a use case to help me understand when you would want this "mixed" behavior?
Matt On Wed, Mar 19, 2014 at 4:03 PM, Michael Blyakher <michael.blyak...@gmail.com> wrote: > I'm prototyping the development efforts for pulling in the 1.1 > implementation into an EE app server, so I need be able to press the right > buttons on bval so that it is able to handle both the mappings files and > validation.xml. (I won't be able to control how an application specifies > it's mappings, but I need to ensure that specifying them in xml under > WEB-INF works) > > My concern was that I was going to run into the same issues loading the > mappings files as with validation.xml from WEB-INF unless the proposed > change somehow provided a way to tell bval to skip using the mappings found > in the provided parsed validation.xml and only use those provided by calling > Configuration#addMapping(). Otherwise I would call > Configuration#addMapping(), but bval would still try to find the mappings > resources itself and fail to do so. Does that make sense? > > > On Wed, Mar 19, 2014 at 12:32 PM, Matt Benson <gudnabr...@gmail.com> wrote: >> >> XML constraint mapping files are separate from xml validation config. >> So you either provide them via Configuration#addMapping() or in your >> validation.xml (or whatever you override with). >> >> Matt >> >> On Wed, Mar 19, 2014 at 11:39 AM, Michael Blyakher >> <michael.blyak...@gmail.com> wrote: >> > So if I understand this latest proposal correctly, any bootstrapper (EE >> > servers specifically) will be able to provide the parsed validation.xml >> > configuration to the ApacheValidatorConfiguration? >> > >> > If so, how will this work with the mappings config files? If for example >> > I >> > have my constraints defined in WEB-INF/my-mappings.xml, while >> > bootstrapping >> > will I still be able to set the InputStream for that file without bval >> > trying to do it as well (and not finding this resource at this >> > location)? >> > Previously this could be accomplished by specifying >> > Configuration.ignoreXMLConfiguration, but I don't quite see how that >> > would >> > work in this case. >> > >> > Thanks, >> > Mike >> > >> > >> > On Wed, Mar 19, 2014 at 11:11 AM, Romain Manni-Bucau >> > <rmannibu...@gmail.com> >> > wrote: >> >> >> >> Well if we can avoid to fork/branch tomee before next release would be >> >> awesome but yes it sonds reasonable and avoiding jvm SPI is awesome >> >> Romain Manni-Bucau >> >> Twitter: @rmannibucau >> >> Blog: http://rmannibucau.wordpress.com/ >> >> LinkedIn: http://fr.linkedin.com/in/rmannibucau >> >> Github: https://github.com/rmannibucau >> >> >> >> >> >> >> >> 2014-03-19 17:10 GMT+01:00 Matt Benson <gudnabr...@gmail.com>: >> >> > Actually, come to think of it, we don't have to do it as a "services" >> >> > SPI at all; we can just define the interface and have it be a custom >> >> > config item for ApacheValidatorConfiguration. This makes it more >> >> > explicit and TomEE can just specify when bootstrapping--hopefully, >> >> > anyway. We'll see if there are any gotchas and hopefully we can get >> >> > it >> >> > working in a TomEE branch or fork before we set it in stone. Okay? >> >> > >> >> > Matt >> >> > >> >> > On Wed, Mar 19, 2014 at 11:06 AM, Matt Benson <gudnabr...@gmail.com> >> >> > wrote: >> >> >> Well, in that case I don't see how we can really go wrong there. >> >> >> I'll >> >> >> try to remember to do this as I'm hacking BVal in the coming weeks >> >> >> and >> >> >> maybe we can then see how it looks in TomEE. >> >> >> >> >> >> Matt >> >> >> >> >> >> On Wed, Mar 19, 2014 at 11:00 AM, Romain Manni-Bucau >> >> >> <rmannibu...@gmail.com> wrote: >> >> >>> that's what I was thinking about but when I hacked 1.1 branch I was >> >> >>> really thinking adding it when integrating tomee to avoid a useless >> >> >>> or >> >> >>> wrong SPI. >> >> >>> Romain Manni-Bucau >> >> >>> Twitter: @rmannibucau >> >> >>> Blog: http://rmannibucau.wordpress.com/ >> >> >>> LinkedIn: http://fr.linkedin.com/in/rmannibucau >> >> >>> Github: https://github.com/rmannibucau >> >> >>> >> >> >>> >> >> >>> >> >> >>> 2014-03-19 16:59 GMT+01:00 Matt Benson <gudnabr...@gmail.com>: >> >> >>>> So are you proposing the SPI look more like: >> >> >>>> >> >> >>>> public interface DefaultValidationConfigProvider { >> >> >>>> org.apache.bval.jsr.xml.ValidationConfigType >> >> >>>> getDefaultValidationConfig(); >> >> >>>> } >> >> >>>> >> >> >>>> ? >> >> >>>> >> >> >>>> Matt >> >> >>>> >> >> >>>> On Wed, Mar 19, 2014 at 10:57 AM, Romain Manni-Bucau >> >> >>>> <rmannibu...@gmail.com> wrote: >> >> >>>>> Cause: >> >> >>>>> 1) TomEE added some features relying on internal config >> >> >>>>> (placeholders etc) >> >> >>>>> 2) TomEE uses its own model for all EE descriptors whatever the >> >> >>>>> spec >> >> >>>>> is >> >> >>>>> >> >> >>>>> That's not an issue on BVal side but it will need to be >> >> >>>>> integrated >> >> >>>>> without forking as much as possible >> >> >>>>> >> >> >>>>> Romain Manni-Bucau >> >> >>>>> Twitter: @rmannibucau >> >> >>>>> Blog: http://rmannibucau.wordpress.com/ >> >> >>>>> LinkedIn: http://fr.linkedin.com/in/rmannibucau >> >> >>>>> Github: https://github.com/rmannibucau >> >> >>>>> >> >> >>>>> >> >> >>>>> >> >> >>>>> 2014-03-19 16:52 GMT+01:00 Matt Benson <gudnabr...@gmail.com>: >> >> >>>>>> Why can't TomEE rely on BVal for parsing? We should devise >> >> >>>>>> something >> >> >>>>>> as simple as possible, whatever the case. >> >> >>>>>> >> >> >>>>>> Matt >> >> >>>>>> >> >> >>>>>> On Wed, Mar 19, 2014 at 10:45 AM, Romain Manni-Bucau >> >> >>>>>> <rmannibu...@gmail.com> wrote: >> >> >>>>>>> well this way we'll need another spi for TomEE which can't rely >> >> >>>>>>> on >> >> >>>>>>> BVal for parsing. That's why I thought sending the parsing >> >> >>>>>>> result >> >> >>>>>>> >> >> >>>>>>> >> >> >>>>>>> BTW any urgence on it? >> >> >>>>>>> Romain Manni-Bucau >> >> >>>>>>> Twitter: @rmannibucau >> >> >>>>>>> Blog: http://rmannibucau.wordpress.com/ >> >> >>>>>>> LinkedIn: http://fr.linkedin.com/in/rmannibucau >> >> >>>>>>> Github: https://github.com/rmannibucau >> >> >>>>>>> >> >> >>>>>>> >> >> >>>>>>> >> >> >>>>>>> 2014-03-19 16:43 GMT+01:00 Matt Benson <mben...@apache.org>: >> >> >>>>>>>> I was thinking along the lines Michael says. e.g.: >> >> >>>>>>>> >> >> >>>>>>>> public interface DefaultValidationConfigurationProvider { >> >> >>>>>>>> InputStream getDefaultValidationConfiguration(); >> >> >>>>>>>> } >> >> >>>>>>>> >> >> >>>>>>>> Then we use ServiceLoader (functional equivalent for BVal 1.0, >> >> >>>>>>>> Java 5) >> >> >>>>>>>> to find any available implementations. If none found, we fall >> >> >>>>>>>> back to: >> >> >>>>>>>> >> >> >>>>>>>> class StandardDefaultValidationConfigurationProvider >> >> >>>>>>>> implements >> >> >>>>>>>> DefaultValidationConfigurationProvider { >> >> >>>>>>>> final Properties properties; >> >> >>>>>>>> StandardDefaultValidationConfigurationProvider(Properties >> >> >>>>>>>> properties) { >> >> >>>>>>>> this.properties = properties; >> >> >>>>>>>> } >> >> >>>>>>>> >> >> >>>>>>>> public InputStream getDefaultValidationConfiguration() { >> >> >>>>>>>> // look for property pointing to custom resource, else >> >> >>>>>>>> META-INF/validation.xml >> >> >>>>>>>> // ensure only one such resource >> >> >>>>>>>> // return getResourceAsStream(resourceName) >> >> >>>>>>>> } >> >> >>>>>>>> } >> >> >>>>>>>> >> >> >>>>>>>> This way TomEE would simply have to provide: >> >> >>>>>>>> >> >> >>>>>>>> WebApplicationDefaultValidationConfigurationProvider >> >> >>>>>>>> implements >> >> >>>>>>>> DefaultValidationConfigurationProvider { >> >> >>>>>>>> public InputStream getDefaultValidationConfiguration() { >> >> >>>>>>>> return >> >> >>>>>>>> >> >> >>>>>>>> getServletContext().getResourceAsStream("WEB-INF/validation.xml"); >> >> >>>>>>>> } >> >> >>>>>>>> >> >> >>>>>>>> private static ServletContext getServletContext() { >> >> >>>>>>>> // TBD >> >> >>>>>>>> } >> >> >>>>>>>> } >> >> >>>>>>>> >> >> >>>>>>>> Matt >> >> >>>>>>>> >> >> >>>>>>>> On Wed, Mar 19, 2014 at 10:28 AM, Romain Manni-Bucau >> >> >>>>>>>> <rmannibu...@gmail.com> wrote: >> >> >>>>>>>>> Actually I'd expect the SPI to give the processed instance >> >> >>>>>>>>> and >> >> >>>>>>>>> not the >> >> >>>>>>>>> location. That's why i sugegsted to wait a bit for it to see >> >> >>>>>>>>> the >> >> >>>>>>>>> real >> >> >>>>>>>>> need. >> >> >>>>>>>>> >> >> >>>>>>>>> >> >> >>>>>>>>> Romain Manni-Bucau >> >> >>>>>>>>> Twitter: @rmannibucau >> >> >>>>>>>>> Blog: http://rmannibucau.wordpress.com/ >> >> >>>>>>>>> LinkedIn: http://fr.linkedin.com/in/rmannibucau >> >> >>>>>>>>> Github: https://github.com/rmannibucau >> >> >>>>>>>>> >> >> >>>>>>>>> >> >> >>>>>>>>> >> >> >>>>>>>>> 2014-03-19 16:10 GMT+01:00 Michael Blyakher >> >> >>>>>>>>> <michael.blyak...@gmail.com>: >> >> >>>>>>>>>> How would an SPI like this work? Would it allow the EE >> >> >>>>>>>>>> server >> >> >>>>>>>>>> to specify >> >> >>>>>>>>>> the location of the validation.xml (maybe in the form of an >> >> >>>>>>>>>> InputStream)? >> >> >>>>>>>>>> >> >> >>>>>>>>>> >> >> >>>>>>>>>> On Tue, Mar 18, 2014 at 1:59 PM, Romain Manni-Bucau >> >> >>>>>>>>>> <rmannibu...@gmail.com>wrote: >> >> >>>>>>>>>> >> >> >>>>>>>>>>> tomee parses it itself and then create the configuration >> >> >>>>>>>>>>> itself. I >> >> >>>>>>>>>>> think we can wait tomee starts javaee7 to write it since it >> >> >>>>>>>>>>> should be >> >> >>>>>>>>>>> very soon (when next release is done) and it would be the >> >> >>>>>>>>>>> main >> >> >>>>>>>>>>> and >> >> >>>>>>>>>>> more demanding user. >> >> >>>>>>>>>>> Romain Manni-Bucau >> >> >>>>>>>>>>> Twitter: @rmannibucau >> >> >>>>>>>>>>> Blog: http://rmannibucau.wordpress.com/ >> >> >>>>>>>>>>> LinkedIn: http://fr.linkedin.com/in/rmannibucau >> >> >>>>>>>>>>> Github: https://github.com/rmannibucau >> >> >>>>>>>>>>> >> >> >>>>>>>>>>> >> >> >>>>>>>>>>> >> >> >>>>>>>>>>> 2014-03-18 19:42 GMT+01:00 Matt Benson >> >> >>>>>>>>>>> <mben...@apache.org>: >> >> >>>>>>>>>>> > On Tue, Mar 18, 2014 at 1:01 PM, Michael Blyakher >> >> >>>>>>>>>>> > <michael.blyak...@gmail.com> wrote: >> >> >>>>>>>>>>> >> Hi All, >> >> >>>>>>>>>>> >> >> >> >>>>>>>>>>> >> Thanks for the quick replies, and apologies for not >> >> >>>>>>>>>>> >> being >> >> >>>>>>>>>>> >> more specific >> >> >>>>>>>>>>> - I >> >> >>>>>>>>>>> >> was quoting the EE 7 Platform spec as I am particularly >> >> >>>>>>>>>>> >> interested in >> >> >>>>>>>>>>> using >> >> >>>>>>>>>>> >> the bval 1.1 implementation that hasn't been officially >> >> >>>>>>>>>>> >> released yet. >> >> >>>>>>>>>>> >> >> >> >>>>>>>>>>> >> But from what I am hearing, it is the responsibility of >> >> >>>>>>>>>>> >> an >> >> >>>>>>>>>>> >> EE server to >> >> >>>>>>>>>>> >> handle the WEB-INF case. I can see how this is possible >> >> >>>>>>>>>>> >> for >> >> >>>>>>>>>>> >> the 1.0 >> >> >>>>>>>>>>> >> implementation, as the server can parse the >> >> >>>>>>>>>>> >> validation.xml >> >> >>>>>>>>>>> >> itself and >> >> >>>>>>>>>>> >> bootstrap the configuration through the validation spec >> >> >>>>>>>>>>> >> API's. How would >> >> >>>>>>>>>>> >> this be done for the current 1.1 implementation in the >> >> >>>>>>>>>>> >> bval-1.1 branch >> >> >>>>>>>>>>> in >> >> >>>>>>>>>>> >> the repository? I don't see how the values for the >> >> >>>>>>>>>>> "executable-validation" >> >> >>>>>>>>>>> >> element could be provided to the impl through the >> >> >>>>>>>>>>> >> validation spec API's. >> >> >>>>>>>>>>> >> >> >> >>>>>>>>>>> > >> >> >>>>>>>>>>> > Well, the >> >> >>>>>>>>>>> >> >> >>>>>>>>>>> >> >> >>>>>>>>>>> http://bval.apache.org/mvnsite/bval-jsr303/apidocs/org/apache/bval/jsr303/ApacheValidatorConfiguration.Properties.html#VALIDATION_XML_PATH >> >> >>>>>>>>>>> > property can be used to point to a different resource on >> >> >>>>>>>>>>> > the >> >> >>>>>>>>>>> > classpath, but I can't find any mechanism that could be >> >> >>>>>>>>>>> > used >> >> >>>>>>>>>>> > to hook >> >> >>>>>>>>>>> > up WEB-INF/validation.xml, and I can't find how TomEE >> >> >>>>>>>>>>> > does >> >> >>>>>>>>>>> > it, so >> >> >>>>>>>>>>> > AFAICT you have indeed found what I consider a problem. >> >> >>>>>>>>>>> > Off >> >> >>>>>>>>>>> > the top of >> >> >>>>>>>>>>> > my head I think we could solve it by adding a simple SPI >> >> >>>>>>>>>>> > to >> >> >>>>>>>>>>> > discover >> >> >>>>>>>>>>> > the default validation configuration resource. Thoughts? >> >> >>>>>>>>>>> > >> >> >>>>>>>>>>> > Matt >> >> >>>>>>>>>>> > >> >> >>>>>>>>>>> >> Thanks, >> >> >>>>>>>>>>> >> Michael >> >> >>>>>>>>>>> >> >> >> >>>>>>>>>>> >> >> >> >>>>>>>>>>> >> On Tue, Mar 18, 2014 at 12:13 PM, Romain Manni-Bucau >> >> >>>>>>>>>>> >> <rmannibu...@gmail.com>wrote: >> >> >>>>>>>>>>> >> >> >> >>>>>>>>>>> >>> Hi >> >> >>>>>>>>>>> >>> >> >> >>>>>>>>>>> >>> Bval only looks in META-INF but TomEE for instance >> >> >>>>>>>>>>> >>> (more >> >> >>>>>>>>>>> >>> generally EE >> >> >>>>>>>>>>> >>> servers) handles WEB-INF case. >> >> >>>>>>>>>>> >>> Romain Manni-Bucau >> >> >>>>>>>>>>> >>> Twitter: @rmannibucau >> >> >>>>>>>>>>> >>> Blog: http://rmannibucau.wordpress.com/ >> >> >>>>>>>>>>> >>> LinkedIn: http://fr.linkedin.com/in/rmannibucau >> >> >>>>>>>>>>> >>> Github: https://github.com/rmannibucau >> >> >>>>>>>>>>> >>> >> >> >>>>>>>>>>> >>> >> >> >>>>>>>>>>> >>> >> >> >>>>>>>>>>> >>> 2014-03-18 17:50 GMT+01:00 Michael Blyakher < >> >> >>>>>>>>>>> michael.blyak...@gmail.com>: >> >> >>>>>>>>>>> >>> > Hi, >> >> >>>>>>>>>>> >>> > >> >> >>>>>>>>>>> >>> > Where is the validation.xml supposed to be for a web >> >> >>>>>>>>>>> >>> > archive? The >> >> >>>>>>>>>>> bval >> >> >>>>>>>>>>> >>> > spec's only indicate the "META-INF/validation.xml" >> >> >>>>>>>>>>> >>> > location, but the >> >> >>>>>>>>>>> EE >> >> >>>>>>>>>>> >>> > platform spec indicates that for a web archive this >> >> >>>>>>>>>>> >>> > location must be >> >> >>>>>>>>>>> >>> > "WEB-INF/validation.xml". >> >> >>>>>>>>>>> >>> > >> >> >>>>>>>>>>> >>> > EE.5.17 - "The name of the descriptor is >> >> >>>>>>>>>>> >>> > WEB-INF/validation.xml for >> >> >>>>>>>>>>> web >> >> >>>>>>>>>>> >>> > modules and META-INF/validation.xml for all other >> >> >>>>>>>>>>> >>> > types >> >> >>>>>>>>>>> >>> > of modules." >> >> >>>>>>>>>>> >>> > >> >> >>>>>>>>>>> >>> > Given this, I don't see anywhere in the bval 1.0 or >> >> >>>>>>>>>>> >>> > 1.1 >> >> >>>>>>>>>>> >>> > code that >> >> >>>>>>>>>>> handles >> >> >>>>>>>>>>> >>> > this. Am I missing something or does this >> >> >>>>>>>>>>> >>> > implementation >> >> >>>>>>>>>>> >>> > not handle >> >> >>>>>>>>>>> this >> >> >>>>>>>>>>> >>> > case for web archives? >> >> >>>>>>>>>>> >>> > >> >> >>>>>>>>>>> >>> > Thanks, >> >> >>>>>>>>>>> >>> > Michael >> >> >>>>>>>>>>> >>> >> >> >>>>>>>>>>> >> > >> > > >