* Contributors:
* PARC initial implementation
* ******************************************************************/
-
package org.aspectj.weaver;
import java.lang.reflect.Modifier;
-//import org.aspectj.weaver.ResolvedType.Name;
-
/**
* The AjcMemberMaker is responsible for creating the representations of methods/fields/etc that are placed in both aspects and
* affected target types. It uses the NameMangler class to create the actual names that will be used.
}
public static ResolvedMember perCflowField(UnresolvedType declaringType) {
- return new ResolvedMemberImpl(Member.FIELD, declaringType, PUBLIC_STATIC_FINAL, NameMangler.PERCFLOW_FIELD_NAME,
+ return new ResolvedMemberImpl(Member.FIELD, declaringType, PUBLIC_STATIC, NameMangler.PERCFLOW_FIELD_NAME,
CFLOW_STACK_TYPE.getSignature());
}
pointcutKind = CFLOW;
}
- /**
- * @return Returns true is this is a cflowbelow pointcut
- */
public boolean isCflowBelow() {
return isBelow;
}
} else {
// Create a counter field in the aspect
- localCflowField = new ResolvedMemberImpl(Member.FIELD, concreteAspect, Modifier.STATIC | Modifier.PUBLIC
- | Modifier.FINAL, NameMangler.cflowCounter(xcut), UnresolvedType.forName(NameMangler.CFLOW_COUNTER_TYPE)
+ localCflowField = new ResolvedMemberImpl(Member.FIELD, concreteAspect, Modifier.STATIC | Modifier.PUBLIC,
+ NameMangler.cflowCounter(xcut), UnresolvedType.forName(NameMangler.CFLOW_COUNTER_TYPE)
.getSignature());
// Create type munger to add field to the aspect
localCflowField = (ResolvedMember) field;
} else {
- localCflowField = new ResolvedMemberImpl(Member.FIELD, concreteAspect, Modifier.STATIC | Modifier.PUBLIC
- | Modifier.FINAL, NameMangler.cflowStack(xcut), UnresolvedType.forName(NameMangler.CFLOW_STACK_TYPE)
+ localCflowField = new ResolvedMemberImpl(Member.FIELD, concreteAspect, Modifier.STATIC | Modifier.PUBLIC,
+ NameMangler.cflowStack(xcut), UnresolvedType.forName(NameMangler.CFLOW_STACK_TYPE)
.getSignature());
// System.out.println("adding field to: " + inAspect + " field "
// + cflowField);
return ret;
}
- Member cflowStackField = new ResolvedMemberImpl(Member.FIELD, inAspect, Modifier.STATIC | Modifier.PUBLIC | Modifier.FINAL,
+ Member cflowStackField = new ResolvedMemberImpl(Member.FIELD, inAspect, Modifier.PUBLIC | Modifier.STATIC,
UnresolvedType.forName(NameMangler.CFLOW_STACK_TYPE), NameMangler.PERCFLOW_FIELD_NAME, UnresolvedType.NONE);
World world = inAspect.getWorld();
*/
public class Ajc192Tests extends XMLBasedAjcTestCase {
+ public void testCflowFinal() {
+ runTest("no final on cflow elements");
+ }
+
+ public void testAroundAdvice_AnnoStyle() {
+ runTest("around advice");
+ }
+
+ public void testAroundAdvice_CodeStyle() {
+ runTest("around advice - 2");
+ }
+
public void testPTW_nonPrivileged() {
runTest("ptw");
}
<suite>
+ <ajc-test dir="bugs192/537825" title="no final on cflow elements">
+ <compile files="Code.java" options="-9">
+ </compile>
+ <run class="Code">
+ <stdout>
+ <line text="call(void B.methodB())"/>
+ <line text="staticinitialization(B.<clinit>)"/>
+ <line text="execution(void B.methodB())"/>
+ <line text="call(void C.methodC())"/>
+ <line text="staticinitialization(C.<clinit>)"/>
+ <line text="execution(void C.methodC())"/>
+ <line text="call(void D.methodD())"/>
+ <line text="staticinitialization(D.<clinit>)"/>
+ <line text="execution(void D.methodD())"/>
+ <line text="get(PrintStream java.lang.System.out)"/>
+ <line text="call(void java.io.PrintStream.println(int))"/>
+ <line text="3"/>
+ </stdout>
+ </run>
+ </ajc-test>
+
+ <ajc-test dir="bugs192/535156" title="around advice">
+ <compile files="DemoApp.java" options="-8 -showWeaveInfo">
+ <message kind="weave" text="Join point 'method-call(void DemoApp.say())' in Type 'DemoApp' (DemoApp.java:6) advised by around advice from 'X' (DemoApp.java:14)"/>
+ </compile>
+ <run class="DemoApp">
+ </run>
+ </ajc-test>
+
+ <ajc-test dir="bugs192/535156" title="around advice - 2">
+ <compile files="DemoApp2.java" options="-8 -showWeaveInfo">
+ <message kind="weave" text="Join point 'method-call(void DemoApp2.say())' in Type 'DemoApp2' (DemoApp2.java:6) advised by around advice from 'X' (DemoApp2.java:13)"/>
+ </compile>
+ <run class="DemoApp2">
+ </run>
+ </ajc-test>
+
<ajc-test dir="bugs192/ptw" title="ptw">
<compile files="a/b/c/Code.java a/b/d/Foo.java" options="-8">
</compile>
/*******************************************************************************
- * Copyright (c) 2014 Contributors
+ * Copyright (c) 2014,2018 Contributors
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
*******************************************************************************/
package org.aspectj.systemtest.apt;
-import junit.framework.Test;
-import org.aspectj.apache.bcel.classfile.Method;
+import java.io.File;
+
import org.aspectj.testing.XMLBasedAjcTestCase;
import org.aspectj.util.LangUtil;
-import java.io.File;
+import junit.framework.Test;
/**
* Annotation processing tool tests.