From 385d9ef905eb07bdd37fd25887ad0a8e69e06f45 Mon Sep 17 00:00:00 2001 From: aclement Date: Tue, 29 Nov 2005 13:21:24 +0000 Subject: [PATCH] code for 116679: targetting a 1.2.1 runtime --- lib/aspectj/lib/aspectjrt121.jar | Bin 0 -> 41534 bytes .../org/aspectj/ajdt/ajc/BuildArgParser.java | 9 ++++++++ .../org/aspectj/ajdt/ajc/messages.properties | 2 ++ .../internal/core/builder/AjBuildConfig.java | 8 +++++++ .../internal/core/builder/AjBuildManager.java | 1 + .../core/builder/AjCompilerOptions.java | 4 ++++ .../internal/core/builder/AspectJBuilder.java | 1 + tests/bugs150/pr111667/A.java | 13 +++++++++++ tests/bugs150/pr111667/X.java | 3 +++ tests/bugs150/pr111667/Y.java | 4 ++++ tests/compatibility/Simple.java | 21 ++++++++++++++++++ .../systemtest/ajc150/Ajc150Tests.java | 2 ++ .../org/aspectj/systemtest/ajc150/ajc150.xml | 10 +++++++++ weaver/src/org/aspectj/weaver/Constants.java | 6 +++++ weaver/src/org/aspectj/weaver/World.java | 11 +++++++++ .../org/aspectj/weaver/bcel/LazyClassGen.java | 10 ++++++++- 16 files changed, 104 insertions(+), 1 deletion(-) create mode 100644 lib/aspectj/lib/aspectjrt121.jar create mode 100644 tests/bugs150/pr111667/A.java create mode 100644 tests/bugs150/pr111667/X.java create mode 100644 tests/bugs150/pr111667/Y.java create mode 100644 tests/compatibility/Simple.java diff --git a/lib/aspectj/lib/aspectjrt121.jar b/lib/aspectj/lib/aspectjrt121.jar new file mode 100644 index 0000000000000000000000000000000000000000..ee43ae3a5002f30229c7fd8c817913db6601cb46 GIT binary patch literal 41534 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 `F{Y|X%h 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 BTzmik literal 0 HcmV?d00001 diff --git a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/ajc/BuildArgParser.java b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/ajc/BuildArgParser.java index 9db08913d..2f4eea60e 100644 --- a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/ajc/BuildArgParser.java +++ b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/ajc/BuildArgParser.java @@ -20,6 +20,7 @@ import java.util.*; import org.aspectj.ajdt.internal.core.builder.*; import org.aspectj.bridge.*; import org.aspectj.util.*; +import org.aspectj.weaver.Constants; import org.aspectj.weaver.Dump; import org.aspectj.weaver.WeaverMessages; import org.aspectj.org.eclipse.jdt.core.compiler.InvalidInputException; @@ -637,6 +638,14 @@ public class BuildArgParser extends Main { buildConfig.setProceedOnError(true); } else if (new File(arg).isDirectory()) { showError("dir arg not permitted: " + arg); + } else if (arg.startsWith("-Xajruntimetarget")) { + if (arg.endsWith(":1.2")) { + buildConfig.setTargetAspectjRuntimeLevel(Constants.RUNTIME_LEVEL_12); + } else if (arg.endsWith(":1.5")) { + buildConfig.setTargetAspectjRuntimeLevel(Constants.RUNTIME_LEVEL_15); + } else { + showError("-Xajruntimetarget: only supports a target level of 1.2 or 1.5"); + } } else if (arg.equals("-1.5")) { buildConfig.setBehaveInJava5Way(true); unparsedArgs.add("-1.5"); diff --git a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/ajc/messages.properties b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/ajc/messages.properties index a297978ec..3feed9b3d 100644 --- a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/ajc/messages.properties +++ b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/ajc/messages.properties @@ -131,6 +131,8 @@ xoption.usage = {0} non-standard options:\n\ \t-XserializableAspects allows aspects to implement serializable\n\ \t-XnoWeave compile classes but do not weave. Deprecated, use\n\ \t reweavable instead.\n\ +\t-Xajruntimelevel: allows code to be generated that targets\n\ +\t a 1.2 or a 1.5 level AspectJ runtime (default 1.5)\n\ \t-XhasMember allow hasmethod() and hasfield type patterns in\n\ \t declare parents and declare @type\n ## options not documented above (per ..ajdt.ajc.BuildArgParser.java): diff --git a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AjBuildConfig.java b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AjBuildConfig.java index 505b80844..25200a327 100644 --- a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AjBuildConfig.java +++ b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AjBuildConfig.java @@ -571,4 +571,12 @@ public class AjBuildConfig { public boolean getBehaveInJava5Way() { return options.behaveInJava5Way; } + + public void setTargetAspectjRuntimeLevel(String level) { + options.targetAspectjRuntimeLevel = level; + } + + public String getTargetAspectjRuntimeLevel() { + return options.targetAspectjRuntimeLevel; + } } diff --git a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AjBuildManager.java b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AjBuildManager.java index 63ad260af..0cbb761db 100644 --- a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AjBuildManager.java +++ b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AjBuildManager.java @@ -608,6 +608,7 @@ public class AjBuildManager implements IOutputClassFileNameProvider,IBinarySourc cp.addAll(buildConfig.getClasspath()); BcelWorld bcelWorld = new BcelWorld(cp, handler, null); bcelWorld.setBehaveInJava5Way(buildConfig.getBehaveInJava5Way()); + bcelWorld.setTargetAspectjRuntimeLevel(buildConfig.getTargetAspectjRuntimeLevel()); bcelWorld.setXnoInline(buildConfig.isXnoInline()); bcelWorld.setXlazyTjp(buildConfig.isXlazyTjp()); bcelWorld.setXHasMemberSupportEnabled(buildConfig.isXHasMemberEnabled()); diff --git a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AjCompilerOptions.java b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AjCompilerOptions.java index 7481b4ffc..d5f04d885 100644 --- a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AjCompilerOptions.java +++ b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AjCompilerOptions.java @@ -17,6 +17,7 @@ import java.util.Map; import org.aspectj.org.eclipse.jdt.internal.compiler.ast.ASTNode; import org.aspectj.org.eclipse.jdt.internal.compiler.impl.CompilerOptions; +import org.aspectj.weaver.Constants; /** @@ -73,6 +74,9 @@ public class AjCompilerOptions extends CompilerOptions { // If true - autoboxing behaves differently ... public boolean behaveInJava5Way = false; + // Specifies the level of the aspectjrt.jar we are targetting + public String targetAspectjRuntimeLevel = Constants.RUNTIME_LEVEL_DEFAULT; + // these next four not exposed by IDEs public boolean generateModel = false; public boolean generateJavaDocsInModel = false; diff --git a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AspectJBuilder.java b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AspectJBuilder.java index 8bfa9b9d6..84371f08a 100644 --- a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AspectJBuilder.java +++ b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AspectJBuilder.java @@ -156,6 +156,7 @@ public class AspectJBuilder extends JavaBuilder implements ICompilerAdapterFacto cpManager = new EclipseClassPathManager(nameEnvironment); myBcelWorld = new BcelWorld(cpManager,new UnhandledMessageHandler(getProject()),null /*(xrefHandler)*/); myBcelWorld.setBehaveInJava5Way(options.behaveInJava5Way); + myBcelWorld.setTargetAspectjRuntimeLevel(options.targetAspectjRuntimeLevel); myBcelWorld.setXnoInline(options.xNoInline); myBcelWorld.setXlazyTjp(options.xLazyThisJoinPoint); myBcelWorld.setXHasMemberSupportEnabled(options.xHasMember); diff --git a/tests/bugs150/pr111667/A.java b/tests/bugs150/pr111667/A.java new file mode 100644 index 000000000..431af1ba1 --- /dev/null +++ b/tests/bugs150/pr111667/A.java @@ -0,0 +1,13 @@ +public class A{ + public static void main(String []argv) { + A a = new A(); + a.m1(); + a.m2(); + a.m3(); + } + + public void m1() {} + public void m2() {} + public void m3() {} +} + diff --git a/tests/bugs150/pr111667/X.java b/tests/bugs150/pr111667/X.java new file mode 100644 index 000000000..232adb7e4 --- /dev/null +++ b/tests/bugs150/pr111667/X.java @@ -0,0 +1,3 @@ +public aspect X { + before():execution(* m1()) {} +} diff --git a/tests/bugs150/pr111667/Y.java b/tests/bugs150/pr111667/Y.java new file mode 100644 index 000000000..8ed31b5f1 --- /dev/null +++ b/tests/bugs150/pr111667/Y.java @@ -0,0 +1,4 @@ +public aspect Y { + + before():execution(* m1()) {} +} diff --git a/tests/compatibility/Simple.java b/tests/compatibility/Simple.java new file mode 100644 index 000000000..72fec1886 --- /dev/null +++ b/tests/compatibility/Simple.java @@ -0,0 +1,21 @@ +public class Simple { + public static void main(String []argv) { + new Simple().a(); + } + + public void a() {} +} + +aspect X { + before():execution(* a(..)) { + System.err.println(thisJoinPoint); + System.err.println(thisJoinPointStaticPart); + System.err.println(thisEnclosingJoinPointStaticPart); + } + + before():execution(Simple.new(..)) { + System.err.println(thisJoinPoint); + System.err.println(thisEnclosingJoinPointStaticPart); + System.err.println(thisJoinPointStaticPart); + } +} diff --git a/tests/src/org/aspectj/systemtest/ajc150/Ajc150Tests.java b/tests/src/org/aspectj/systemtest/ajc150/Ajc150Tests.java index 282e04c8b..c692b30d9 100644 --- a/tests/src/org/aspectj/systemtest/ajc150/Ajc150Tests.java +++ b/tests/src/org/aspectj/systemtest/ajc150/Ajc150Tests.java @@ -48,6 +48,7 @@ public class Ajc150Tests extends org.aspectj.testing.XMLBasedAjcTestCase { public void testCunningDeclareParents_pr92311() { runTest("cunning declare parents");} public void testGenericITDsAndAbstractMethodError_pr102357() { runTest("generic itds and abstract method error");} */ + public void testGeneratingCodeForAnOldRuntime_pr116679() { runTest("generating code for a 1.2.1 runtime");} public void testAtDeclareParents_pr117681() { runTest("at declare parents");} public void testPrivilegeProblem_pr87525() { runTest("privilege problem with switch");} @@ -79,6 +80,7 @@ public class Ajc150Tests extends org.aspectj.testing.XMLBasedAjcTestCase { public void testVarargsITD_pr110906() { runTest("ITD varargs problem");} public void testBadRenderer_pr86903() { runTest("bcelrenderer bad");} + //public void testLintForAdviceSorting_pr111667() { runTest("lint for advice sorting");} public void testIncompatibleClassChangeError_pr113630_1() {runTest("IncompatibleClassChangeError - errorscenario");} public void testIncompatibleClassChangeError_pr113630_2() {runTest("IncompatibleClassChangeError - workingscenario");} diff --git a/tests/src/org/aspectj/systemtest/ajc150/ajc150.xml b/tests/src/org/aspectj/systemtest/ajc150/ajc150.xml index bc6d6d009..fc6457043 100644 --- a/tests/src/org/aspectj/systemtest/ajc150/ajc150.xml +++ b/tests/src/org/aspectj/systemtest/ajc150/ajc150.xml @@ -86,6 +86,11 @@ + + + + + @@ -108,6 +113,11 @@ + + + + + diff --git a/weaver/src/org/aspectj/weaver/Constants.java b/weaver/src/org/aspectj/weaver/Constants.java index e51bf96c2..9962f893c 100644 --- a/weaver/src/org/aspectj/weaver/Constants.java +++ b/weaver/src/org/aspectj/weaver/Constants.java @@ -21,4 +21,10 @@ public interface Constants { public final static int ACC_BRIDGE = 0x0040; public final static int ACC_VARARGS = 0x0080; + + public final static String RUNTIME_LEVEL_12 = "1.2"; + public final static String RUNTIME_LEVEL_15 = "1.5"; + + // Default for 1.5.0 + public final static String RUNTIME_LEVEL_DEFAULT = RUNTIME_LEVEL_15; } diff --git a/weaver/src/org/aspectj/weaver/World.java b/weaver/src/org/aspectj/weaver/World.java index 31db56be9..3f1bd7faf 100644 --- a/weaver/src/org/aspectj/weaver/World.java +++ b/weaver/src/org/aspectj/weaver/World.java @@ -79,6 +79,9 @@ public abstract class World implements Dump.INode { /** When behaving in a Java 5 way autoboxing is considered */ private boolean behaveInJava5Way = false; + /** The level of the aspectjrt.jar the code we generate needs to run on */ + private String targetAspectjRuntimeLevel = Constants.RUNTIME_LEVEL_DEFAULT; + /** * A list of RuntimeExceptions containing full stack information for every * type we couldn't find. @@ -644,6 +647,14 @@ public abstract class World implements Dump.INode { return behaveInJava5Way; } + public void setTargetAspectjRuntimeLevel(String s) { + targetAspectjRuntimeLevel = s; + } + + public String getTargetAspectjRuntimeLevel() { + return targetAspectjRuntimeLevel; + } + /* * Map of types in the world, with soft links to expendable ones. * An expendable type is a reference type that is not exposed to the weaver (ie diff --git a/weaver/src/org/aspectj/weaver/bcel/LazyClassGen.java b/weaver/src/org/aspectj/weaver/bcel/LazyClassGen.java index f97eacbdf..806b4e82c 100644 --- a/weaver/src/org/aspectj/weaver/bcel/LazyClassGen.java +++ b/weaver/src/org/aspectj/weaver/bcel/LazyClassGen.java @@ -999,7 +999,14 @@ public final class LazyClassGen { // create the signature list.append(InstructionFactory.createLoad(factoryType, 0)); - if (sig.getKind().equals(Member.METHOD)) { + if (world.getTargetAspectjRuntimeLevel().equals(org.aspectj.weaver.Constants.RUNTIME_LEVEL_12)) { + list.append(new PUSH(getConstantPoolGen(), sig.getSignatureString(shadow.getWorld()))); + list.append(fact.createInvoke(factoryType.getClassName(), + sig.getSignatureMakerName(), + new ObjectType(sig.getSignatureType()), + new Type[] { Type.STRING }, + Constants.INVOKEVIRTUAL)); + } else if (sig.getKind().equals(Member.METHOD)) { BcelWorld w = shadow.getWorld(); // For methods, push the parts of the signature on. list.append(new PUSH(getConstantPoolGen(),makeString(sig.getModifiers(w)))); @@ -1079,6 +1086,7 @@ public final class LazyClassGen { new Type[] { Type.STRING }, Constants.INVOKEVIRTUAL)); } + //XXX should load source location from shadow list.append(Utility.createConstant(fact, shadow.getSourceLine())); -- 2.39.5