aboutsummaryrefslogtreecommitdiffstats
path: root/tests/ltw
Commit message (Collapse)AuthorAgeFilesLines
* Workaround for defining classes during LTWAlexander Kriegisch2024-01-292-16/+16
| | | | | | | | | | | | | | | | | | | | | | | | | Overhaul ClassLoaderWeavingAdaptor to use statically initialised Unsafe instances and method handles pointing to their 'defineClass' methods. Those now work universally on JDKs 8-21. In older JDKs, the method used to be in sun.misc.Unsafe, in more recent ones on jdk.internal.misc.Unsafe. It is challenging to fetch instances, especially as reflection protection and module boundaries have been increased in the JDK progressively. But finally, a solution was adapted from Byte Buddy (BB). Kudos to BB author Rafael Winterhalter. The previous solution to use ClassLoader::defineClass and require '--add-opens' is no longer necessary for the first time since it became necessary in AspectJ 1.9.7 with Java 16 support. Add org.ow2.asm:asm-common as a dependency everywhere org.ow2.asm:asm was used before. Maybe that is too many places, but no worse than before. Add missing dependency on loadtime to aspectjweaver. This kept a build like "mvn install -am -pl aspectjweaver" from picking up changed loadtime classes. Fixes #117. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* Upgrade license from CPLv1/EPLv1 to EPLv2Alexander Kriegisch2021-06-0417-97/+97
| | | | | | | This was required by the Eclipse team as one precondition for the next release. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* Remove JRockit LTW support, particularly JRockitAgentAlexander Kriegisch2021-04-101-56/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | In two places, the documentation now contains this text: "Since AspectJ 1.9.7, the obsolete Oracle/BEA JRockit agent is no longer part of AspectJ. JRockit JDK never supported Java versions higher than 1.6. Several JRockit JVM features are now part of HotSpot and tools like Mission Control available for OpenJDK and Oracle JDK." The decision to drop JRockit support was made during a discussion between Alexander Kriegisch and Andy Clement: Andy Clement wrote on 26 Mar 2021: > Yes I think so. > > > Alexander Kriegisch wrote on 26 Mar 2021: > >> https://en.wikipedia.org/wiki/JRockit >> >> Can we get rid of that? AspectJ requires Java 8, JRockit never >> supported more than Java 6. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* Make all tests run on Java 16 via '-add-opens' JVM optionjava16-add-opensAlexander Kriegisch2021-03-232-27/+43
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Due to JEP 260 (Encapsulate Most Internal APIs), aspect weaving on Java 16 now requires '--add-opens java.base/java.lang=ALL-UNNAMED' on the command line. Otherwise there will be illegal access exceptions for some internal API calls AspectJ needs, most prominently when trying to define classes in other packages or modules. This had to be done on several levels: - Maven Surefire: running tests in a JVM directly forked by Surefire. In order to make this backwards compatible, I added two profiles with JDK-level-dependent auto-activation, one 8-15 and one 16+. In the latter a property containing the JVM parameter is defined, in the former it is empty, i.e. the JVM is started without the parameter. In Java 8 the parameter did not even exist, in Java 9+ we could use it, but we need to test how users use AspectJ. - RunSpec: Whenever an XML test is declared to use '<run>', we need to determine the current JVM version and again dynamically add the parameter when forking the target JVM. - AntSpec: Whenever an XML test is declared to use '<ant>', we need to determine the current JVM version dynamically add two properties usable from within Ant scripts: 'aj.addOpensKey' and 'aj.addOpensValue'. Unfortunately, Ant needs to use two '<argLine>' parameters, because the two parts of the option are separated by a space character. - Ant scripts: When triggered by an AntSpec, each Ant target using LTW needs to manually set <jvmarg value="${aj.addOpensKey}"/> <jvmarg value="${aj.addOpensValue}"/> for each '<java>' task. It was quite tedious to find all(?) of them. TODO: In the AspectJ 1.9.7 release notes we need to document that this parameter is now needed for LTW. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* 166238 "-nowarn doesn't work for load-time weaving" (rbodkin+LISTS@gmail.com)mwebster2006-12-012-0/+6
|
* Bug 155033 "Use ajcore for LTW problems"mwebster2006-11-071-0/+2
|
* Bug 155033 "Use ajcore for LTW problems" (add ajcore LTW testcases)mwebster2006-11-065-8/+29
|
* Bug 159854 "Problem Diagnosis Guide" (tests)mwebster2006-10-302-10/+19
|
* test and fixes for 152366: support AND in include/exclude/dumpaclement2006-10-038-0/+101
|
* turning off completeBinaryTypesaclement2006-10-035-5/+5
|
* Bug 158205 "NullPointerException when weaving with bootstrap agent" (custom ↵mwebster2006-10-023-0/+311
| | | | agent testcase)
* Bug 157474 "Handle duplicate aop.xml definitions more gracefully" (tests for ↵mwebster2006-09-194-2/+35
| | | | duplicate aop.xml and -Dorg.aspectj.weaver.loadtime.configuration)
* Bug 129525 "Don't Dump Bytecodes to Syserr in LTW" (don't throw ↵mwebster2006-08-242-0/+8
| | | | AbortException in LTW message handler)
* Bug 150271 "Allow multiple levels of LTW information" (make weaving/not ↵mwebster2006-08-235-5/+5
| | | | weaving messages debug and add -debug to options for aop.xml)
* switch to a different XLint to rely on - since adviceDidNotMatch cannot ↵aclement2006-08-232-1/+6
| | | | occur in LTW now.
* Bug 153907 "Facilitate LTW testing in a custom ClassLoader hierarchy" (Doh! ↵mwebster2006-08-171-0/+2
| | | | remember to build and commit testing-client.jar)
* Bug 153907 "Facilitate LTW testing in a custom ClassLoader hierarchy" ↵mwebster2006-08-155-0/+58
| | | | (TestServer, TestServerTest and LTWServerTests)
* 133770 'call and ltw': now attempts to grab a delegate for a non-locally ↵aclement2006-08-151-0/+28
| | | | defined type, giving the super-loader chance to weave a type with ITDs.
* testcode for call and decp LTW 133770aclement2006-08-141-0/+7
|
* testcode for call and decp LTW 133770aclement2006-08-1433-0/+294
|
* patches from 152161aclement2006-08-082-0/+9
|
* Bug 150487 "Tracing and Logging Framework" (fix Linux)mwebster2006-08-021-3/+3
|
* Bug 150487 "Tracing and Logging Framework" (lazy initialize SimpleDateFormat ↵mwebster2006-08-013-2/+34
| | | | to prevent recursion in JDK 1.4 LTW)
* Bug 150487 "Tracing and Logging Framework" (remove tracing from ↵mwebster2006-07-312-0/+33
| | | | ClassPathManager to prevent recursion in JDK 1.4 LTW)
* Fix for 139936 "[ltw] WeavingAdaptor.generatedClassesExist() cannot cope ↵mwebster2006-06-154-0/+26
| | | | with additional class weaving"
* fix for 120739mwebster2006-06-011-0/+3
|
* fixes for 137235 (contributed by Ron): more intelligent logic for ↵aclement2006-05-043-0/+79
| | | | determining if a path entry is a jar/zip (don't just rely on suffix, some new .bndl files seem to be becoming popular...)
* rearchitect @decpavasseur2005-12-191-1/+1
|
* tests and fixes for 119657. from matthew.aclement2005-12-121-0/+1
|
* fixes for 118715 from Matthew.aclement2005-12-067-0/+44
|
* matthews patches from 116899aclement2005-11-241-1/+1
|
* Matthews patches for 115275aclement2005-11-152-0/+13
|
* Matthews patches from 95529aclement2005-11-117-1/+130
|
* fix for 95516 (-outxml / -outxmlfile) - from Matthew.aclement2005-11-071-0/+23
|
* Code for enhancement 107741: Updated WeavingURLClassLoader (thanks to ↵aclement2005-10-144-0/+72
Matthew Webster for the patch)