axis-c-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Adrian Dick <>
Subject Re: Rtionale for having literal package folder in WSDL tool
Date Tue, 26 Apr 2005 09:56:20 GMT
Hi Samisa,

I can't explain the rationale behind the original package structure.

As for the differences between (for example)
org.apache.axis.wsdl.wsdl2ws.cpp.ClientStubWriter and
org.apache.axis.wsdl.wsdl2ws.cpp.literal.ClientStubWriter.  A few months
back (in the 1.4 release iirc) I did some high-level refactoring of the
tool, putting in place the inheritance model you currently see, allowing me
to remove a substantial amount of duplication.  At that point I didn't have
sufficient time to complete the job - hence your still seeing a
considerable amount of duplication.

I like your proposal for consolidating the common function into a single
parent class, then inherit for both RPC and doc/literal.
As you mention, to do this sensibly, the existing code will need very
substantial refactoring, it would be particularly useful if we can break
some of the very large methods into a number for smaller methods - as I'm
convinced there is a lot of duplication within methods that should be
extracted out into utility methods.

I would quite like to see this refactoring done, but we need to understand
what impact this will have for others working on provision of other
functions that may require additional support within WSDL2Ws.  For example,
all and choice constructs and re-introduction of C stubs

Adrian Dick (

Samisa Abeysinghe <> wrote on 26/04/2005 16:18:54:

> Hi All,
>      Does anyone has any thoughts why it was initially decided to have
> the kind of packaging we have in the WSDL tool as of now?
>      I had a look into the Axis java tool and the folder structure is
> quite simple. In C++ wsdl tool we have the cpp folder which implies RPC
> and literal folder that implies document literal.
>      Also, we do not have any document (at least comments) on how
> org/apache/axis/wsdl/wsdl2ws/cpp/ differs from
> org/apache/axis/wsdl/wsdl2ws/cpp/literal/ Could
> anyone please tell me how they differ please? As far as I can see,
> org/apache/axis/wsdl/wsdl2ws/cpp/literal/ derectly
> inherits org/apache/axis/wsdl/wsdl2ws/cpp/ and
> despite that the derived class implement so many methods in base class
> as is (resulted from copying code most probably) despite the fact that
> the methods are already inherited.
>     If I am to fix these and remove duplication, I would have only the
> org/apache/axis/wsdl/wsdl2ws/cpp and would drop literal package. I would
> have one generic base class
> org/apache/axis/wsdl/wsdl2ws/cpp/ and have RPC and
> Doc lit styles inherit from this. I would do the same for other classes
> as well. I am not sure how keen the community would be to have this kind
> of a refactoring on the tool. Basically as a developer I am wasting so
> much time, dplicating some of the changes from RPC to Doclit at times as
> well as spend lot of time understanding the differences in classes in
> org/apache/axis/wsdl/wsdl2ws/cpp and
> org/apache/axis/wsdl/wsdl2ws/cpp/literal
> Thanks,
> Samisa...

View raw message