--- /dev/null
+// TESTING: Very basics with a simple static factory method
+import org.aspectj.lang.annotation.*;
+
+public class CaseA {
+ public static void main(String[]argv) {
+ CaseA ca = new CaseA();
+ ((I)ca).methodOne(); // will only succeed if mixin applied
+ }
+}
+
+aspect X {
+ @DeclareMixin("CaseA")
+ public static I createImplementation() {
+ System.out.println("Delegate factory invoked");
+ return new Implementation();
+ }
+}
+
+interface I {
+ void methodOne();
+}
+
+class Implementation implements I {
+ public void methodOne() {
+ System.out.println("methodOne running");
+ }
+}
--- /dev/null
+// TESTING: Very basics with a simple static factory method
+import org.aspectj.lang.annotation.*;
+
+public class CaseA {
+ public static void main(String[]argv) {
+ CaseA ca = new CaseA();
+ ((I)ca).methodOne(); // will only succeed if mixin applied
+ }
+}
+
+aspect X {
+ @DeclareMixin("CaseA")
+ public static I createImplementation() {
+ System.out.println("Delegate factory invoked");
+ return new Implementation();
+ }
+}
+
+interface I {
+ void methodOne();
+}
+
+class Implementation implements I {
+ public void methodOne() {
+ System.out.println("methodOne running");
+ }
+}