Andy Clement [Fri, 11 Jan 2019 23:49:49 +0000 (15:49 -0800)]
On JDK11 call the defineClass variant with a ProtectionDomain param
This alters the defineClass used when loadtime weaving and defining
'extra' classes (e.g. closures). This change causes us to call
the defineClass() method variant on ClassLoader that takes a
protection domain, so it should share the same protection domain as
the class for which the extra class was generated.
Kui Liu [Tue, 21 Aug 2018 15:32:54 +0000 (17:32 +0200)]
Change the mehtod name "containsField" to "findsField".
The method implements finding a field object in the 'fieldsList' with a given name. If found, return the found field object, otherwise return null.
Thus, rename the method as "findsField" should be more clear than "containsField" since "containsField" is prone to ask whether the "fieldsFile" contains a field or not and return true or false.
Andy Clement [Fri, 25 May 2018 19:49:56 +0000 (12:49 -0700)]
Initial cut at bug 535086 - pertypewithin and non vis types
In this version unless you specify an aspect is privileged then the
pertypewithin clause will not match types not visible from the aspect
(private types or default vis types in another package)
Debating whether to change this to not require privileged.
Andy Clement [Wed, 28 Feb 2018 19:53:14 +0000 (11:53 -0800)]
Bug#531694: generate more optional thisJoinPoint construction code
This commit introduces some new methods into the
runtime Factory class and modifies code generation
to use them (and to use the form of the LDC bytecode
that loads class constants).
Andy Clement [Fri, 17 Nov 2017 17:18:23 +0000 (09:18 -0800)]
Merge branch 'master' into earlyJava9
Switching master to the earlyJava9 branch. This merge
with strategy=ours should give us a common root so that
anyone working from master will be able to absorb the change
easily.
Andy Clement [Thu, 9 Nov 2017 21:14:02 +0000 (13:14 -0800)]
Updates to better cope with future JDKs
The version handling in LangUtil has been overhauled
to cope better with post 1.8 releases (JDK9 and JDK10 or 18.3
or whatever they call it). As part of this moved
to treating JDK9 as '9' rather than '1.9'. Also removed
duplicate version processing logic and had that defer to
the one place in LangUtil where we now deal with it.
Includes some generics tidyup in ajdoc. More ajdoc work
is necessary for Java10 because it removes the standard doclet
(old style). However trying to invoke the internal Javadoc
handler in Java10 is failing due to module visibility rules.
Andy Clement [Fri, 20 Oct 2017 19:48:41 +0000 (12:48 -0700)]
Adjust how classpath entries manipulated for Java9 support
Prior to this AspectJ would discard ignore the ClasspathEntry
objects built by JDT and just work with the classpath as a string,
driving the JDT FileSystem to rebuild classpath entries again at
a later date using the string. This is more complex in Java9 because
the string representation was losing whether some entries came in
via modulepath. ClasspathEntry construction for modulepath entries
is non trivial (since the module-info must be processed).
The new version will cache some of the ClasspathEntry objects (those
built for modulepaths) and do more work on the AspectJ side building
classpath entries in general. It now passes these entries to a
different FileSystem entry point rather than the entry point that
takes a string path.