I'm trying to use @DeclareMixin for the first time, and either I am doing
something incorrect, or there is a bug somewhere.

I've published my sample code to github:
https://github.com/benze/AspectJError.git.  I'm pasting the little bits
here as well.

If I look at the compiled code of ApplyAspect.class using a decompiler, I
can see that ajc has properly added in the implemented interface.
However, the compiler complains in Test that ApplyAspect does not have the
setCreated() or the getCreated() methods.

Additionally, if I try to compile the project from the command line, I get
compilation errors as well.

I'm not sure what I am doing wrong, or if there is a bug somewhere else
with @DeclareMixin directive.


Interface CreatedBean.java:
public interface CreatedBean {
public Object getCreated();
public void setCreated(final Object created);
}


Implementation CreatedBeanImpl.java:
public class CreatedBeanImpl implements CreatedBean{
    private Object created;

    public Object getCreated(){
    return this.created;
    }

    public void setCreated(final Object created ){
    this.created = created;
    }
}


Aspect definition:
@Aspect
public class DeclareMixinAspect {
    @DeclareMixin("com.benze.bo.ApplyAspect")
    public CreatedBean auditableBeanMixin(){
        return new CreatedBeanImpl();
    }
}


Class being advised (com.benze.bo pkg):
public class ApplyAspect {
    private String name = "test class";
}


Class trying to use ApplyAspect:
public class Test {

    public static void main(String[] args) {
        ApplyAspect aa = new ApplyAspect();
        aa.setCreated(new Date());
        System.out.println( aa.getCreated().toString());
        System.out.println(aa.toString());
        System.out.println("all done");
    }
}




Thanks,

Eric
_______________________________________________
aspectj-users mailing list
aspectj-users@eclipse.org
To change your delivery options, retrieve your password, or unsubscribe from 
this list, visit
https://dev.eclipse.org/mailman/listinfo/aspectj-users

Reply via email to