[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Re: [aspectj-users] Accessing protected methods of parent class from within an aspect in another package
|
Hi Sina,
That should work, the use of 'privileged' should cause generation of
an accessor method that can then be used by the aspect.
here is my sample:
==== 8< ==== Parent.java
package com.somewhereelse;
public class Parent {
protected void foo() {
System.out.println("foo!");
}
}
===== 8< ====
===== 8< ==== Child.java
package com;
import com.somewhereelse.Parent;
public class Child extends Parent {
public static void main(String[] args) {
new Child().m();
}
public void m() {
}
}
===== 8< ==== Overthere.aj
package xxx;
import com.Child;
privileged aspect Overthere {
before(Child c): execution(* Child.m(..)) && this(c) {
c.foo();
}
}
===== 8< ====
> ajc -1.5 com/Child.java com/somewhereelse/Parent.java xxx/Overthere.aj -showWeaveInfo -d output
Join point 'method-execution(void com.Child.m())' in Type 'com.Child'
(Child.java:11) advised by before advice from 'xxx.Overthere'
(Overthere.aj:6)
> cd output
> java com.Child
foo!
Here is the accessor in the Parent class:
> javap com.somewhereelse.Parent
Compiled from "Parent.java"
public class com.somewhereelse.Parent extends java.lang.Object{
public com.somewhereelse.Parent();
protected void foo();
public void ajc$privMethod$xxx_Overthere$com_somewhereelse_Parent$foo();
}
So what is different about your configuration from mine?
cheers,
Andy
On 21 May 2012 09:25, Sina <my.linked.account@xxxxxxxxxxxxxx> wrote:
> Hi there.
>
> I have Parent class and a child one. The parent class has
> some protected methods.
> My pointcut works on methods of the child class. The problem is that I want
> to access protected methods of the parent in my Aspect, but they are not
> visible from within my Aspect.
>
> All these 3 classes (Parent, Child, Aspect) are in different packages.
>
> I read here http://dev.eclipse.org/mhonarc/lists/aspectj-users/msg03270.html
> that using privileged modifier will solve the problem but it does not work
> for me.
> Any idea??
>
> Sina
>
> _______________________________________________
> aspectj-users mailing list
> aspectj-users@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/aspectj-users
>