You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cxf.apache.org by "Seumas Soltysik (JIRA)" <ji...@apache.org> on 2006/10/16 23:44:36 UTC

[jira] Commented: (CXF-115) org.apache.cxf.jaxws.EndpointImpl needs additional constructors

    [ http://issues.apache.org/jira/browse/CXF-115?page=comments#action_12442713 ] 
            
Seumas Soltysik commented on CXF-115:
-------------------------------------

Dan, this change does not quite provide the necessary functionality. Since I would like to create an Endpoint using a information from a WSDL with a URL other than what is annotated by the impl class, I need an EndpointImpl constructor that takes a WSDLServiceFactory. 

The driver code would look like this:
       WSDLServiceFactory factory = new WSDLServiceFactory(bus, wsdlLoc, serviceName);        
        endpoint = new  EndpointImpl(bus, impl, factory);

To make it more generic we could have a constructor that looks like this
EndpointImpl(Bus b, Object impl, AbstractServiceFactoryBean serviceFactory) {
        this.bus = b;
        this.serviceFactory = serviceFactory;
        this.implInfo = new JaxWsImplementorInfo(implementor.getClass());
        this.service = serviceFactory.getService();
        this.implementor = implementor;
        
        if (this.service == null) {
            service = serviceFactory.create();
        }
        
        doInit = true;
}

> org.apache.cxf.jaxws.EndpointImpl needs additional constructors
> ---------------------------------------------------------------
>
>                 Key: CXF-115
>                 URL: http://issues.apache.org/jira/browse/CXF-115
>             Project: CXF
>          Issue Type: Improvement
>          Components: JAX-WS Runtime
>            Reporter: Seumas Soltysik
>             Fix For: 2.0-M1
>
>
> Currently Endpoint impl has the following constructor:
>   public EndpointImpl(Bus b, Object implementor, String uri) 
> This constructor extracts annotation information from the implementor object in order to create the Endpoint. However, if a user wants to over-ride one of the annotation values such as the wsdlLocation value they cannot do this. This situation happens when a implementation is code generated and then the location of the wsdl changes. This could happen if you are packaging up a endpoint along with a wsdl for deployment into a container.
> I think what is needed is a more flexible constructor that looks something like this:
> public EndpointImpl(Bus b, Object implementor, Service s, String portname)
> This way a user is free to contruct their own Service from a wsdl not specified by the WSDL location. 

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira