When I combined the explicit provider code with the use of bval instead of hibernate, I got it all working. Until my current firedrill is drilled, then, I won't have time to build a test case to explore what's so hard about hibernate.
On Sun, Nov 8, 2015 at 5:30 PM, Benson Margulies <[email protected]> wrote: > Unfortunately, I see that the code you pointed me at is identical to > the code I'd worked out for myself, with the exception of some minor > version differences. Avoiding the use of wrap, it works in the case I > have where there's no use of pax-web. I didn't used to have a test in > Karaf for the smaller test, I just had a test in felix. > > In my larger environment that does have pax-web, I'm right back where > I was before, with problems not finding com.sun.el classes. Note that > the code you pointed at takes over finding Validator providers, but > has no special effect on finding EL implementations. > > I guess my next step is to make a test case that i can publish. Maybe > Karaf 4.0.3 won't hang in pax-exam when wrap is in use. > > > > > On Sun, Nov 8, 2015 at 4:24 PM, Benson Margulies <[email protected]> wrote: >> Karaf 4.0.2 hangs on this; I suspect it's the use of wrap. >> >> On Sun, Nov 8, 2015 at 3:37 PM, Benson Margulies <[email protected]> >> wrote: >>> That looks promising. Ever tried it with Karaf 4? I'm about to fire it up. >>> >>> On Sun, Nov 8, 2015 at 3:31 PM, Christian Schneider >>> <[email protected]> wrote: >>>> The problem you observe can happen if the classloader that is used does not >>>> see the necessary packages. >>>> As in OSGi each bundle classloader can only see the packages it imports you >>>> can have the effect that you can not load a package even if it is in the >>>> bundle if the code uses a classloader that does not have the necessary >>>> imports (e.g. from a different bundle). >>>> This typically happens with legacy code that makes assumptions on the >>>> classloader that it rather should not for OSGi. >>>> >>>> The hibernate vailidation is such a case. The good news is that it can be >>>> tuned to work in OSGi. >>>> >>>> See >>>> https://github.com/hibernate/hibernate-validator/blob/master/osgi/integrationtest/src/test/java/org/hibernate/validator/osgi/integrationtest/OsgiIntegrationTest.java >>>> >>>> Christian >>>> >>>> >>>> Am 08.11.2015 um 19:11 schrieb Benson Margulies: >>>>> >>>>> package:exports -d does not think that more than one bundle is >>>>> exporting the package. >>>>> >>>>> Here's the class I built to stay out of the SPI. >>>>> >>>>> public final class OSGIValidationFactory { >>>>> private OSGIValidationFactory() { >>>>> // >>>>> } >>>>> >>>>> static class OSGIServiceDiscoverer implements >>>>> ValidationProviderResolver { >>>>> >>>>> @Override >>>>> public List<ValidationProvider<?>> getValidationProviders() { >>>>> List<ValidationProvider<?>> providers = new ArrayList<>(); >>>>> providers.add(new HibernateValidator()); >>>>> return providers; >>>>> } >>>>> } >>>>> >>>>> public static ValidatorFactory newHibernateValidatorFactory() { >>>>> javax.validation.Configuration<?> config = >>>>> Validation.byDefaultProvider() >>>>> .providerResolver(new OSGIServiceDiscoverer()) >>>>> .configure(); >>>>> >>>>> return config.buildValidatorFactory(); >>>>> } >>>>> } >>>>> >>>>> >>>>> On Sun, Nov 8, 2015 at 1:10 PM, Benson Margulies <[email protected]> >>>>> wrote: >>>>>> >>>>>> Karaf 4.0.2. >>>>>> >>>>>> I'm not sure what you mean by 'framework'. I'm just running karaf, I >>>>>> am not messing with the system bundle. I pulled together my own little >>>>>> bundle for validation that uses a custom locator to avoid the SPI, and >>>>>> it works in an isolated test in karaf, but when I put the whole thing >>>>>> together, blam. How would I investigate the possibility of multiple >>>>>> bundles? >>>>>> >>>>>> >>>>>> >>>>>> On Sun, Nov 8, 2015 at 1:06 PM, Jean-Baptiste Onofré <[email protected]> >>>>>> wrote: >>>>>>> >>>>>>> Hi Benson, >>>>>>> >>>>>>> don't you have multiple bundle providing the same package ? >>>>>>> I suspect two bundles providing com.sun.el package (or the system >>>>>>> package). >>>>>>> >>>>>>> What's the Karaf version (and framework in use) ? >>>>>>> >>>>>>> Regards >>>>>>> JB >>>>>>> >>>>>>> >>>>>>> On 11/08/2015 07:04 PM, Benson Margulies wrote: >>>>>>>> >>>>>>>> I'm getting a ClassNotFoundException trying to use bean validation. >>>>>>>> >>>>>>>> karaf@root>package:exports | grep com.sun.el >>>>>>>> com.sun.el | 2.2.4 >>>>>>>> | 174 | org.glassfish.web.javax.el >>>>>>>> >>>>>>>> But: >>>>>>>> >>>>>>>> karaf@root> bundle:find-class com.sun.el.ExpressionFactoryImpl >>>>>>>> karaf@root> >>>>>>>> >>>>>>>> even though the class is sitting right there in the jar file for that >>>>>>>> bundle. >>>>>>>> >>>>>>>> karaf@root>bundle:classes 174 | grep Expr >>>>>>>> com/sun/el/ExpressionFactoryImpl.class >>>>>>>> >>>>>>>> what's up? >>>>>>>> >>>>>>> -- >>>>>>> Jean-Baptiste Onofré >>>>>>> [email protected] >>>>>>> http://blog.nanthrax.net >>>>>>> Talend - http://www.talend.com >>>> >>>>
