org.apache.cxf.frontend.ClientFactoryBean optimization
------------------------------------------------------

                 Key: CXF-2758
                 URL: https://issues.apache.org/jira/browse/CXF-2758
             Project: CXF
          Issue Type: Improvement
          Components: JAX-WS Runtime
    Affects Versions: 2.3
            Reporter: Rolf Thunbo


In the create method both the endpoint and client is created each time it is 
called. Is it really neccessary to build the endpoint each time, wouldn't it be 
good enough to just create a new client based on the endpoint? Doing so greatly 
improves the performance of the client factory on subsequent calls to the 
create method.

I propose the existing code be replaced by the following code:

        public Client create() {
                if (ep == null) {
                        getServiceFactory().reset();
                        if (getServiceFactory().getProperties() == null) {
                                getServiceFactory().setProperties(properties);
                        } else if (properties != null) {
                                
getServiceFactory().getProperties().putAll(properties);
                        }
                        try {
                                ep = createEndpoint();
                                applyProperties(ep);
                                initializeAnnotationInterceptors(ep, 
getServiceClass());
                        } catch (EndpointException e) {
                                throw new ServiceConstructionException(e);
                        } catch (BusException e) {
                                throw new ServiceConstructionException(e);
                        }
                }
                Client client = null;
                client = createClient(ep);
                applyFeatures(client);
                return client;
        }


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to