AlRe: [Fwd: Re: [aspectwerkz-dev] Creating AOPified javadocs]
"Alex" <alex-he/e8N7AIe/[email protected]> Fri, 27 Aug 2004 18:14:21 +0200
| Newsgroups | gmane.comp.java.aspectwerkz.devel |
|---|---|
| Message-ID | <[email protected]> |
In Tiger, annotations are not in javadoc and are strong typed thru the help of an interface. @Before(myPointcut) public void myBeforeAdvice(...) java sources with javadoc + javac compiled + AW AnnotationC tool generates new class files (offline) just as java sources with annotations + javac Tiger compiled class files produce class files where annotations are represented in the bytecode. Alex ----- Original Message ----- From: "Jack Tang" <[email protected]> To: <[email protected]> Sent: Friday, August 27, 2004 6:09 PM Subject: Re: [Fwd: Re: [aspectwerkz-dev] Creating AOPified javadocs] > <Quote> > > > phase 1 and 2 are gone with J2SE 5. > > > > The solution must not take to much into account this, as i consider that the switch to J5 will take > </Quote> > How about Tiger's javadoc? How does he solve *annotation* in javadoc? > > P.S: I am a stranger to Tiger > > /Jack > > > > On Fri, 27 Aug 2004 18:59:40 +0300, the_mindstorm > <[email protected]> wrote: > > > > Quote Alex:: > > > > > Hi > > > Looks like you forgot the diagram. > > > How will you handle call pointcut matching at source level (and not bytecode > > > level) with QDox ? I don't think it is possible, since QDox does not > > > modelize method bodies. > > > > Correct. This is why I am thinking that the 1st solution is more suited. > > > > > > c > > a long time. > > > > > phase 3 is wrong may be: we do not parse javadoc tag. We parse annotations > > > in bytecode (that get there thru AnnotationC or J2SE 5 javac). > > > > Interesting. I missed this. Alex can you pls detail a little this mechanism. > > > > An interesting point is that the javadoc will use the compiler/weaver in offline mode (or will use > > the inline weaver ;-) ). > > > > > phase 4 is : weave class files as they gets loaded thru classloaders (not > > > java sources) > > > Or may be you confused me , since I made the assumption that those phases > > > were executing one after another. > > > > > > Some more ideas: As you may know AspectJ has a declare error construct that > > > allows to report design error based on pointcuts (ie : do not call new > > > Stuff() unless within the factory method code etc). The tool design and the > > > underlying weaver requirements should handle this as well. > > > > There are intentions in AW to support all the AspectJ features? Is there a roadmap? > > > > ::the_mindstorm > > > > > > > > > > > > Alex > > > > > > ----- Original Message ----- > > > From: "Jack Tang" <[email protected]> > > > To: <[email protected]> > > > Sent: Friday, August 27, 2004 4:53 PM > > > Subject: Re: [aspectwerkz-dev] Creating AOPified javadocs > > > > > > > > > > > >>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. > > >> > > >>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 > > >> > > > > > > > > > > > > > > >