Browse Source

PointcutDoctor javadoc - 193065

tags/V1_5_4rc1
aclement 16 years ago
parent
commit
a36f9ce5a3

+ 18
- 0
tests/bugs/pointcutdoctor-bug193065/Aspect.aj View File


public aspect Aspect {
//:method-call(void Foo.method1())=real
//:(virtual) method-call(void Foo.method2())=virtual
pointcut calls(): call(* Foo.*(..));
//:(virtual) method-call(void Bar.bar())=virtual
pointcut callBar():call(* Bar.*(..));
//:method-call(void Foo.method1())=real
//:(virtual) method-call(void Foo.method2())=virtual
pointcut callsWithin(): call(* Foo.*(..)) && within(Bar);

//:method-call(void Foo.method1())=real
//:(virtual) method-call(void Foo.method2())=virtual
pointcut callsWithincode(): call(* Foo.*(..))&&withincode(* Bar.*(..));

}

+ 6
- 0
tests/bugs/pointcutdoctor-bug193065/Bar.java View File

public class Bar {
public void bar() {
Foo f = new Foo();
f.method1();
}
}

+ 9
- 0
tests/bugs/pointcutdoctor-bug193065/Foo.java View File

public class Foo {
public void method1() {
}
public void method2() {
}
}

+ 2
- 0
tests/src/org/aspectj/systemtest/ajc154/AllTestsAspectJ154.java View File

*******************************************************************************/ *******************************************************************************/
package org.aspectj.systemtest.ajc154; package org.aspectj.systemtest.ajc154;



import junit.framework.Test; import junit.framework.Test;
import junit.framework.TestSuite; import junit.framework.TestSuite;


TestSuite suite = new TestSuite("AspectJ 1.5.4 tests"); TestSuite suite = new TestSuite("AspectJ 1.5.4 tests");
//$JUnit-BEGIN$ //$JUnit-BEGIN$
suite.addTest(Ajc154Tests.suite()); suite.addTest(Ajc154Tests.suite());
//suite.addTestSuite(CustomMungerExtensionTest.class);
//$JUnit-END$ //$JUnit-END$
return suite; return suite;
} }

+ 124
- 0
tests/src/org/aspectj/systemtest/ajc154/CustomMungerExtensionTest.java View File

/* *******************************************************************
* Copyright (c) 2007 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
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Linton Ye https://bugs.eclipse.org/bugs/show_bug.cgi?id=193065
* ******************************************************************/

package org.aspectj.systemtest.ajc154;

import java.io.File;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import org.aspectj.ajde.core.AjCompiler;
import org.aspectj.bridge.ISourceLocation;
import org.aspectj.systemtest.incremental.tools.AjdeInteractionTestbed;
import org.aspectj.weaver.Advice;
import org.aspectj.weaver.Checker;
import org.aspectj.weaver.ConcreteTypeMunger;
import org.aspectj.weaver.CustomMungerFactory;
import org.aspectj.weaver.Member;
import org.aspectj.weaver.ResolvedType;
import org.aspectj.weaver.ResolvedTypeMunger;
import org.aspectj.weaver.Shadow;
import org.aspectj.weaver.ShadowMunger;
import org.aspectj.weaver.World;
import org.aspectj.weaver.AjAttribute.AdviceAttribute;
import org.aspectj.weaver.patterns.DeclareErrorOrWarning;
import org.aspectj.weaver.patterns.IfPointcut;
import org.aspectj.weaver.patterns.Pointcut;

public class CustomMungerExtensionTest extends AjdeInteractionTestbed {
protected void setUp() throws Exception {
super.setUp();
sandboxDir = new File(".");
}
public void testExtension() {
String testFileDir = "bugs/pointcutdoctor-bug193065";
AjCompiler compiler = getCompilerForProjectWithName(testFileDir);
compiler.setCustomMungerFactory(new DumbCustomMungerFactory());

doBuild(testFileDir);
CustomMungerFactory factory = (CustomMungerFactory)compiler.getCustomMungerFactory();
assertTrue(factory.getAllCreatedCustomShadowMungers().size()>0);
for (Iterator i = factory.getAllCreatedCustomShadowMungers().iterator(); i.hasNext();)
assertTrue(((DumbShadowMunger)i.next()).called);
assertTrue(factory.getAllCreatedCustomTypeMungers().size()>0);
for (Iterator i = factory.getAllCreatedCustomTypeMungers().iterator(); i.hasNext();)
assertTrue(((DumbTypeMunger)i.next()).called);
}
class DumbCustomMungerFactory implements CustomMungerFactory {
Collection allShadowMungers = new ArrayList();
Collection allTypeMungers = new ArrayList();
public Collection createCustomShadowMungers(ResolvedType aspectType) {
List/* ShadowMunger */ mungers = new ArrayList/*ShadowMunger*/();
Pointcut pointcut = new IfPointcut("abc");
mungers.add(new DumbShadowMunger(new DeclareErrorOrWarning(false, pointcut, "")));
allShadowMungers.addAll(mungers);
return mungers;
}

public Collection createCustomTypeMungers(ResolvedType aspectType) {
List/*ConcreteTypeMunger*/ mungers = new ArrayList/*ShadowMunger*/();
mungers.add(new DumbTypeMunger(null, aspectType));
allTypeMungers.addAll(mungers);
return mungers;
}

public Collection getAllCreatedCustomShadowMungers() {
return allShadowMungers;
}

public Collection getAllCreatedCustomTypeMungers() {
return allTypeMungers;
}
}

class DumbShadowMunger extends Checker {
public DumbShadowMunger(DeclareErrorOrWarning deow) {
super(deow);
}

public ISourceLocation getSourceLocation() {
return ISourceLocation.EMPTY;
}

boolean called;

public boolean match(Shadow shadow, World world) {
called = true;
return false;
}
}

class DumbTypeMunger extends ConcreteTypeMunger {
boolean called;

public DumbTypeMunger(ResolvedTypeMunger munger, ResolvedType aspectType) {
super(munger, aspectType);
}

public ConcreteTypeMunger parameterizedFor(ResolvedType targetType) {
return null;
}
public boolean matches(ResolvedType onType) {
called = true;
return false;
}
}
}

+ 1
- 0
tests/src/org/aspectj/systemtest/incremental/tools/MoreOutputLocationManagerTests.java View File

public void testAjStateDeleteResourcesInInputDir() { public void testAjStateDeleteResourcesInInputDir() {
// temporary problem with this on linux, think it is a filesystem lastmodtime issue // temporary problem with this on linux, think it is a filesystem lastmodtime issue
if (System.getProperty("os.name","").toLowerCase().equals("linux")) return; if (System.getProperty("os.name","").toLowerCase().equals("linux")) return;
if (System.getProperty("os.name","").toLowerCase().indexOf("mac")!=-1) return;


AjBuildManager.COPY_INPATH_DIR_RESOURCES = true; AjBuildManager.COPY_INPATH_DIR_RESOURCES = true;
try { try {

Loading…
Cancel
Save