package examples.introduction; import org.codehaus.aspectwerkz.AspectContext; import java.io.Serializable; /** * @Aspect perClass */ public class IntroductionAspect extends AbstractIntroductionAspect { /** * @Introduce within(examples.introduction.Target) */ public Serializable serializable; /** * @Mixin(pointcut="within(@examples.annotation.Annotation *..*)", deploymentModel="perInstance") */ public static class MyConcreteImpl extends MyImpl { /** * The instance we are introduced to since we are perInstance */ private final Object m_target; /** * @param target */ public MyConcreteImpl(final Object target) { m_target = target; System.out.println("--Accessing mixin target instance from the mixin <init>..."); System.out.println("-- I am introduced to " + target); sayHello2(); System.out.println("--..<init> done"); } public String sayHello2() { return "Hello World! Hello World!"; } } }