On Aug 22, 2011, at 4:51 PM, David Blevins wrote: > Looked into it a bit. > > Most the BVal tests seem to be failing due to classLoader.getResource() calls > in Apache BVal looking for schemas. Probably there's some way we could work > around that as we already have logic for this in BValModuleBuilderExtension. > > There is one failure however that will not pass with > BundleResourceHelper.searchWiredBundles=false ... at least not the way it's > implemented. ValidationProviderResolverTest is implementing its own provider > search and verifying it works. Better said they're executing: > > classloader.getResources("META-INF/services/" + > ValidationProvider.class.getName()); > > And verifying that there is at least one provider found. Our version of that > API has been extended to support more OSGi friendly search mechanisms -- the > code Rick wrote. > > The options as I see them: > > 1. challenge the test
Can't say I recall the spec well enough to evaluate that. > 2. Don't use BundleResourceHelper.searchWiredBundles=false and live with the > performance we have Yep. Kind of nice to be in that situation. :) I just ran measurements to be sure... like searchWiredBundles=false is knocking 4-5 seconds of my startup on a Linux VM w/ 2 GB RAM, and 2 cores (18-13). So, would be kind of nice if we could find a way to avoid searchWiredBundles. But we can live with it, also... Also, don't know what issues might be raised by a full TCK run... > 3. Make the BundleResourceHelper.searchWiredBundles functionality more > configurable so validation API can be exempt from limited search > 4. Physically add a > META-INF/services/javax.validation.spi.ValidationProvider file to apps > 5. Somehow intercept calls to getResources(foo) and do like we did with the > ServiceLoader searching of OWB and supply known implementations up front. > Not sure if that is even possible in this situation. > > Open to ideas. Me too... I guess 4 is a possibility. Don't think I'd want to add the complexity for 3) or 5) --kevan