That did not work, I get an identical behaviour. Still, thanks for finding a
bug.

2009/9/25 <[email protected]>

>  I have made the same error few months ago. You have to set only one Xset
> like :
>
> -Xset:weaveJavaxPackages=true,weaveJavaPackages=true
>
>
>
>
>
> *Jean-Louis Pasturel*
>
>
>   ------------------------------
>
> *De :* [email protected] [mailto:
> [email protected]] *De la part de* Kajetan Abt
> *Envoyé :* vendredi 25 septembre 2009 14:14
> *À :* [email protected]
> *Objet :* [aspectj-users] LTW into javax.swing
>
>
>
> What I am trying to do: Swing has support for Tooltips, but that
> functionality is very basic. There are two functions (SetToolTip() and
> GetToolTip()) which either take a String argument or return one. I would
> like to have different Tooltips, to be precise, different verbosity levels,
> for all tooltips in my project. Of course I could either overload all used
> JComponents (hah!) or use some other nontrivial approach (manage my own
> listeners...) to set these values anew every time the user changes the
> verbosity level.
>
> But on the other hand, having an Aspect weave into GetToolTip() would
> instantly solve my issues, as I could then change the return parameter (read
> from a properties file). I have managed to figure out how to basically do
> this, and it works, as long as I am weaving into my own code (I suppose it
> would work at compile time even). But for some reason, weaving into Swing
> fails without error messages, it just does not happen. I assume the class
> loader has my classes prepared before the weaver kicks in, but I have
> absolutely no idea how to do that different. There is also not a lot of
> literature on the subject and I only assume this happens because I've read
> somewhere that writing a classloader might be necessary (without explanation
> as to why or how). I am settnig the option to the weaver to include javax,
> but it won't find JComponent. If I don't exclude the org.jdesktop package,
> it even tries to find the superclasses of some of the jdesktop parts at
> javax.jnlp.*, so it doesn't completely fail.
> As for the call I want to intercept: javax.swing.ToolTipManager is the
> class that calls my target function. It never gets woven.
>
> As for the code I use:
>
> aop.xml:
>          <aspectj>
>             <aspects>
>               <aspect name="<something>.weaver.
>
> Wrangler"/>
>                <include within="<something>..*"/>
>                <include within="javax.swing..*"/>
>                <exclude within="org.jdesktop..*"/>
>             </aspects>
>             <weaver options="-verbose -Xset:weaveJavaxPackages=true
> -Xset:weaveJavaPackages=true -showWeaveInfo" >
>                <include within="<something>..*"/>
>                <include within="javax.swing..*"/>
>                <exclude within="org.jdesktop..*"/>
>             </weaver>
>           </aspectj>
>
> public aspect Wrangler {
>     before(JComponent component):
>         call( public String JComponent.getToolTipText(MouseEvent) )
>         && target(component)
>         {
>             System.out.println("Intercepted!");
>             //target.setToolTip("My new thing");
>         }
> }
>
> The output I get:
> [appclassloa...@19134f4] weaveinfo Join point
> 'method-call(java.lang.String javax.swing.JMenuItem.getToolTipText())' in
> Type <something>.gui.AppClientView' (AppClientView.java:596) advised by
> before advice from '<something>.weaver.Wrangler' (Wrangler.aj:33)
>
> And all other calls I make myself. Changing this to execution or anything
> like that does not help at all. No Javax.Swing classes are woven at all.
>
> *********************************
> This message and any attachments (the "message") are confidential and 
> intended solely for the addressees.
> Any unauthorised use or dissemination is prohibited.
> Messages are susceptible to alteration.
> France Telecom Group shall not be liable for the message if altered, changed 
> or falsified.
> If you are not the intended addressee of this message, please cancel it 
> immediately and inform the sender.
> ********************************
>
>
> _______________________________________________
> aspectj-users mailing list
> [email protected]
> https://dev.eclipse.org/mailman/listinfo/aspectj-users
>
>
_______________________________________________
aspectj-users mailing list
[email protected]
https://dev.eclipse.org/mailman/listinfo/aspectj-users

Reply via email to