[aspectwerkz-user] Question on Runtime Weaving Example

"Ganesan, Kumaravel (HP STSD-Labs)" <[email protected]> Thu, 24 Jul 2008 18:22:28 +0000
Newsgroups gmane.comp.java.aspectwerkz.user
Message-ID <3F648E4BDEC90248B0AA21B7E67A11A02EE9D9B5DE@GVW1162EXB.americas.hpqcorp.net>
--_000_3F648E4BDEC90248B0AA21B7E67A11A02EE9D9B5DEGVW1162EXBame_
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

Hi .

Greetings.

I am new to AspectWerkz.

I am trying with following example(in Eclipse , without Plugin) :


Target class:

public class Target {

    public void step1() {
        System.out.println("  --> invoking step1");
        step2();
    }

    public void step2() {
        System.out.println("  --> invoking step2");
    }
}


Aspect Class :

public class Aspect_Tenant1 {

         /**
     * @Expression execution(void examples.cflow.Target.step1())
     */
    Pointcut myDynamicAspect;



    /**
     * @Before myDynamicAspect
     */
    public Object myAdvice(final JoinPoint joinPoint) throws Throwable {
        Object result =3D joinPoint.proceed();
        System.out.println("  --> ADVICE : invoking advice triggered by ste=
p3 for Tenant 2");
        return result;
    }

AOP.XML in META-INF folder under src:

<!DOCTYPE aspectwerkz PUBLIC
    "-//AspectWerkz//DTD//EN"
    "http://aspectwerkz.codehaus.org/dtd/aspectwerkz2.dtd">
<aspectwerkz>
    <system id=3D"samples">
        <package name=3D"examples">
            <aspect class=3D"cflow.Aspect_Tenant1"></aspect>
        </package>
    </system>
</aspectwerkz>




 I set JVM argument as "-javaagent:C:\aspectwerkz-2.0\lib\aspectwerkz-jdk5-=
2.0.jar"

Then I am  I try to run the following code :
public class Weaver_Tenant2 {
        public static void main(String[] args) {


             Target t =3D new Target();

             DeploymentHandle handle1 =3D Deployer.deploy(Aspect_Tenant1.cl=
ass);

        t.step1();

                 }
}

RESULT :


AspectWerkz - INFO - Pre-processor org.codehaus.aspectwerkz.transform.Aspec=
tWerkzPreProcessor loaded and initialized
Deployer::INFO - deploying aspect [examples.cflow.Aspect_Tenant2] in class =
loader [sun.misc.Launcher$AppClassLoader@92e78c]
  --> invoking step1
  --> invoking step2


Here advice is not weaved.

Am I doing any mistake ? or am I missing any  settings...?

Please help me to run this...


Thakns lot.


Thanks and Regards,
Kumaravel Ganesan
HP R&D.





--_000_3F648E4BDEC90248B0AA21B7E67A11A02EE9D9B5DEGVW1162EXBame_
Content-Type: text/html; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html>
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dus-ascii"=
>
<meta name=3D"Generator" content=3D"Microsoft Exchange Server">
<!-- converted from rtf -->
<style>.EmailQuote { margin-left: 1pt; padding-left: 4pt; border-left: #800=
000 2px solid; }</style>
</head>
<body>
<font face=3D"Calibri, sans-serif" size=3D"2">
<div>Hi . </div>
<div>&nbsp;</div>
<div>Greetings.</div>
<div><font face=3D"Times New Roman, serif">&nbsp;</font></div>
<div>I am new to AspectWerkz.</div>
<div><font face=3D"Times New Roman, serif">&nbsp;</font></div>
<div>I am trying with following example(in Eclipse , without Plugin) :</div=
>
<div>&nbsp;</div>
<div><font face=3D"Times New Roman, serif" color=3D"#FF0000">&nbsp;</font><=
/div>
<div><font color=3D"#FF0000"><u><b>Target class: </b></u></font></div>
<div><font face=3D"Times New Roman, serif" color=3D"#FF0000">&nbsp;</font><=
/div>
<div><font face=3D"Courier New, monospace" size=3D"2" color=3D"#7F0055"><b>=
public</b><font color=3D"#000000"> </font><b>class</b><font color=3D"#00000=
0"> </font><font color=3D"#000000"><span style=3D"background-color:#C0C0C0"=
>Target</span></font><font color=3D"#000000"> {</font></font></div>
<div><font face=3D"Times New Roman, serif">&nbsp;</font></div>
<div><font face=3D"Courier New, monospace" size=3D"2">&nbsp;&nbsp;&nbsp; <f=
ont color=3D"#7F0055"><b>public</b></font> <font color=3D"#7F0055"><b>void<=
/b></font> step1() {</font></div>
<div><font face=3D"Courier New, monospace" size=3D"2">&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp; System.<font color=3D"#0000C0"><i>out</i></font>.prin=
tln(<font color=3D"#2A00FF">&quot;&nbsp; --&gt; invoking step1&quot;</font>=
);</font></div>
<div><font face=3D"Courier New, monospace" size=3D"2">&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp; step2();</font></div>
<div><font face=3D"Courier New, monospace" size=3D"2">&nbsp;&nbsp;&nbsp; }<=
/font></div>
<div><font face=3D"Times New Roman, serif">&nbsp;</font></div>
<div><font face=3D"Courier New, monospace" size=3D"2">&nbsp;&nbsp;&nbsp; <f=
ont color=3D"#7F0055"><b>public</b></font> <font color=3D"#7F0055"><b>void<=
/b></font> step2() {</font></div>
<div><font face=3D"Courier New, monospace" size=3D"2">&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp; System.<font color=3D"#0000C0"><i>out</i></font>.prin=
tln(<font color=3D"#2A00FF">&quot;&nbsp; --&gt; invoking step2&quot;</font>=
);</font></div>
<div><font face=3D"Courier New, monospace" size=3D"2">&nbsp;&nbsp;&nbsp; }<=
/font></div>
<div>}<br>

</div>
<div>&nbsp;</div>
<div><font color=3D"#FF0000"><u><b>Aspect Class :</b></u></font></div>
<div><font face=3D"Times New Roman, serif">&nbsp;</font></div>
<div><font face=3D"Courier New, monospace" size=3D"2" color=3D"#7F0055"><b>=
public</b><font color=3D"#000000"> </font><b>class</b><font color=3D"#00000=
0"> Aspect_Tenant</font><font color=3D"#000000">1</font><font color=3D"#000=
000"> {</font></font></div>
<div><font face=3D"Times New Roman, serif">&nbsp;</font></div>
<div><font face=3D"Times New Roman, serif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp; <font face=3D"Courier New, monospace" size=3D"2"> </font><font f=
ace=3D"Courier New, monospace" size=3D"2" color=3D"#3F5FBF">/**</font></fon=
t></div>
<div><font face=3D"Courier New, monospace" size=3D"2">&nbsp;&nbsp;&nbsp;&nb=
sp; <font color=3D"#3F5FBF">*</font> <font color=3D"#7F9FBF"><b>@Expression=
</b></font> <font color=3D"#3F5FBF">execution(void</font> <font color=3D"#3=
F5FBF">examples.</font><font color=3D"#3F5FBF"><u>cflow</u></font><font col=
or=3D"#3F5FBF">.Target.step1())</font></font></div>
<div><font face=3D"Courier New, monospace" size=3D"2">&nbsp;&nbsp;&nbsp;&nb=
sp; <font color=3D"#3F5FBF">*/</font></font></div>
<div><font face=3D"Courier New, monospace" size=3D"2">&nbsp;&nbsp;&nbsp; Po=
intcut <font color=3D"#0000C0">myDynamicAspect</font>;</font></div>
<div><font face=3D"Courier New, monospace" size=3D"2">&nbsp;</font></div>
<div><font face=3D"Courier New, monospace" size=3D"2">&nbsp;</font></div>
<div><font face=3D"Courier New, monospace" size=3D"2">&nbsp;</font></div>
<div><font face=3D"Courier New, monospace" size=3D"2">&nbsp;&nbsp;&nbsp; <f=
ont color=3D"#3F5FBF">/**</font></font></div>
<div><font face=3D"Courier New, monospace" size=3D"2">&nbsp;&nbsp;&nbsp;&nb=
sp; <font color=3D"#3F5FBF">*</font> <font color=3D"#7F9FBF"><b>@Before</b>=
</font> <font color=3D"#3F5FBF">myDynamicAspect</font> </font></div>
<div><font face=3D"Courier New, monospace" size=3D"2">&nbsp;&nbsp;&nbsp;&nb=
sp; <font color=3D"#3F5FBF">*/</font></font></div>
<div><font face=3D"Courier New, monospace" size=3D"2">&nbsp;&nbsp;&nbsp; <f=
ont color=3D"#7F0055"><b>public</b></font> Object myAdvice(<font color=3D"#=
7F0055"><b>final</b></font> JoinPoint joinPoint) <font color=3D"#7F0055"><b=
>throws</b></font> <span style=3D"background-color:#C0C0C0">Throwable</span=
>
{</font></div>
<div><font face=3D"Courier New, monospace" size=3D"2">&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp; Object result =3D joinPoint.<span style=3D"background=
-color:#C0C0C0">proceed</span>();</font></div>
<div><font face=3D"Courier New, monospace" size=3D"2">&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp; System.<font color=3D"#0000C0"><i>out</i></font>.prin=
tln(<font color=3D"#2A00FF">&quot;&nbsp; --&gt; ADVICE : invoking advice tr=
iggered by step3 for Tenant 2&quot;</font>);</font></div>
<div><font face=3D"Courier New, monospace" size=3D"2">&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp; <font color=3D"#7F0055"><b>return</b></font> result;<=
/font></div>
<div><font face=3D"Courier New, monospace" size=3D"2">&nbsp;&nbsp;&nbsp; }<=
/font></div>
<div><font face=3D"Times New Roman, serif">&nbsp;</font></div>
<div><font face=3D"Courier New, monospace" size=3D"2" color=3D"#FF0000"><u>=
<b>AOP.XML in META-INF folder under src:</b></u></font></div>
<div><font face=3D"Times New Roman, serif" color=3D"#FF0000">&nbsp;</font><=
/div>
<div><font face=3D"Courier New, monospace" size=3D"2" color=3D"#008080">&lt=
;!<font color=3D"#3F7F7F">DOCTYPE</font><font color=3D"#000000"> </font>asp=
ectwerkz<font color=3D"#000000"> </font><font color=3D"#808080">PUBLIC</fon=
t></font></div>
<div><font face=3D"Courier New, monospace" size=3D"2">&nbsp;&nbsp;&nbsp; <f=
ont color=3D"#008080">&quot;-//AspectWerkz//DTD//EN&quot;</font></font></di=
v>
<div><font face=3D"Courier New, monospace" size=3D"2">&nbsp;&nbsp;&nbsp; <f=
ont color=3D"#3F7F5F">&quot;<a href=3D"http://aspectwerkz.codehaus.org/dtd/=
aspectwerkz2.dtd">http://aspectwerkz.codehaus.org/dtd/aspectwerkz2.dtd</a>&=
quot;</font><font color=3D"#008080">&gt;</font></font></div>
<div><font face=3D"Courier New, monospace" size=3D"2" color=3D"#008080">&lt=
;<font color=3D"#3F7F7F">aspectwerkz</font>&gt;</font></div>
<div><font face=3D"Courier New, monospace" size=3D"2">&nbsp;&nbsp;&nbsp; <f=
ont color=3D"#008080">&lt;</font><font color=3D"#3F7F7F">system</font> <fon=
t color=3D"#7F007F">id</font>=3D<font color=3D"#2A00FF"><i>&quot;samples&qu=
ot;</i></font><font color=3D"#008080">&gt;</font></font></div>
<div><font face=3D"Courier New, monospace" size=3D"2">&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp; <font color=3D"#008080">&lt;</font><font color=3D"#3F=
7F7F">package</font> <font color=3D"#7F007F">name</font>=3D<font color=3D"#=
2A00FF"><i>&quot;examples&quot;</i></font><font color=3D"#008080">&gt;</fon=
t></font></div>
<div><font face=3D"Courier New, monospace" size=3D"2">&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=3D"#008080">&lt;<=
/font><font color=3D"#3F7F7F">aspect</font> <font color=3D"#7F007F">class</=
font>=3D<font color=3D"#2A00FF"><i>&quot;cflow.Aspect_Tenant1&quot;</i></fo=
nt><font color=3D"#008080">&gt;&lt;/</font><font color=3D"#3F7F7F">aspect</=
font><font color=3D"#008080">&gt;</font></font></div>
<div><font face=3D"Courier New, monospace" size=3D"2">&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp; <font color=3D"#008080">&lt;/</font><font color=3D"#3=
F7F7F">package</font><font color=3D"#008080">&gt;</font></font></div>
<div><font face=3D"Courier New, monospace" size=3D"2">&nbsp;&nbsp;&nbsp; <f=
ont color=3D"#008080">&lt;/</font><font color=3D"#3F7F7F">system</font><fon=
t color=3D"#008080">&gt;</font></font></div>
<div><font face=3D"Courier New, monospace" size=3D"2" color=3D"#008080">&lt=
;/<font color=3D"#3F7F7F">aspectwerkz</font>&gt;</font></div>
<div><font face=3D"Times New Roman, serif" color=3D"#008080">&nbsp;</font><=
/div>
<div><font face=3D"Times New Roman, serif" color=3D"#008080">&nbsp;</font><=
/div>
<div><font face=3D"Times New Roman, serif" color=3D"#008080">&nbsp;</font><=
/div>
<div><font face=3D"Times New Roman, serif" color=3D"#008080">&nbsp;</font><=
/div>
<div><font face=3D"Courier New, monospace" size=3D"2"> I set JVM argument a=
s &#8220;-javaagent:C:\aspectwerkz-2.0\lib\aspectwerkz-jdk5-2.0.jar&#8221; =
</font></div>
<div><font face=3D"Times New Roman, serif">&nbsp;</font></div>
<div>Then I am  I try to run the following code : </div>
<div><font face=3D"Courier New, monospace" size=3D"2" color=3D"#7F0055"><b>=
public</b><font color=3D"#000000"> </font><b>class</b><font color=3D"#00000=
0"> Weaver_Tenant2 {</font></font></div>
<div><font face=3D"Times New Roman, serif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp; <font face=3D"Courier New, monospace" size=3D"2" color=3D"#7F005=
5"><b>public</b></font><font face=3D"Courier New, monospace" size=3D"2"> </=
font><font face=3D"Courier New, monospace" size=3D"2" color=3D"#7F0055"><b>=
static</b></font><font face=3D"Courier New, monospace" size=3D"2">
</font><font face=3D"Courier New, monospace" size=3D"2" color=3D"#7F0055"><=
b>void</b></font><font face=3D"Courier New, monospace" size=3D"2"> main(Str=
ing[] args) {</font></font></div>
<div><font face=3D"Times New Roman, serif">&nbsp;</font></div>
<div><font face=3D"Times New Roman, serif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp; </font></div>
<div><font face=3D"Times New Roman, serif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp; <font face=3D"Courier New, monospace" size=3D"2">&nbsp;&nbsp;&nb=
sp;&nbsp; Target t =3D </font><font face=3D"Courier New, monospace" size=3D=
"2" color=3D"#7F0055"><b>new</b></font><font face=3D"Courier New, monospace=
" size=3D"2"> Target();</font></font></div>
<div><font face=3D"Times New Roman, serif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp; <font face=3D"Courier New, monospace" size=3D"2">&nbsp;&nbsp;&nb=
sp;&nbsp; </font></font></div>
<div><font face=3D"Times New Roman, serif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp; <font face=3D"Courier New, monospace" size=3D"2">&nbsp;&nbsp;&nb=
sp;&nbsp; DeploymentHandle </font><font face=3D"Courier New, monospace" siz=
e=3D"2"><u>handle</u></font><font face=3D"Courier New, monospace" size=3D"2=
"><u>1</u></font><font face=3D"Courier New, monospace" size=3D"2">
=3D Deployer.</font><font face=3D"Courier New, monospace" size=3D"2"><i>dep=
loy</i></font><font face=3D"Courier New, monospace" size=3D"2">(Aspect_Tena=
nt</font><font face=3D"Courier New, monospace" size=3D"2">1</font><font fac=
e=3D"Courier New, monospace" size=3D"2">.</font><font face=3D"Courier New, =
monospace" size=3D"2" color=3D"#7F0055"><b>class</b></font><font face=3D"Co=
urier New, monospace" size=3D"2">);</font></font></div>
<div><font face=3D"Times New Roman, serif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp; </font></div>
<div><font face=3D"Times New Roman, serif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp; <font face=3D"Courier New, monospace" size=3D"2">t.step1();</fon=
t></font></div>
<div><font face=3D"Times New Roman, serif">&nbsp;</font></div>
<div><font face=3D"Times New Roman, serif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font face=3D"Co=
urier New, monospace" size=3D"2"> }</font></font></div>
<div><font face=3D"Courier New, monospace" size=3D"2">}</font></div>
<div><font face=3D"Times New Roman, serif">&nbsp;</font></div>
<div>RESULT : </div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div><font face=3D"Courier New, monospace" size=3D"2">AspectWerkz - INFO - =
Pre-processor org.codehaus.aspectwerkz.transform.AspectWerkzPreProcessor lo=
aded and initialized</font></div>
<div><font face=3D"Courier New, monospace" size=3D"2">Deployer::INFO - depl=
oying aspect [examples.cflow.Aspect_Tenant2] in class loader [sun.misc.Laun=
cher$AppClassLoader@92e78c]</font></div>
<div><font face=3D"Courier New, monospace" size=3D"2">&nbsp; --&gt; invokin=
g step1</font></div>
<div><font face=3D"Courier New, monospace" size=3D"2">&nbsp; --&gt; invokin=
g step2</font></div>
<div><font face=3D"Times New Roman, serif">&nbsp;</font></div>
<div><font face=3D"Times New Roman, serif">&nbsp;</font></div>
<div>Here advice is not weaved. </div>
<div>&nbsp;</div>
<div>Am I doing any mistake ? or am I missing any&nbsp; settings&#8230;?</d=
iv>
<div><font face=3D"Times New Roman, serif">&nbsp;</font></div>
<div>Please help me to run this&#8230; </div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>Thakns lot.</div>
<div><font face=3D"Times New Roman, serif">&nbsp;</font></div>
<div><font face=3D"Times New Roman, serif">&nbsp;</font></div>
<div><font face=3D"Comic Sans MS, cursive">Thanks and Regards,</font></div>
<div><font face=3D"Comic Sans MS, cursive">Kumaravel Ganesan</font></div>
<div><font face=3D"Comic Sans MS, cursive">HP R&amp;D.</font></div>
<div><font face=3D"Times New Roman, serif">&nbsp;</font></div>
<div><font face=3D"Times New Roman, serif">&nbsp;</font></div>
<div><font face=3D"Times New Roman, serif">&nbsp;</font></div>
<div><font face=3D"Times New Roman, serif">&nbsp;</font></div>
</font>
</body>
</html>

--_000_3F648E4BDEC90248B0AA21B7E67A11A02EE9D9B5DEGVW1162EXBame_--