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 >>>>>>>>>> >>> >>>>>>>>>>