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

Rebecca Searls commented on CXF-5792:
-------------------------------------

The provided patch is a refactoring of 
org.apache.cxf.frontend.WSDLGetInterceptor 
and org.apache.cxf.frontend.WSDLGetUtils in order to support this feature.


WSDLGetInterceptor has been minimally touched.  Interface 
WSDLGetInterceptorExtension
has been created to allow a customized WSDLGetUtil class to be provided.

The existing WSDLGetInterceptor.getDocument creats a new instance of 
WSDLGetUtils
each time it is called.  The new method getWsdlGetUtil supports this behavior 
for 
a custom WSDLGetUtils class.  This is an undesirable practice.  It is unclear 
if 
this behavior is still required?

The WSDLGetUtils.getDocument method has been heavily refactored, but the other
methods have been relatively untouched.  The original WSDLGetUtils.getDocument 
method
was performing both wsdl file write and read and xsd file read.  These functions
have been refactored into methods, writeWSDLDocument and readXSDDocument 
respectively. 
The code that determines which of these task to preform has been refactored as 
well.
    
Interface WSDLDocumentUtils has been created to allow customization of 
WSDLGetUtils. 

There are now 2 getDocument methods.  One to support legacy code which has an 
obsolete input parameter, ctxUri.  This method is now just a wrapper method to 
one 
without this parameter.

I have concerns about methods getWSDLIds and getSchemaLocations because they 
each 
are creating an new instance of this class to process a wsdl file.  This is an 
undesirable practice.  If 3rd parties are using these methods and they have 
customized this class then they would also need to be aware that they would 
want 
to override these methods with their customized class.  It is unclear if this 
behavior is still required by these 2 methods?    


> WSDLGetUtils Customization
> --------------------------
>
>                 Key: CXF-5792
>                 URL: https://issues.apache.org/jira/browse/CXF-5792
>             Project: CXF
>          Issue Type: New Feature
>          Components: Simple Frontend
>            Reporter: Rebecca Searls
>         Attachments: jbossws.patch
>
>
> JbossWS requests the ability to customize the published URL of the 
> soap:address
> location written to the wsdl file.
> We propose doing this by replacing the existing WSDLGetUtils in 
> WSDLGetInterceptor
> in the following manner.
>     for (Endpoint ep : getService().getEndpoints().values()) {
>       final List<Interceptor<? extends Message>> inList = 
> ep.getInInterceptors();
>         for (Interceptor<? extends Message> in : inList) {
>           if (in instanceof WSDLGetInterceptor) {
>             ((WSDLGetInterceptor)in).setWsdlGetUtil(new 
> WSDLSoapAddressRewriteUtils());                  
>           }
>         }
>     }



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to