diff options
author | aclement <aclement> | 2010-04-19 22:19:19 +0000 |
---|---|---|
committer | aclement <aclement> | 2010-04-19 22:19:19 +0000 |
commit | f97adb2888cf3fb5583af0013fa0e583ed191944 (patch) | |
tree | f135fdf26ca102589bc11b6ddc30b2c9631e0e84 | |
parent | e09e0b5f728c71dd2a06803f04eb566b53390004 (diff) | |
download | aspectj-f97adb2888cf3fb5583af0013fa0e583ed191944.tar.gz aspectj-f97adb2888cf3fb5583af0013fa0e583ed191944.zip |
309743
7 files changed, 28 insertions, 7 deletions
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 47089d172..c2917ac93 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 @@ -453,6 +453,8 @@ public class BuildArgParser extends Main { args.remove(args.get(nextArgIndex)); } + } else if (arg.equals("-makeAjReflectable")) { + buildConfig.setMakeReflectable(true); } else if (arg.equals("-sourceroots")) { if (args.size() > nextArgIndex) { List sourceRoots = new ArrayList(); diff --git a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/AjCompilerAdapter.java b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/AjCompilerAdapter.java index bef441f67..2537c0356 100644 --- a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/AjCompilerAdapter.java +++ b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/AjCompilerAdapter.java @@ -50,6 +50,7 @@ public class AjCompilerAdapter extends AbstractCompilerAdapter { private boolean isXTerminateAfterCompilation; private boolean proceedOnError; private boolean inJava5Mode; + private boolean reflectable; private boolean noAtAspectJAnnotationProcessing; private IIntermediateResultsRequestor intermediateResultsRequestor; private IProgressListener progressListener; @@ -85,6 +86,7 @@ public class AjCompilerAdapter extends AbstractCompilerAdapter { IOutputClassFileNameProvider outputFileNameProvider, IBinarySourceProvider binarySourceProvider, Map fullBinarySourceEntries, /* fileName |-> List<UnwovenClassFile> */ boolean isXterminateAfterCompilation, boolean proceedOnError, boolean noAtAspectJProcessing, + boolean reflectable, AjState incrementalCompilationState) { this.compiler = compiler; this.isBatchCompile = isBatchCompile; @@ -97,6 +99,7 @@ public class AjCompilerAdapter extends AbstractCompilerAdapter { this.proceedOnError = proceedOnError; this.binarySourceSetForFullWeave = fullBinarySourceEntries; this.eWorld = eFactory; + this.reflectable= reflectable; this.inJava5Mode = false; this.noAtAspectJAnnotationProcessing = noAtAspectJProcessing; this.incrementalCompilationState = incrementalCompilationState; @@ -129,7 +132,7 @@ public class AjCompilerAdapter extends AbstractCompilerAdapter { if (inJava5Mode && !noAtAspectJAnnotationProcessing) { ContextToken tok = CompilationAndWeavingContext.enteringPhase( CompilationAndWeavingContext.ADDING_AT_ASPECTJ_ANNOTATIONS, unit.getFileName()); - AddAtAspectJAnnotationsVisitor atAspectJVisitor = new AddAtAspectJAnnotationsVisitor(unit); + AddAtAspectJAnnotationsVisitor atAspectJVisitor = new AddAtAspectJAnnotationsVisitor(unit,reflectable); unit.traverse(atAspectJVisitor, unit.scope); CompilationAndWeavingContext.leavingPhase(tok); } diff --git a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/AjPipeliningCompilerAdapter.java b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/AjPipeliningCompilerAdapter.java index 853d9548d..29fcf45bc 100644 --- a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/AjPipeliningCompilerAdapter.java +++ b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/AjPipeliningCompilerAdapter.java @@ -96,6 +96,7 @@ public class AjPipeliningCompilerAdapter extends AbstractCompilerAdapter { private boolean isXTerminateAfterCompilation; private boolean proceedOnError; private boolean inJava5Mode; + private boolean makeReflectable; private boolean noAtAspectJAnnotationProcessing; private IIntermediateResultsRequestor intermediateResultsRequestor; private IProgressListener progressListener; @@ -138,7 +139,7 @@ public class AjPipeliningCompilerAdapter extends AbstractCompilerAdapter { EclipseFactory eFactory, IIntermediateResultsRequestor intRequestor, IProgressListener progressListener, IOutputClassFileNameProvider outputFileNameProvider, IBinarySourceProvider binarySourceProvider, Map fullBinarySourceEntries, /* fileName |-> List<UnwovenClassFile> */ - boolean isXterminateAfterCompilation, boolean proceedOnError, boolean noAtAspectJProcessing, + boolean isXterminateAfterCompilation, boolean proceedOnError, boolean noAtAspectJProcessing, boolean makeReflectable, AjState incrementalCompilationState) { this.compiler = compiler; this.isBatchCompile = isBatchCompile; @@ -152,6 +153,7 @@ public class AjPipeliningCompilerAdapter extends AbstractCompilerAdapter { this.binarySourceSetForFullWeave = fullBinarySourceEntries; this.eWorld = eFactory; this.inJava5Mode = false; + this.makeReflectable = makeReflectable; this.noAtAspectJAnnotationProcessing = noAtAspectJProcessing; this.incrementalCompilationState = incrementalCompilationState; @@ -263,7 +265,7 @@ public class AjPipeliningCompilerAdapter extends AbstractCompilerAdapter { if (inJava5Mode && !noAtAspectJAnnotationProcessing) { ContextToken tok = CompilationAndWeavingContext.enteringPhase( CompilationAndWeavingContext.ADDING_AT_ASPECTJ_ANNOTATIONS, unit.getFileName()); - AddAtAspectJAnnotationsVisitor atAspectJVisitor = new AddAtAspectJAnnotationsVisitor(unit); + AddAtAspectJAnnotationsVisitor atAspectJVisitor = new AddAtAspectJAnnotationsVisitor(unit,makeReflectable); unit.traverse(atAspectJVisitor, unit.scope); CompilationAndWeavingContext.leavingPhase(tok); } diff --git a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/AddAtAspectJAnnotationsVisitor.java b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/AddAtAspectJAnnotationsVisitor.java index 7606ed446..79447f0ae 100644 --- a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/AddAtAspectJAnnotationsVisitor.java +++ b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/AddAtAspectJAnnotationsVisitor.java @@ -28,10 +28,12 @@ import org.aspectj.org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope */ public class AddAtAspectJAnnotationsVisitor extends ASTVisitor { + private boolean makeReflectable; // private CompilationUnitDeclaration unit; - public AddAtAspectJAnnotationsVisitor(CompilationUnitDeclaration unit) { + public AddAtAspectJAnnotationsVisitor(CompilationUnitDeclaration unit, boolean makeReflectable) { // this.unit = unit; + this.makeReflectable= makeReflectable; } public boolean visit(TypeDeclaration localTypeDeclaration, BlockScope scope) { @@ -63,7 +65,9 @@ public class AddAtAspectJAnnotationsVisitor extends ASTVisitor { } else if (methodDeclaration instanceof DeclareDeclaration) { ((DeclareDeclaration) methodDeclaration).addAtAspectJAnnotations(); } else if (methodDeclaration instanceof InterTypeDeclaration) { - ((InterTypeDeclaration) methodDeclaration).addAtAspectJAnnotations(); + if (makeReflectable) { + ((InterTypeDeclaration) methodDeclaration).addAtAspectJAnnotations(); + } } return false; } 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 0d5ee2fca..75f8f5bb7 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 @@ -410,6 +410,7 @@ public class AjBuildConfig implements CompilerConfigurationChangeFlags { setAddSerialVerUID(global.isAddSerialVerUID()); setXmlConfigured(global.isXmlConfigured()); setTiming(global.isTiming()); + setMakeReflectable(global.isMakeReflectable()); } void join(Collection local, Collection global) { @@ -565,10 +566,18 @@ public class AjBuildConfig implements CompilerConfigurationChangeFlags { public void setXmlConfigured(boolean b) { options.xmlConfigured = b; } + + public void setMakeReflectable(boolean b) { + options.makeReflectable = b; + } public boolean isXmlConfigured() { return options.xmlConfigured; } + + public boolean isMakeReflectable() { + return options.makeReflectable; + } public boolean isXNotReweavable() { return options.xNotReweavable; 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 70addfa66..59879e3b3 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 @@ -1383,14 +1383,14 @@ public class AjBuildManager implements IOutputClassFileNameProvider, IBinarySour this, // IOutputFilenameProvider this, // IBinarySourceProvider state.getBinarySourceMap(), buildConfig.isTerminateAfterCompilation(), buildConfig.getProceedOnError(), - buildConfig.isNoAtAspectJAnnotationProcessing(), state); + buildConfig.isNoAtAspectJAnnotationProcessing(), buildConfig.isMakeReflectable(), state); } else { return new AjCompilerAdapter(forCompiler, batchCompile, getBcelWorld(), getWeaver(), factory, getInterimResultRequestor(), progressListener, this, // IOutputFilenameProvider this, // IBinarySourceProvider state.getBinarySourceMap(), buildConfig.isTerminateAfterCompilation(), buildConfig.getProceedOnError(), - buildConfig.isNoAtAspectJAnnotationProcessing(), state); + buildConfig.isNoAtAspectJAnnotationProcessing(), buildConfig.isMakeReflectable(), state); } } 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 506f2e123..f07be6fcc 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 @@ -82,6 +82,7 @@ public class AjCompilerOptions extends CompilerOptions { public String xConfigurationInfo; public boolean addSerialVerUID = false; public boolean xmlConfigured = false; + public boolean makeReflectable = false; // these next four not exposed by IDEs public boolean generateModel = false; |