[ 
https://issues.apache.org/jira/browse/CXF-6706?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15059727#comment-15059727
 ] 

Gunnar Morling commented on CXF-6706:
-------------------------------------

Hi, a Hibernate Validator developer here :-)

Sorry to hear you run into issues with using HV in OSGi. We've put a bit of an 
effort into making it work, which it actually does in general by now. But I am 
happy to help ironing out any remaining glitches.

Some remarks:

*Bootstrap*

Atm. a custom validation provider resolver is needed with OSGi, also if the 
{{HibernateValidator}} provider is explicitly used. This is due to a glitch in 
the BV API JAR, which we've planned to fix in the next version (see 
[BVAL-486|https://hibernate.atlassian.net/browse/BVAL-486]). Note that the 
official spec JAR already contains the required manifest entries. So for now 
it'd have to be the following:

{code}
public static class MyValidationProviderResolver implements 
ValidationProviderResolver {

    @Override
    public List<ValidationProvider<?>> getValidationProviders() {
        return Collections.<ValidationProvider<?>>singletonList( new 
HibernateValidator() );
    }
}

// And using the resolver:
ValidatorFacotry vf = Validation.byProvider( HibernateValidator.class )
    .providerResolver( new MyValidationProviderResolver() )
    .configure()
    .buildValidatorFactory();
                                
{code}

*User-provided resources*

Whenever we need to load stuff by name or provided by the user in general 
(classes given in XML config, message bundles etc.) we do so using a 
classloader that may explicitly be set during bootstrap. See 
{{HibernateValidatorConfiguration#externalClassLoader()}} for the details.

*Karaf Features file*

We provide one already (see 
[here|https://github.com/hibernate/hibernate-validator/blob/master/osgi/karaf-features/src/main/features/features.xml])
 and I'd love it that'd be "the one". We can fix the issues due to the wrap 
stuff, [~bmargulies] offered his help already. Thanks!

*Class-loading issues around EL*

This one is puzzling me, it should suffice if the HV bundle can see EL packages 
(in the right version) exported by another bundle. As discussed in 
[HV-1039|https://hibernate.atlassian.net/browse/HV-1039] we'd need to have some 
more details on this one (full log/stacktrace).

Please let me know if there is anything else I/we can do to make that 
integration work smoothly.

> Bean validation seems to not be working in OSGi
> -----------------------------------------------
>
>                 Key: CXF-6706
>                 URL: https://issues.apache.org/jira/browse/CXF-6706
>             Project: CXF
>          Issue Type: Bug
>    Affects Versions: 3.1.4, 3.2.0
>            Reporter: Benson Margulies
>            Assignee: Benson Margulies
>             Fix For: 3.1.5, 3.2.0
>
>
> Using Karaf 4.0.2, 
> if you take this repo:
> g...@github.com:benson-basis/cxf-karaf-validation-tc.git
> and checkout the use-cxf-support branch, it will build you a Karaf assembly 
> that, when you poke the service (http://localhost:8181/cxf/validate)
> will yield the following backtrace. This assumes that you are up to date with 
> my fix to cxf-6705 which is on master and the 3.1.x branch.
> {noformat}
> javax.validation.ValidationException: Unable to find a default provider
>       at 
> javax.validation.Validation$GenericBootstrapImpl.configure(Validation.java:264)
>       at 
> javax.validation.Validation.buildDefaultValidatorFactory(Validation.java:111)
>       at 
> org.apache.cxf.validation.BeanValidationProvider.<init>(BeanValidationProvider.java:45)
>       at com.basistech.ts.impl.TrivialService.validate(TrivialService.java:50)
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to