Re: [aspectwerkz-dev] Creating AOPified javadocs

the_mindstorm <[email protected]> Fri, 27 Aug 2004 18:54:33 +0300
Newsgroups gmane.comp.java.aspectwerkz.devel
Message-ID <[email protected]>
Quote Jack Tang::

> Hello Alexandru
> 
> After reading Alex's comments, I think I got some points. If something
> wrong, please correct me, Alex.
> 
> The key of this problem is when to collect aop model information and
> who will supply these information. Two solution list here:
> 
> 1.javac + weave classes + generate stubs and javadoc  [method 1 and
> method with emitted join points]
> 2.parse sources + generate stubs and javadoc
> 
> And I divide AW engine workflow into five phrase(maybe more,but here
> I think five is enough).
> 1.hook phrase      : pipe BootClasspathStarter/JDWPStarter after
> java.lang.ClassLoader
> 2.preProcess phrase: initialize preProcessor,filter certain CL and modify CL
> 3.parse phrase     : parse xml and javadoc @tags
> 4.compile phrase   : compile Java source
> 5.transform/weave phrase: weave the cross-cutting info
> 
> diagram like this:
> (see attached file)
> 
> Let's discuss solution 2 first. We should parse java sources by
> ourself using QDox, then parse xml def, finally we structure aop
> domain model by our hand. This solution is better to me first
> impression, because I dream he can avoid "compile phrase". But maybe
> it's my daydream.

Initially I thought it may work this way. But I see no use to create another tool that knows how to 
create an "aop domain model" (this is my actual conclusion following the discussion with Alex).

Also solving pointcuts is already done in the compiler/weaver (and the only place where it must be).

Finally, I must admit that I have changed my option to follow the 1st solution (the ajdoc one - Mik 
was right ;-) ).

::the_mindstorm

PS: there is a small drawback in the solution 1 [snif/]. If the project has compilation error (at 
aop level) then no javadocs.

> 
> And if we refer to solution 1, "compile phrase" has to be involved,
> but we can access aop domain model easily through weaver context.
> 
> 
> /Jack