[Git][java-team/aspectj][upstream] New upstream version 1.9.2
Emmanuel Bourg
gitlab at salsa.debian.org
Fri Jan 11 12:09:33 GMT 2019
Emmanuel Bourg pushed to branch upstream at Debian Java Maintainers / aspectj
Commits:
b53ca331 by Emmanuel Bourg at 2018-10-24T20:34:34Z
New upstream version 1.9.2
- - - - -
27 changed files:
- ajde.core/.isJava5 → ajde.core/.isJava8
- ajde.core/src/org/aspectj/ajde/core/internal/AjdeCoreBuildManager.java
- bcel-builder/src/org/aspectj/apache/bcel/generic/ClassGen.java
- build/src/org/aspectj/internal/tools/ant/taskdefs/AntBuilder.java
- docs/devGuideDB/ajc.xml
- + docs/dist/doc/README-192.html
- docs/dist/doc/index.html
- lib/build/build.jar
- loadtime/src/org/aspectj/weaver/loadtime/Aj.java
- loadtime/src/org/aspectj/weaver/loadtime/ClassLoaderWeavingAdaptor.java
- loadtime/src/org/aspectj/weaver/loadtime/ConcreteAspectCodeGen.java
- org.aspectj.ajdt.core/src/org/aspectj/ajdt/ajc/BuildArgParser.java
- org.aspectj.ajdt.core/src/org/aspectj/ajdt/ajc/messages.properties
- org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/lookup/EclipseSourceType.java
- org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AjCompilerOptions.java
- org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AsmElementFormatter.java
- org.eclipse.jdt.core/src/org/aspectj/org/eclipse/jdt/internal/compiler/ast/LambdaExpression.java
- org.eclipse.jdt.core/src/org/aspectj/org/eclipse/jdt/internal/compiler/lookup/BinaryTypeBinding.java
- org.eclipse.jdt.core/src/org/aspectj/org/eclipse/jdt/internal/compiler/lookup/SourceTypeBinding.java
- runtime/src/org/aspectj/lang/Aspects14.java
- weaver/.classpath
- weaver/src/org/aspectj/weaver/bcel/AtAjAttributes.java
- weaver/src/org/aspectj/weaver/bcel/BcelMethod.java
- weaver/src/org/aspectj/weaver/bcel/BcelShadow.java
- weaver/src/org/aspectj/weaver/bcel/ClassPathManager.java
- weaver/src/org/aspectj/weaver/bcel/Utility.java
- weaver/src/org/aspectj/weaver/tools/WeavingAdaptor.java
Changes:
=====================================
ajde.core/.isJava5 → ajde.core/.isJava8
=====================================
=====================================
ajde.core/src/org/aspectj/ajde/core/internal/AjdeCoreBuildManager.java
=====================================
@@ -223,10 +223,12 @@ public class AjdeCoreBuildManager {
if (configFile.exists() && configFile.isFile()) {
args = new String[] { "@" + configFile.getAbsolutePath() };
} else {
- List<String> l = compilerConfig.getProjectSourceFiles();
- if (l == null) {
+ List<String> projectSourceFiles = compilerConfig.getProjectSourceFiles();
+ if (projectSourceFiles == null) {
return null;
}
+ List<String> l = new ArrayList<>();
+ l.addAll(projectSourceFiles);
// If the processor options are specified build the command line options for the JDT compiler to see
String processor = compilerConfig.getProcessor();
if (processor != null && processor.length() != 0) {
@@ -238,20 +240,25 @@ public class AjdeCoreBuildManager {
l.add("-processorpath");
l.add(processorPath);
}
+ if (compilerConfig.getOutputLocationManager() != null &&
+ compilerConfig.getOutputLocationManager().getDefaultOutputLocation() != null) {
+ l.add("-d");
+ l.add(compilerConfig.getOutputLocationManager().getDefaultOutputLocation().toString());
+ }
List<String> xmlfiles = compilerConfig.getProjectXmlConfigFiles();
if (xmlfiles != null && !xmlfiles.isEmpty()) {
args = new String[l.size() + xmlfiles.size() + 1];
// TODO speedup
int p = 0;
for (int i = 0; i < l.size(); i++) {
- args[p++] = (String) l.get(i);
+ args[p++] = l.get(i);
}
for (int i = 0; i < xmlfiles.size(); i++) {
- args[p++] = (String) xmlfiles.get(i);
+ args[p++] = xmlfiles.get(i);
}
args[p++] = "-xmlConfigured";
} else {
- args = (String[]) l.toArray(new String[l.size()]);
+ args = l.toArray(new String[l.size()]);
}
}
@@ -320,7 +327,7 @@ public class AjdeCoreBuildManager {
// Process the JAVA OPTIONS MAP
Map<String,String> jom = compilerConfig.getJavaOptionsMap();
if (jom != null) {
- String version = (String) jom.get(CompilerOptions.OPTION_Compliance);
+ String version = jom.get(CompilerOptions.OPTION_Compliance);
if (version != null && !version.equals(CompilerOptions.VERSION_1_4)) {
config.setBehaveInJava5Way(true);
}
@@ -383,7 +390,7 @@ public class AjdeCoreBuildManager {
} else {
tokens.addAll(tokenizeString(nonStdOptions));
}
- String[] args = (String[]) tokens.toArray(new String[] {});
+ String[] args = tokens.toArray(new String[] {});
// set the non-standard options in an alternate build config
// (we don't want to lose the settings we already have)
=====================================
bcel-builder/src/org/aspectj/apache/bcel/generic/ClassGen.java
=====================================
@@ -270,7 +270,7 @@ public class ClassGen extends Modifiers implements Cloneable {
/**
* @return field object with given name, or null if not found
*/
- public Field containsField(String name) {
+ public Field findsField(String name) {
for (Field field : fieldsList) {
if (field.getName().equals(name)) {
return field;
=====================================
build/src/org/aspectj/internal/tools/ant/taskdefs/AntBuilder.java
=====================================
@@ -86,7 +86,7 @@ public class AntBuilder extends Builder {
*/
private static void makeTargetsForResult(final Result result, final Hashtable<String,Target> targets) {
final String resultTargetName = resultToTargetName(result);
- Target target = (Target) targets.get(resultTargetName);
+ Target target = targets.get(resultTargetName);
if (null == target) {
// first add the target
target = new Target();
@@ -147,6 +147,7 @@ public class AntBuilder extends Builder {
* @param boolean filter if true, enable filtering
* @see org.aspectj.internal.tools.build.Builder#copyFile(File, File, boolean)
*/
+ @Override
protected boolean copyFile(File fromFile, File toFile, boolean filter) {
Copy copy = makeCopyTask(filter);
copy.setFile(fromFile);
@@ -160,6 +161,7 @@ public class AntBuilder extends Builder {
*
* @see org.aspectj.internal.tools.ant.taskdefs.Builder#copyFiles(File, File, String, String, boolean)
*/
+ @Override
protected boolean copyFiles(File fromDir, File toDir, String includes, String excludes, boolean filter) {
Copy copy = makeCopyTask(filter);
copy.setTodir(toDir);
@@ -226,8 +228,6 @@ public class AntBuilder extends Builder {
boolean isJava5Compile = false;
boolean isJava8Compile = false;
for (File file: result.getSrcDirs()) {
-// for (Iterator iter = result.getSrcDirs().iterator(); iter.hasNext();) {
-// File file = (File) iter.next();
path.createPathElement().setLocation(file);
if (!isJava5Compile
&& (Util.Constants.JAVA5_SRC.equals(file.getName()) ||
@@ -270,18 +270,16 @@ public class AntBuilder extends Builder {
// misc
javac.setDebug(true);
- if (!isJava5Compile) {
+ if (isJava8Compile) {
+ javac.setSource("1.8");
+ javac.setTarget("1.8");
+ } else if (isJava5Compile) {
+ // *cough*
+ javac.setSource("1.6");
+ javac.setTarget("1.6");
+ } else {
javac.setTarget("1.1"); // 1.1 class files - Javac in 1.4 uses 1.4
javac.setSource("1.3");
- } else {
- if (isJava8Compile) {
- javac.setSource("1.8");
- javac.setTarget("1.8");
- } else {
- // min
- javac.setSource("1.6");
- javac.setTarget("1.6");
- }
}
// compile
boolean passed = false;
@@ -412,6 +410,7 @@ public class AntBuilder extends Builder {
/**
* @see org.aspectj.internal.tools.build.Builder#buildAntecedants(Module)
*/
+ @Override
protected Result[] getAntecedantResults(Result moduleResult) {
Hashtable<String,Target> targets = new Hashtable<String, Target>();
makeTargetsForResult(moduleResult, targets);
@@ -425,7 +424,7 @@ public class AntBuilder extends Builder {
}
ArrayList<String> toReturn = new ArrayList<String>();
for (Iterator<Target> iter = result.iterator(); iter.hasNext();) {
- Target target = (Target) iter.next();
+ Target target = iter.next();
String name = target.getName();
if (null == name) {
throw new Error("null name?");
@@ -437,12 +436,13 @@ public class AntBuilder extends Builder {
if ((1 == size) && targetName.equals(toReturn.get(0)) && !moduleResult.outOfDate()) {
return new Result[0];
}
- return Result.getResults((String[]) toReturn.toArray(new String[0]));
+ return Result.getResults(toReturn.toArray(new String[0]));
}
/**
* Generate Module.assembledJar with merge of itself and all antecedants
*/
+ @Override
protected boolean assembleAll(Result result, Messager handler) {
if (!buildingEnabled) {
return false;
@@ -500,6 +500,7 @@ public class AntBuilder extends Builder {
/**
* @see org.aspectj.internal.tools.ant.taskdefs.Builder#buildInstaller(BuildSpec, String)
*/
+ @Override
protected boolean buildInstaller(BuildSpec buildSpec, String targDirPath) {
return false;
}
@@ -726,6 +727,7 @@ class ProductBuilder extends AntBuilder {
/**
* Delegate for super.buildProduct(..) template method.
*/
+ @Override
protected boolean copyBinaries(BuildSpec buildSpec, File distDir, File targDir, String excludes) {
Copy copy = makeCopyTask(false);
copy.setTodir(targDir);
@@ -742,6 +744,7 @@ class ProductBuilder extends AntBuilder {
/**
* Delegate for super.buildProduct(..) template method.
*/
+ @Override
protected boolean copyNonBinaries(BuildSpec buildSpec, File distDir, File targDir) {
// filter-copy everything but the binaries
Copy copy = makeCopyTask(true);
@@ -754,6 +757,7 @@ class ProductBuilder extends AntBuilder {
return executeTask(copy);
}
+ @Override
protected boolean buildInstaller(BuildSpec buildSpec, String targDirPath) {
if (buildSpec.verbose) {
handler.log("creating installer for " + buildSpec);
@@ -808,16 +812,19 @@ class ProjectMessager extends Messager {
this.project = project;
}
+ @Override
public boolean log(String s) {
project.log(s);
return true;
}
+ @Override
public boolean error(String s) {
project.log(s, Project.MSG_ERR);
return true;
}
+ @Override
public boolean logException(String context, Throwable thrown) {
project.log(context + Util.renderException(thrown), Project.MSG_ERR);
return true;
=====================================
docs/devGuideDB/ajc.xml
=====================================
@@ -536,7 +536,7 @@
AspectJ is a compatible extension to the Java programming language. The
AspectJ compiler adheres to the <ulink
url="http://java.sun.com/docs/books/jls/index.html"> <citetitle
- pubwork="book">The Java Language Specfication, Second
+ pubwork="book">The Java Language Specification, Second
Edition</citetitle></ulink> and to the <ulink
url="http://java.sun.com/docs/books/vmspec/index.html"><citetitle
pubwork="book">The Java Virtual Machine Specification, Second
=====================================
docs/dist/doc/README-192.html
=====================================
@@ -0,0 +1,35 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<html> <head>
+<title>AspectJ 1.9.2 Readme</title>
+<style type="text/css">
+<!--
+ P { margin-left: 20px; }
+ PRE { margin-left: 20px; }
+ LI { margin-left: 20px; }
+ H4 { margin-left: 20px; }
+ H3 { margin-left: 10px; }
+-->
+</style>
+</head>
+
+<body>
+<div align="right"><small>
+© Copyright 2018 Contributors.
+All rights reserved.
+</small></div>
+<p>The full list of resolved issues in 1.9.2 is available
+<a href="https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED&f0=OP&f1=OP&f3=CP&f4=CP&j1=OR&list_id=16866879&product=AspectJ&query_format=advanced&target_milestone=1.9.2">here</a></h2>.</p>
+
+<h1>AspectJ 1.9.2</h1>
+
+<h4>Java 11 support</h4>
+<p>AspectJ now supports Java11. It has been updated to a more recent JDT compiler that supports Java 11 (JDTCore #6373b82afa49b).
+
+<p>Available: 1.9.2 available Oct-2018</p>
+
+<br><br>
+
+
+<!-- ============================== -->
+</body>
+</html>
=====================================
docs/dist/doc/index.html
=====================================
@@ -138,6 +138,7 @@
<tr> <td>README's
</td>
<td>Changes and porting guide for AspectJ
+ <a href="README-192.html">1.9.2</a>,
<a href="README-191.html">1.9.1</a>,
<a href="README-190.html">1.9.0</a>,
<a href="README-1811.html">1.8.10</a>,
=====================================
lib/build/build.jar
=====================================
Binary files a/lib/build/build.jar and b/lib/build/build.jar differ
=====================================
loadtime/src/org/aspectj/weaver/loadtime/Aj.java
=====================================
@@ -72,19 +72,12 @@ public class Aj implements ClassPreProcessor {
}
private final static String deleLoader = "sun.reflect.DelegatingClassLoader";
+ private final static String deleLoader2 = "jdk.internal.reflect.DelegatingClassLoader"; // On JDK11+
- /**
- * Weave
- *
- * @param className
- * @param bytes
- * @param loader
- * @return woven bytes
- */
@Override
public byte[] preProcess(String className, byte[] bytes, ClassLoader loader, ProtectionDomain protectionDomain) {
- // TODO AV needs to doc that
- if (loader == null || className == null || loader.getClass().getName().equals(deleLoader)) {
+ if (loader == null || className == null ||
+ loader.getClass().getName().equals(deleLoader) || loader.getClass().getName().equals(deleLoader2)) {
// skip boot loader, null classes (hibernate), or those from a reflection loader
return bytes;
}
=====================================
loadtime/src/org/aspectj/weaver/loadtime/ClassLoaderWeavingAdaptor.java
=====================================
@@ -11,10 +11,6 @@ package org.aspectj.weaver.loadtime;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
-import java.lang.invoke.MethodHandle;
-import java.lang.invoke.MethodHandles;
-import java.lang.invoke.MethodHandles.Lookup;
-import java.lang.invoke.MethodType;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.net.MalformedURLException;
=====================================
loadtime/src/org/aspectj/weaver/loadtime/ConcreteAspectCodeGen.java
=====================================
@@ -59,10 +59,8 @@ import org.aspectj.weaver.patterns.BasicTokenSource;
import org.aspectj.weaver.patterns.DeclareAnnotation;
import org.aspectj.weaver.patterns.ISignaturePattern;
import org.aspectj.weaver.patterns.ITokenSource;
-import org.aspectj.weaver.patterns.NamePattern;
import org.aspectj.weaver.patterns.PatternParser;
import org.aspectj.weaver.patterns.PerClause;
-import org.aspectj.weaver.patterns.PerSingleton;
import org.aspectj.weaver.patterns.TypePattern;
/**
=====================================
org.aspectj.ajdt.core/src/org/aspectj/ajdt/ajc/BuildArgParser.java
=====================================
@@ -815,33 +815,17 @@ public class BuildArgParser extends Main {
} else if (arg.equals("-timers")) {
buildConfig.setTiming(true);
// swallow - it is dealt with in Main.runMain()
- } else if (arg.equals("-1.5")) {
- buildConfig.setBehaveInJava5Way(true);
- unparsedArgs.add("-1.5");
- // this would enable the '-source 1.5' to do the same as '-1.5' but doesnt sound quite right as
- // as an option right now as it doesnt mean we support 1.5 source code - people will get confused...
- } else if (arg.equals("-1.6")) {
- buildConfig.setBehaveInJava5Way(true);
- unparsedArgs.add("-1.6");
- } else if (arg.equals("-1.7")) {
- buildConfig.setBehaveInJava5Way(true);
- unparsedArgs.add("-1.7");
- } else if (arg.equals("-1.8")) {
- buildConfig.setBehaveInJava5Way(true);
- unparsedArgs.add("-1.8");
- } else if (arg.equals("-1.9")) {
- buildConfig.setBehaveInJava5Way(true);
- unparsedArgs.add("-1.9");
- } else if (arg.equals("-10")) {
- buildConfig.setBehaveInJava5Way(true);
- unparsedArgs.add("-10");
+ } else if (arg.equals("-1.3")) {
+ buildConfig.setBehaveInJava5Way(false);
+ unparsedArgs.add("-1.3");
+ } else if (arg.equals("-1.4")) {
+ buildConfig.setBehaveInJava5Way(false);
+ unparsedArgs.add("-1.4");
} else if (arg.equals("-source")) {
if (args.size() > nextArgIndex) {
String level = args.get(nextArgIndex).getValue();
- if (level.equals("1.5") || level.equals("5") || level.equals("1.6") || level.equals("6") || level.equals("1.7")
- || level.equals("7") || level.equals("8") || level.equals("1.8")
- || level.equals("9") || level.equals("1.9") || level.equals("10")) {
- buildConfig.setBehaveInJava5Way(true);
+ if (level.equals("1.3") || level.equals("1.4")) {
+ buildConfig.setBehaveInJava5Way(false);
}
unparsedArgs.add("-source");
unparsedArgs.add(level);
=====================================
org.aspectj.ajdt.core/src/org/aspectj/ajdt/ajc/messages.properties
=====================================
@@ -5,7 +5,7 @@
org/aspectj/weaver/XlintDefault.properties for the default behavior and a template to copy.
### AspectJ-specific messages
compiler.name = AspectJ Compiler 1.9.2
-compiler.version = Eclipse Compiler #BETA_JAVA11(20Sep2018), 3.14
+compiler.version = Eclipse Compiler #6373b82afa49b(1-Oct-2018), 3.16
compiler.copyright =
=====================================
org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/lookup/EclipseSourceType.java
=====================================
@@ -71,7 +71,6 @@ import org.aspectj.weaver.ClassAnnotationValue;
import org.aspectj.weaver.EnumAnnotationValue;
import org.aspectj.weaver.ReferenceType;
import org.aspectj.weaver.ResolvedMember;
-import org.aspectj.weaver.ResolvedMemberImpl;
import org.aspectj.weaver.ResolvedPointcutDefinition;
import org.aspectj.weaver.ResolvedType;
import org.aspectj.weaver.StandardAnnotation;
@@ -135,11 +134,13 @@ public class EclipseSourceType extends AbstractReferenceTypeDelegate {
resolvedTypeX.setEndPos(declaration.sourceEnd);
}
+ @Override
public boolean isAspect() {
final boolean isCodeStyle = declaration instanceof AspectDeclaration;
return isCodeStyle ? isCodeStyle : isAnnotationStyleAspect();
}
+ @Override
public boolean isAnonymous() {
if (declaration.binding != null) {
return declaration.binding.isAnonymousType();
@@ -147,6 +148,7 @@ public class EclipseSourceType extends AbstractReferenceTypeDelegate {
return ((declaration.modifiers & (ASTNode.IsAnonymousType | ASTNode.IsLocalType)) != 0);
}
+ @Override
public boolean isNested() {
if (declaration.binding != null) {
return (declaration.binding.isMemberType());
@@ -154,6 +156,7 @@ public class EclipseSourceType extends AbstractReferenceTypeDelegate {
return ((declaration.modifiers & ASTNode.IsMemberType) != 0);
}
+ @Override
public ResolvedType getOuterClass() {
if (declaration.binding != null) {
ReferenceBinding enclosingType = declaration.binding.enclosingType();
@@ -167,6 +170,7 @@ public class EclipseSourceType extends AbstractReferenceTypeDelegate {
return eclipseWorld().fromEclipse(declaration.enclosingType.binding);
}
+ @Override
public boolean isAnnotationStyleAspect() {
if (declaration.annotations == null) {
return false;
@@ -234,10 +238,12 @@ public class EclipseSourceType extends AbstractReferenceTypeDelegate {
return false;
}
+ @Override
public WeaverStateInfo getWeaverState() {
return null;
}
+ @Override
public ResolvedType getSuperclass() {
if (binding.isInterface()) {
return getResolvedTypeX().getWorld().getCoreType(UnresolvedType.OBJECT);
@@ -246,6 +252,7 @@ public class EclipseSourceType extends AbstractReferenceTypeDelegate {
return eclipseWorld().fromEclipse(binding.superclass());
}
+ @Override
public ResolvedType[] getDeclaredInterfaces() {
return eclipseWorld().fromEclipse(binding.superInterfaces());
}
@@ -420,6 +427,7 @@ public class EclipseSourceType extends AbstractReferenceTypeDelegate {
* This method may not return all fields, for example it may not include the ajc$initFailureCause or ajc$perSingletonInstance
* fields - see bug 129613
*/
+ @Override
public ResolvedMember[] getDeclaredFields() {
if (declaredFields == null) {
fillDeclaredMembers();
@@ -431,6 +439,7 @@ public class EclipseSourceType extends AbstractReferenceTypeDelegate {
* This method may not return all methods, for example it may not include clinit, aspectOf, hasAspect or ajc$postClinit methods
* - see bug 129613
*/
+ @Override
public ResolvedMember[] getDeclaredMethods() {
if (declaredMethods == null) {
fillDeclaredMembers();
@@ -438,6 +447,7 @@ public class EclipseSourceType extends AbstractReferenceTypeDelegate {
return declaredMethods;
}
+ @Override
public ResolvedMember[] getDeclaredPointcuts() {
if (declaredPointcuts == null) {
fillDeclaredMembers();
@@ -445,11 +455,13 @@ public class EclipseSourceType extends AbstractReferenceTypeDelegate {
return declaredPointcuts;
}
+ @Override
public int getModifiers() {
// only return the real Java modifiers, not the extra eclipse ones
return binding.modifiers & ExtraCompilerModifiers.AccJustFlag;
}
+ @Override
public String toString() {
return "EclipseSourceType(" + new String(binding.sourceName()) + ")";
}
@@ -516,6 +528,7 @@ public class EclipseSourceType extends AbstractReferenceTypeDelegate {
// dec.sourceEnd);
// }
+ @Override
public boolean isInterface() {
return binding.isInterface();
}
@@ -525,14 +538,17 @@ public class EclipseSourceType extends AbstractReferenceTypeDelegate {
public final static short ACC_ANNOTATION = 0x2000;
public final static short ACC_ENUM = 0x4000;
+ @Override
public boolean isEnum() {
return (binding.getAccessFlags() & ACC_ENUM) != 0;
}
+ @Override
public boolean isAnnotation() {
return (binding.getAccessFlags() & ACC_ANNOTATION) != 0;
}
+ @Override
public boolean isAnnotationWithRuntimeRetention() {
if (!isAnnotation()) {
return false;
@@ -541,6 +557,7 @@ public class EclipseSourceType extends AbstractReferenceTypeDelegate {
}
}
+ @Override
public String getRetentionPolicy() {
if (isAnnotation()) {
if ((binding.getAnnotationTagBits() & TagBits.AnnotationRetentionMASK) == TagBits.AnnotationRuntimeRetention) {
@@ -556,6 +573,7 @@ public class EclipseSourceType extends AbstractReferenceTypeDelegate {
return null;
}
+ @Override
public boolean canAnnotationTargetType() {
if (isAnnotation()) {
return ((binding.getAnnotationTagBits() & TagBits.AnnotationForType) != 0);
@@ -563,6 +581,7 @@ public class EclipseSourceType extends AbstractReferenceTypeDelegate {
return false;
}
+ @Override
public AnnotationTargetKind[] getAnnotationTargetKinds() {
if (discoveredAnnotationTargetKinds) {
return annotationTargetKinds;
@@ -655,6 +674,7 @@ public class EclipseSourceType extends AbstractReferenceTypeDelegate {
}
}
+ @Override
public boolean hasAnnotation(UnresolvedType ofType) {
ensureAnnotationTypesResolved();
for (int a = 0, max = annotationTypes.length; a < max; a++) {
@@ -680,6 +700,7 @@ public class EclipseSourceType extends AbstractReferenceTypeDelegate {
* annotations, this code only needs to deal with converting system annotations that the weaver needs to process
* (RetentionPolicy, Target).
*/
+ @Override
public AnnotationAJ[] getAnnotations() {
int declarationAnnoCount = (declaration.annotations == null ? 0 : declaration.annotations.length);
if (annotations != null && annotations.length == declarationAnnoCount) {
@@ -701,6 +722,7 @@ public class EclipseSourceType extends AbstractReferenceTypeDelegate {
return annotations;
}
+ @Override
public boolean hasAnnotations() {
return (declaration.annotations != null && declaration.annotations.length != 0);
}
@@ -1002,11 +1024,13 @@ public class EclipseSourceType extends AbstractReferenceTypeDelegate {
}
}
+ @Override
public ResolvedType[] getAnnotationTypes() {
ensureAnnotationTypesResolved();
return annotationTypes;
}
+ @Override
public PerClause getPerClause() {
// should probably be: ((AspectDeclaration)declaration).perClause;
// but we don't need this level of detail, and working with real per
@@ -1147,30 +1171,37 @@ public class EclipseSourceType extends AbstractReferenceTypeDelegate {
return kind;
}
- public Collection getDeclares() {
+ @Override
+ public Collection<Declare> getDeclares() {
return declares;
}
- public Collection getPrivilegedAccesses() {
- return Collections.EMPTY_LIST;
+ @Override
+ public Collection<ResolvedMember> getPrivilegedAccesses() {
+ return Collections.emptyList();
}
+ @Override
public Collection getTypeMungers() {
return typeMungers;
}
+ @Override
public boolean doesNotExposeShadowMungers() {
return true;
}
+ @Override
public String getDeclaredGenericSignature() {
return CharOperation.charToString(binding.genericSignature());
}
+ @Override
public boolean isGeneric() {
return binding.isGenericType();
}
+ @Override
public TypeVariable[] getTypeVariables() {
if (declaration.typeParameters == null) {
return new TypeVariable[0];
=====================================
org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AjCompilerOptions.java
=====================================
@@ -73,7 +73,7 @@ public class AjCompilerOptions extends CompilerOptions {
public String xOptionalJoinpoints = null;
// If true - autoboxing behaves differently ...
- public boolean behaveInJava5Way = false;
+ public boolean behaveInJava5Way = true;
public boolean timing = false;
@@ -117,6 +117,7 @@ public class AjCompilerOptions extends CompilerOptions {
set(settings);
}
+ @Override
public Map<String,String> getMap() {
Map<String,String> map = super.getMap();
// now add AspectJ additional options
@@ -148,6 +149,7 @@ public class AjCompilerOptions extends CompilerOptions {
return map;
}
+ @Override
public void set(Map<String,String> optionsMap) {
super.set(optionsMap);
Object optionValue;
@@ -282,6 +284,7 @@ public class AjCompilerOptions extends CompilerOptions {
super.warningThreshold.set(CompilerOptions.SwallowedExceptionInCatchBlock);
}
+ @Override
public String toString() {
StringBuffer buf = new StringBuffer(super.toString());
// now add AspectJ additional options
=====================================
org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AsmElementFormatter.java
=====================================
@@ -57,7 +57,10 @@ import org.aspectj.weaver.patterns.TypePatternList;
*/
public class AsmElementFormatter {
- public void genLabelAndKind(MethodDeclaration methodDeclaration, IProgramElement node) {
+ private final static String ASPECTJ_ANNOTATION_PACKAGE = "org.aspectj.lang.annotation";
+ private final static char PACKAGE_INITIAL_CHAR = ASPECTJ_ANNOTATION_PACKAGE.charAt(0);
+
+ public void genLabelAndKind(MethodDeclaration methodDeclaration, IProgramElement node) {
if (methodDeclaration instanceof AdviceDeclaration) {
AdviceDeclaration ad = (AdviceDeclaration) methodDeclaration;
@@ -219,7 +222,7 @@ public class AsmElementFormatter {
// Note: AV: implicit single advice type support here (should be enforced somewhere as well (APT etc))
Annotation annotation = methodDeclaration.annotations[i];
String annotationSig = new String(annotation.type.getTypeBindingPublic(methodDeclaration.scope).signature());
- if (annotationSig.charAt(1) == 'o') {
+ if (annotationSig.charAt(1) == PACKAGE_INITIAL_CHAR) {
if ("Lorg/aspectj/lang/annotation/Pointcut;".equals(annotationSig)) {
node.setKind(IProgramElement.Kind.POINTCUT);
node.setAnnotationStyleDeclaration(true); // pointcuts don't seem to get handled quite right...
@@ -418,8 +421,8 @@ public class AsmElementFormatter {
public void setParameters(AbstractMethodDeclaration md, IProgramElement pe) {
Argument[] argArray = md.arguments;
if (argArray == null) {
- pe.setParameterNames(Collections.EMPTY_LIST);
- pe.setParameterSignatures(Collections.EMPTY_LIST, Collections.EMPTY_LIST);
+ pe.setParameterNames(Collections.<String>emptyList());
+ pe.setParameterSignatures(Collections.<char[]>emptyList(), Collections.<String>emptyList());
} else {
List<String> names = new ArrayList<String>();
List<char[]> paramSigs = new ArrayList<char[]>();
@@ -459,7 +462,7 @@ public class AsmElementFormatter {
// TODO: fix this way of determing ajc-added arguments, make subtype of Argument with extra info
private boolean acceptArgument(String name, String type) {
- if (name.charAt(0) != 'a' && type.charAt(0) != 'o') {
+ if (name.charAt(0) != 'a' && type.charAt(0) != PACKAGE_INITIAL_CHAR) {
return true;
}
return !name.startsWith("ajc$this_") && !type.equals("org.aspectj.lang.JoinPoint.StaticPart")
=====================================
org.eclipse.jdt.core/src/org/aspectj/org/eclipse/jdt/internal/compiler/ast/LambdaExpression.java
=====================================
@@ -1,3 +1,4 @@
+// AspectJ
/*******************************************************************************
* Copyright (c) 2012, 2018 IBM Corporation and others.
*
@@ -276,7 +277,18 @@ public class LambdaExpression extends FunctionalExpression implements IPolyExpre
if (!skipKosherCheck && (!haveDescriptor || this.descriptor.typeVariables != Binding.NO_TYPE_VARIABLES)) // already complained in kosher*
return this.resolvedType = null;
- this.binding = new MethodBinding(ClassFileConstants.AccPrivate | ClassFileConstants.AccSynthetic | ExtraCompilerModifiers.AccUnresolved,
+ // AspectJ extension - start
+ int modifiers = 0;
+ if (methodScope.parent != null && methodScope.parent.isInterTypeScope()) {
+ modifiers = ClassFileConstants.AccPublic | ClassFileConstants.AccSynthetic | ExtraCompilerModifiers.AccUnresolved;
+ } else {
+ modifiers = ClassFileConstants.AccPrivate | ClassFileConstants.AccSynthetic | ExtraCompilerModifiers.AccUnresolved;
+ }
+ this.binding = new MethodBinding(modifiers,
+ // was
+ // this.binding = new MethodBinding(ClassFileConstants.AccPrivate | ClassFileConstants.AccSynthetic | ExtraCompilerModifiers.AccUnresolved,
+ // AspectJ extension - end
+
CharOperation.concat(TypeConstants.ANONYMOUS_METHOD, Integer.toString(this.ordinal).toCharArray()), // will be fixed up later.
haveDescriptor ? this.descriptor.returnType : TypeBinding.VOID,
Binding.NO_PARAMETERS, // for now.
=====================================
org.eclipse.jdt.core/src/org/aspectj/org/eclipse/jdt/internal/compiler/lookup/BinaryTypeBinding.java
=====================================
@@ -2307,5 +2307,15 @@ public MethodBinding[] methods() {
else return methodsBase();
}
+ at Override
+public int sourceStart() {
+ return 0;
+}
+
+ at Override
+public int sourceEnd() {
+ return 0;
+}
+
//End AspectJ Extension
}
=====================================
org.eclipse.jdt.core/src/org/aspectj/org/eclipse/jdt/internal/compiler/lookup/SourceTypeBinding.java
=====================================
@@ -2469,13 +2469,13 @@ public TypeVariableBinding [] setTypeVariables(TypeVariableBinding [] typeVariab
return this.typeVariables = typeVariables;
}
-public final int sourceEnd() {
+public int sourceEnd() { // AspectJ - made non final
if (!isPrototype())
return this.prototype.sourceEnd();
return this.scope.referenceContext.sourceEnd;
}
-public final int sourceStart() {
+public int sourceStart() { // AspectJ - made non final
if (!isPrototype())
return this.prototype.sourceStart();
=====================================
runtime/src/org/aspectj/lang/Aspects14.java
=====================================
@@ -12,9 +12,9 @@
package org.aspectj.lang;
+import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
-import java.lang.reflect.InvocationTargetException;
/**
* For users working on a level of Java prior to Java5, Aspects14 handles generic aspectOf methods when they
@@ -36,8 +36,8 @@ public class Aspects14 {
/**
* Returns the singleton aspect or the percflow / percflowbelow associated with the current thread
*
- * @param aspectClass
- * @return
+ * @param aspectClass aspect class for which to discover the aspect instance
+ * @return an aspect instance
* @throws NoAspectBoundException if no such aspect
*/
public static Object aspectOf(Class aspectClass) throws NoAspectBoundException {
@@ -53,9 +53,9 @@ public class Aspects14 {
/**
* Returns the perthis / pertarget aspect
- * @param aspectClass
- * @param perObject
- * @return
+ * @param aspectClass aspect class for which to discover the aspect instance
+ * @param perObject object for which to discover the aspect instance
+ * @return an aspect instance
* @throws NoAspectBoundException if no such aspect, or no aspect bound
*/
public static Object aspectOf(Class aspectClass, Object perObject) throws NoAspectBoundException {
@@ -71,7 +71,7 @@ public class Aspects14 {
/**
* Returns the pertypewithin aspect
- * @param aspectClass
+ * @param aspectClass aspect class for which to discover the aspect instance
* @param perTypeWithin class
* @return
* @throws NoAspectBoundException if no such aspect, or no aspect bound
@@ -90,7 +90,7 @@ public class Aspects14 {
/**
* Returns true if singleton aspect or percflow / percflowbelow aspect is bound
*
- * @param aspectClass
+ * @param aspectClass aspect class for which to check the aspect instance
* @return
* @throws NoAspectBoundException if not bound
*/
@@ -104,9 +104,9 @@ public class Aspects14 {
/**
* Returns true if the perthis / pertarget aspect is bound
- * @param aspectClass
+ * @param aspectClass aspect class for which to check the aspect instance
* @param perObject
- * @return
+ * @return true if aspect instance exists for the class/object combination
* @throws NoAspectBoundException if not bound
*/
public static boolean hasAspect(Class aspectClass, Object perObject) throws NoAspectBoundException {
@@ -119,9 +119,9 @@ public class Aspects14 {
/**
* Returns true if the pertypewithin aspect is bound
- * @param aspectClass
+ * @param aspectClass aspect class for which to check the aspect instance
* @param perTypeWithin class
- * @return
+ * @return true if aspect instance exists for this aspect class/pertypewithin class combination
* @throws NoAspectBoundException if not bound
*/
public static boolean hasAspect(Class aspectClass, Class perTypeWithin) throws NoAspectBoundException {
=====================================
weaver/.classpath
=====================================
@@ -13,6 +13,6 @@
<classpathentry kind="lib" path="/lib/bcel/bcel.jar" sourcepath="/lib/bcel/bcel-src.zip"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
<classpathentry combineaccessrules="false" kind="src" path="/org.aspectj.matcher"/>
- <classpathentry kind="lib" path="/lib/asm/asm-6.1.1.renamed.jar"/>
+ <classpathentry kind="lib" path="/lib/asm/asm-7.0-beta.renamed.jar"/>
<classpathentry kind="output" path="bin"/>
</classpath>
=====================================
weaver/src/org/aspectj/weaver/bcel/AtAjAttributes.java
=====================================
@@ -98,6 +98,8 @@ public class AtAjAttributes {
private final static String THROWING = "throwing";
private final static String RETURNING = "returning";
private final static String STRING_DESC = "Ljava/lang/String;";
+ private final static String ASPECTJ_ANNOTATION_PACKAGE = "org.aspectj.lang.annotation";
+ private final static char PACKAGE_INITIAL_CHAR = ASPECTJ_ANNOTATION_PACKAGE.charAt(0);
/**
* A struct that allows to add extra arguments without always breaking the API
@@ -193,8 +195,8 @@ public class AtAjAttributes {
*/
public static List<AjAttribute> readAj5ClassAttributes(AsmManager model, JavaClass javaClass, ReferenceType type,
ISourceContext context, IMessageHandler msgHandler, boolean isCodeStyleAspect) {
- boolean ignoreThisClass = javaClass.getClassName().charAt(0) == 'o'
- && javaClass.getClassName().startsWith("org.aspectj.lang.annotation");
+ boolean ignoreThisClass = javaClass.getClassName().charAt(0) == PACKAGE_INITIAL_CHAR
+ && javaClass.getClassName().startsWith(ASPECTJ_ANNOTATION_PACKAGE);
if (ignoreThisClass) {
return NO_ATTRIBUTES;
}
@@ -205,7 +207,7 @@ public class AtAjAttributes {
Constant constant = cpool[i];
if (constant != null && constant.getTag() == Constants.CONSTANT_Utf8) {
String constantValue = ((ConstantUtf8) constant).getValue();
- if (constantValue.length() > 28 && constantValue.charAt(1) == 'o') {
+ if (constantValue.length() > 28 && constantValue.charAt(1) == PACKAGE_INITIAL_CHAR) {
if (constantValue.startsWith("Lorg/aspectj/lang/annotation")) {
containsAnnotationClassReference = true;
if ("Lorg/aspectj/lang/annotation/DeclareAnnotation;".equals(constantValue)) {
=====================================
weaver/src/org/aspectj/weaver/bcel/BcelMethod.java
=====================================
@@ -51,6 +51,9 @@ import org.aspectj.weaver.bcel.BcelGenericSignatureToTypeXConverter.GenericSigna
//public final
class BcelMethod extends ResolvedMemberImpl {
+ private final static String ASPECTJ_ANNOTATION_PACKAGE = "org.aspectj.lang.annotation";
+ private final static char PACKAGE_INITIAL_CHAR = ASPECTJ_ANNOTATION_PACKAGE.charAt(0);
+
private Method method;
// these fields are not set for many BcelMethods...
@@ -141,7 +144,7 @@ class BcelMethod extends ResolvedMemberImpl {
for (int i = 0; i < axs.length; i++) {
AnnotationAJ annotationX = axs[i];
String typename = annotationX.getTypeName();
- if (typename.charAt(0) == 'o') {
+ if (typename.charAt(0) == PACKAGE_INITIAL_CHAR) {
if (typename.equals("org.aspectj.lang.annotation.Pointcut")
|| typename.equals("org.aspectj.lang.annotation.Before")
|| typename.equals("org.aspectj.lang.annotation.Around")
=====================================
weaver/src/org/aspectj/weaver/bcel/BcelShadow.java
=====================================
@@ -2941,7 +2941,7 @@ public class BcelShadow extends Shadow {
closureInstantiation.append(fact.createConstant(Integer.valueOf(bitflags)));
closureInstantiation.append(Utility.createInvoke(getFactory(), getWorld(),
new MemberImpl(Member.METHOD, UnresolvedType.forName("org.aspectj.runtime.internal.AroundClosure"),
- Modifier.PUBLIC, "linkClosureAndJoinPoint", "(I)Lorg/aspectj/lang/ProceedingJoinPoint;")));
+ Modifier.PUBLIC, "linkClosureAndJoinPoint", String.format("%s%s", "(I)", "Lorg/aspectj/lang/ProceedingJoinPoint;"))));
}
InstructionList advice = new InstructionList();
=====================================
weaver/src/org/aspectj/weaver/bcel/ClassPathManager.java
=====================================
@@ -153,6 +153,7 @@ public class ClassPathManager {
return null;
}
+ @Override
public String toString() {
StringBuffer buf = new StringBuffer();
boolean start = true;
@@ -220,11 +221,13 @@ public class ClassPathManager {
this.file = file;
}
+ @Override
public InputStream getInputStream() throws IOException {
fis = new FileInputStream(file);
return fis;
}
+ @Override
public void close() {
try {
if (fis != null)
@@ -236,6 +239,7 @@ public class ClassPathManager {
}
}
+ @Override
public String getPath() {
return file.getPath();
}
@@ -252,6 +256,7 @@ public class ClassPathManager {
this.dirPath = dirPath;
}
+ @Override
public ClassFile find(String name) {
File f = new File(dirPath + File.separator + name.replace('.', File.separatorChar) + ".class");
if (f.isFile())
@@ -260,6 +265,7 @@ public class ClassPathManager {
return null;
}
+ @Override
public String toString() {
return dirPath;
}
@@ -275,11 +281,13 @@ public class ClassPathManager {
this.entry = entry;
}
+ @Override
public InputStream getInputStream() throws IOException {
is = zipFile.getZipFile().getInputStream(entry);
return is;
}
+ @Override
public void close() {
try {
if (is != null)
@@ -291,6 +299,7 @@ public class ClassPathManager {
}
}
+ @Override
public String getPath() {
return entry.getName();
}
@@ -307,7 +316,7 @@ public class ClassPathManager {
*/
static class JImageEntry extends Entry {
- private final static FileSystem fs = FileSystems.getFileSystem(JRT_URI);
+ private static FileSystem fs = null;
private final static Map<String, Path> fileCache = new SoftHashMap<String, Path>();
@@ -316,6 +325,13 @@ public class ClassPathManager {
private static boolean packageCacheInitialized = false;
public JImageEntry() {
+ if (fs == null) {
+ try {
+ fs = FileSystems.getFileSystem(JRT_URI);
+ } catch (Throwable t) {
+ throw new IllegalStateException("Unexpectedly unable to initialize a JRT filesystem", t);
+ }
+ }
buildPackageMap();
}
@@ -394,6 +410,7 @@ public class ClassPathManager {
return locator.found;
}
+ @Override
public ClassFile find(String name) throws IOException {
String fileName = name.replace('.', '/') + ".class";
Path file = fileCache.get(fileName);
@@ -448,6 +465,7 @@ public class ClassPathManager {
return zipFile;
}
+ @Override
public ClassFile find(String name) throws IOException {
ensureOpen();
String key = name.replace('.', '/') + ".class";
@@ -502,7 +520,7 @@ public class ClassPathManager {
public void closeSomeArchives(int n) {
for (int i = n - 1; i >= 0; i--) {
- ZipFile zf = (ZipFile) openArchives.get(i);
+ ZipFile zf = openArchives.get(i);
try {
zf.close();
} catch (IOException e) {
@@ -525,6 +543,7 @@ public class ClassPathManager {
}
}
+ @Override
public String toString() {
return file.getName();
}
=====================================
weaver/src/org/aspectj/weaver/bcel/Utility.java
=====================================
@@ -65,6 +65,8 @@ import org.aspectj.weaver.World;
public class Utility {
+ private final static char PACKAGE_INITIAL_CHAR = AjAttribute.AttributePrefix.charAt(0);
+
public static List<AjAttribute> readAjAttributes(String classname, Attribute[] as, ISourceContext context, World w,
AjAttribute.WeaverVersionInfo version, ConstantPoolReader dataDecompressor) {
List<AjAttribute> attributes = new ArrayList<AjAttribute>();
@@ -76,7 +78,7 @@ public class Utility {
if (a instanceof Unknown) {
Unknown u = (Unknown) a;
String name = u.getName();
- if (name.charAt(0) == 'o') { // 'o'rg.aspectj
+ if (name.charAt(0) == PACKAGE_INITIAL_CHAR) { // 'o'rg.aspectj
if (name.startsWith(AjAttribute.AttributePrefix)) {
if (name.endsWith(WeaverVersionInfo.AttributeName)) {
version = (AjAttribute.WeaverVersionInfo) AjAttribute.read(version, name, u.getBytes(), context, w,
=====================================
weaver/src/org/aspectj/weaver/tools/WeavingAdaptor.java
=====================================
@@ -80,6 +80,9 @@ public class WeavingAdaptor implements IMessageContext {
public static final String SHOW_WEAVE_INFO_PROPERTY = "org.aspectj.weaver.showWeaveInfo";
public static final String TRACE_MESSAGES_PROPERTY = "org.aspectj.tracing.messages";
+ private final static String ASPECTJ_BASE_PACKAGE = "org.aspectj.";
+ private final static String PACKAGE_INITIAL_CHARS = ASPECTJ_BASE_PACKAGE.charAt(0) + "sj";
+
private boolean enabled = false;
protected boolean verbose = getVerbose();
protected BcelWorld bcelWorld;
@@ -447,7 +450,7 @@ public class WeavingAdaptor implements IMessageContext {
}
private boolean shouldWeaveName(String name) {
- if ("osj".indexOf(name.charAt(0)) != -1) {
+ if (PACKAGE_INITIAL_CHARS.indexOf(name.charAt(0)) != -1) {
if ((weavingSpecialTypes & INITIALIZED) == 0) {
weavingSpecialTypes |= INITIALIZED;
// initialize it
@@ -463,7 +466,7 @@ public class WeavingAdaptor implements IMessageContext {
}
}
}
- if (name.startsWith("org.aspectj.")) {
+ if (name.startsWith(ASPECTJ_BASE_PACKAGE)) {
return false;
}
if (name.startsWith("sun.reflect.")) {// JDK reflect
View it on GitLab: https://salsa.debian.org/java-team/aspectj/commit/b53ca331e88ae0f7d1f5c4893a2003f71a085208
--
View it on GitLab: https://salsa.debian.org/java-team/aspectj/commit/b53ca331e88ae0f7d1f5c4893a2003f71a085208
You're receiving this email because of your account on salsa.debian.org.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/pkg-java-commits/attachments/20190111/bfe3731b/attachment.html>
More information about the pkg-java-commits
mailing list