cxf-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Daumantas (JIRA)" <j...@apache.org>
Subject [jira] [Comment Edited] (CXF-6299) Providers registered in cxf bus are ignored.
Date Fri, 13 Mar 2015 15:02:39 GMT

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

Daumantas edited comment on CXF-6299 at 3/13/15 3:02 PM:
---------------------------------------------------------

addBusExtension() methos is called and providers are set to current ProviderFactory, but each
jaxrs:server with serviceBeans inside gets new reference of ProviderFactory and it doesn't
have providers from bus.
For test case try defining some more custom provider inside bus. F.e. instance of javax.ws.rs.container.ContainerRequestFilter
class with filter(ContainerRequestContext) method overridden.


was (Author: dstulgis):
addBusExtension() methos is called and providers are set to current ProviderFactory, but each
jaxrs:server with serviceBeans inside gets new reference of ProviderFactory and it doesn't
have providers from bus.
For test case try defining some more custom provider inside. F.e. instance of javax.ws.rs.container.ContainerRequestFilter
class with filter(ContainerRequestContext) method overridden.

> Providers registered in cxf bus are ignored.
> --------------------------------------------
>
>                 Key: CXF-6299
>                 URL: https://issues.apache.org/jira/browse/CXF-6299
>             Project: CXF
>          Issue Type: Bug
>          Components: JAX-RS
>    Affects Versions: 2.7.8, 2.7.15
>         Environment: JDK 1.7.0_55
>            Reporter: Daumantas
>
> Providers list configured following http://cxf.apache.org/docs/jaxrs-services-configuration.html
documentation.
> Bus object created with configuration and is being set to ProviderFactory, but configured
providers from bus are never used by ProviderFactory.
> To fix problem following example can be used (updated existing initialization method):
> {code:title=AbstractJAXRSFactoryBean|language=java}
> ...
>     private static final Object BUS_PROVIDERS_ALL = "org.apache.cxf.jaxrs.bus.providers";
> ...
>     protected ProviderFactory setupFactory(Endpoint ep) { 
>         ProviderFactory factory = ProviderFactory.createInstance(getBus()); 
>         if (entityProviders != null) {
>             Map<String, Object> busProperties = getBus().getProperties();
>             List<?> busProviders = (List<?>)busProperties.get(BUS_PROVIDERS_ALL);
>             if (busProviders != null) {
>                 entityProviders.addAll(busProviders);
>             }
>             factory.setUserProviders(entityProviders);
>         }
>         setDataBindingProvider(factory, ep.getService());
>         
>         factory.setBus(getBus());
>         factory.initProviders(serviceFactory.getRealClassResourceInfo());
>         if (schemaLocations != null) {
>             factory.setSchemaLocations(schemaLocations);
>         }
>         
>         setBeanInfo(factory);
>         
>         ep.put(ProviderFactory.class.getName(), factory);
>         getBus().setProperty(ProviderFactory.class.getName(), factory);
>         return factory;
>     }
> ...
> {code}



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

Mime
View raw message