> -----Original Message-----
> From: Dan Diephouse [mailto:[EMAIL PROTECTED]
> Sent: Wednesday, September 20, 2006 1:00 PM
> To: [email protected]
> Subject: Re: tooling and service model
> 
> 
> James Mao wrote:
> 
> > Hi Dan,
> >
> >>
> >> I would like to start a set of parallel tool modules. Say create a 
> >> directory called tools2 and get things working there. Once we're 
> >> ready we can work on switching the whole build to the new tools.
> >
> > The tools2 will include all the functions in cxf tools?
> 
> And more :-)
> 
> > and how long will it take? 
> 
> Depends on how fast we can type :-)
> 
> > and when we say switching you mean include porting all the 
> unit tests 
> > and system tests to the tools2? and also make demos work properly.
> > So, your goal is to replace cxf tools with tools2?
> 
> Yes, yes, yes.
> 
> > or let user choose which one they want to use?
> 
> No.
> 
> > But i really have a question why we need to create another 
> tools when 
> > the current tools works perfectly fine?
> 
> Because they don't work fine. I believe we had this 
> discussion before... 
> Please see the previous threads on tooling.
> 
I do remember we had some discussions before regarding CXF tooling, but as far 
as I can recall, I do not think we are anywhere close to reach a conclusion 
that CXF tools need to be totally rewritten. 


> If you want to try to refactor the current tools in place, I 
> suppose we 
> could try that. But its a pretty drastic change, so I don't 
> really see a 
> step-wise process to do it. I think it would be better to 
> just write a 
> second set of tools, then when they're ready switch 
> everythign over and 
> delete the old tools.
> 


Refactoring current tooling or writing a brand-new one are both ok as the 
ultimate goal is to have a better tooling. But it would appear to be too early 
to tore down everything we already have and invent the wheel from scratch 
before we can answer questions below:

1. Identify exact problems in our current tooling, and what problems can be 
resolved through refactoring and what problems can not be resolved elegantly as 
it is due to core architecture. 

I just went through our mailing list and found following tooling relevant 
discussions, do let me know if I am missing anything.

a. CXF tools need to support WSDL2.0
b. CXF tools need to support SOAP1.2
c. We need to reuse Service Model in tools, this will bring us WSDL2.0 and 
SOPA1.2. There were some discussions around how to do this. One proposed 
approach is moving Service Model as a top level module, one is using Service 
Model as a plug-in. To me, they are implementation details and we shall be able 
to figure out which way is more appropriate when we are doing this work. 
d. Support multiple databindings and multiple front-end profiles generations. 
With the code merged from XFire code base, the current CXF tools should have 
this capability in place already. 

Based on this observation, I feel a refactoring is a more practical approach, 
doing (a)(b)(c) should be a one week work. At the same time, I have to say some 
interfaces in our current tools are a bit confusing, for example, the 
ToolsContainer interface. This makes new developers hard to following the 
tooling architecture in order to do their contributions. I suggest we do 
another refactoring on this after getting service Model done. But overall, I do 
not see any critical problems that can not resolved through refactorings based 
on the information I have right now. 

2. If we are to write a new tool from scratch, what are the feature list we 
have in mind, and how long do we expect to reach this feature list. 

To be honest, I do not really think writing a new tool and make it has all 
features we already have is that simple. For example, current wsdl2java give us 
following options:

Usage : wsdl2java -p <[wsdl namespace =]Package Name>* -b <binding-name>* -d 
<output-directory> -compile -classdir <comp
ile-classes-directory> -impl -server -client -all -ant -nexclude <schema 
namespace [= java packagename]>* -exsh <enable
extended soap header message binding (true, false)> -dns <Default value is 
true> -dex <Default value is true> -validate
-h -v -verbose -quiet <wsdlurl>

In my experience, a good tool can not turn out in weeks or even in 
months(presume it already has a good architecture core), it is a time consuming 
work, it needs daily and sometimes tedious work to add features, fix bugs and 
tune around based on users/customers' input and real use cases.  Looking at the 
type test, interop test and the set of system tests (which are based various 
bugs discovered by ourselves and customers/users), you will probably feel our 
current tools are gradually reaching a mature status. I am pretty sure writing 
sth from scratch can always bring better architecture as we can learn a lot 
from past, but what is cost? How long do we expect the new tool can reach a 
same mature status?



> >>
> >> I'm in the midst of refactoring this now. I probably won't get the 
> >> code in until tomorrow though. I'll try to explain once I get it 
> >> finished :-)
> >>
> > Cool, just make sure all the system tests and demos working 
> properly.
> 
> I don't usually test demos when I do commits. That would really slow 
> down the development process. If there is something in the demos that 
> isn't covered in the tests, you should add it.
> 
> - Dan
> 
> -- 
> Dan Diephouse
> (616) 971-2053
> Envoi Solutions LLC
> http://netzooid.com
> 
> 

Reply via email to