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