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

Xilai Dai commented on CXF-8088:
--------------------------------

Hi [~ffang], 
The changes seems introduce a regression in case of operate the 
JAXRSServerFactoryBean dynamically using blueprint configuration.

In blueprint.xml:
{code}
    <jaxrs:server id="ARestService" address="/sam" >
        <jaxrs:serviceBeans>
            <ref component-id="restService" />
        </jaxrs:serviceBeans>
        <jaxrs:providers>
            <bean class="org.apache.cxf.jaxrs.provider.json.JSONProvider">
                <property name="ignoreNamespaces" value="true" />
                <property name="dropRootElement" value="true" />
            </bean>
        </jaxrs:providers>
    </jaxrs:server>
        
    <bean id="securityProvider" 
class="org.abc.security.ServiceSecurityProvider" init-method="init">
        <property name="serviceEndpoint" ref="ARestService" />
    </bean>
{code}

Adding some providers to the jaxrs:server dynamically in Java class:
{code}
public class ServiceSecurityProvider {
    private JAXRSServerFactoryBean serviceEndpoint;

    public void setServiceEndpoint(JAXRSServerFactoryBean serviceEndpoint) {
        this.serviceEndpoint = serviceEndpoint;
    }

    public void init() {
        Server oldServer = serviceEndpoint.getServer();
        if (oldServer.isStarted()) {
                oldServer.stop();
                oldServer.destroy();
        }
                
        List<Object> providers = (List<Object>) serviceEndpoint.getProviders();
        //add some security providers dynamically depends on the configuration 
changes
        providers.add(xxx);

        Server newServer = serviceEndpoint.create();
        newServer.start();
    }
}
{code}

Then the new Server couldn't be created properly with the expected providers in 
CXF 3.3.4.
But it worked well in CXF 3.3.1.

> ensure jaxrs endpoint can work correctly when using a shared bus exposed from 
> another bundle
> --------------------------------------------------------------------------------------------
>
>                 Key: CXF-8088
>                 URL: https://issues.apache.org/jira/browse/CXF-8088
>             Project: CXF
>          Issue Type: Bug
>            Reporter: Freeman Yue Fang
>            Assignee: Freeman Yue Fang
>            Priority: Major
>             Fix For: 3.2.10, 3.3.3
>
>
> major 2 issues
> 1. not unregister the jaxrs endpoint correctly when stop the jaxrs endpoint 
> bundle.
> 2. jaxrs binding should be added as bus extension so that the bus used by 
> jaxrs binding factory is always valid



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to