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 _______________________________________ Adrian Dick ([EMAIL PROTECTED]) Samisa Abeysinghe <[EMAIL PROTECTED]> 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/ClientStubWriter.java differs from > org/apache/axis/wsdl/wsdl2ws/cpp/literal/ClientStubWriter.java. Could > anyone please tell me how they differ please? As far as I can see, > org/apache/axis/wsdl/wsdl2ws/cpp/literal/ClientStubWriter.java derectly > inherits org/apache/axis/wsdl/wsdl2ws/cpp/ClientStubWriter.java 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/ClientStubWriter.java 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...
