axis-c-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Mark Whitlock <>
Subject Fw: Rtionale for having literal package folder in WSDL tool
Date Tue, 26 Apr 2005 13:05:56 GMT

I can't see a simple way of refactoring WSDL2Ws to make it a whole lot
simpler. And the problem is going to get worse if we ever support
rpc/literal, etc.

I like your idea of having rpc/encoded and doc/literal both inheriting from
common superclasses. I hate having to fix a bug in 4 different places
cpp/doclit, cpp/rpcenc, c/doclit and c/rpcenc, particularly when I'm not
set up with tests to check that I've copied my fix across accurately. I'm
sure these 4 variants have got out of step. All I can suggest is....

 - Push as many methods as possible up the object hierarchy. Particularly
methods which are very similar in rpc/enc and doc/lit and could call small
rpcenc-specific or doclit-specific methods to perform the differences. As I
do the C support I was wondering if there are methods that are sufficiently
similar that could be common between C and C++, and call C or C++ utility
methods to perform their small differences.

 - Focus on source files and methods that have changed a lot in cvs. These
are likely to have evolved and patched many times and need

Mark Whitlock

----- Forwarded by Mark Whitlock/UK/IBM on 26/04/2005 11:30 -----
             Samisa Abeysinghe                                             
   >                                                   To 
                                       Apache AXIS C Developers List       
             26/04/2005 17:06          <>          
             Please respond to                                     Subject 
              "Apache AXIS C           Re: Rtionale for having literal     
             Developers List"          package folder in WSDL tool         

Hi Adrian,
             Thank you for the reply. Your refactoring certainly did help.
             As you have rightly said, I too have concerns on the side
effects. I
have been looking into the all and choice constructs with Chinthana and
Dushshantha. I was wondering if it would be good to do this prior to the
additional wsdl construct implementation so that the guys get a better
understanding of the code.


On Tue, 2005-04-26 at 09:56, Adrian Dick wrote:
> 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
> to remove a substantial amount of duplication.  At that point I didn't
> 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
> what impact this will have for others working on provision of other
> functions that may require additional support within WSDL2Ws.  For
> all and choice constructs and re-introduction of C stubs
> Adrian
> _______________________________________
> 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
> > 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
> > 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
> > 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...
Samisa Abeysinghe <>
Virtusa Corporation

View raw message