aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Add missing asm-commons to aspectjtoolsAlexander Kriegisch2024-04-071-0/+1
| | | | | | | | | | | Relates to #117. In commit f986c3d183, the asm-commons dependency became necessary to pull off the new trick to define classes in arbitrary class loaders during LTW. The dependency was added to aspectjweaver, but not to aspectjtools due to an oversight. As aspectjtools is meant to be a super set of aspectjweaver, add the dependency to the assembly descriptor. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* Raise ClassLoaderWeavingAdaptor::defineClass visibility to protectedAlexander Kriegisch2024-04-041-2/+2
| | | | | | | | | Relates to https://github.com/eclipse-aspectj/ajdt/issues/57 and it a precondition for refactoring phase 2 of child class OSGiWeavingAdaptor::defineClass, which can now directly call the super methods instead of using reflection. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* README.md: Fix word order from comment in previous commitAlexander Kriegisch2024-03-281-1/+1
| | | | | | Relates to #299. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* README.md: Add hint about project root folder name requirementAlexander Kriegisch2024-03-281-0/+3
| | | | | | Closes #299. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* Implement remaining 'AspectJ_JDK_Update' tasks for 1.9.22Alexander Kriegisch2024-03-237-0/+6
| | | | Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* Set version to 1.9.23-SNAPSHOTAlexander Kriegisch2024-03-2328-28/+28
| | | | Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* Release AspectJ 1.9.22Alexander Kriegisch2024-03-2328-28/+28
| | | | Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* Bump JDT Core to 1.9.22Alexander Kriegisch2024-03-231-1/+1
| | | | Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* Add 1.9.22 release notesAlexander Kriegisch2024-03-231-0/+78
| | | | Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* Remove some TODOs from Java feature testsAlexander Kriegisch2024-03-236-18/+0
| | | | Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* Switch to Java 22 + add basic test suiteAlexander Kriegisch2024-03-2316-29/+571
| | | | | | | | | | | | The tests from Java 21 were copied to 22. Inactive ones were activated after their features under test were fixed/implemented. Preview ones were promotes to final ones for unnamed variables and patterns. TODO: Add tests for new Java 22 features and maybe adjust or amend existing feature tests, if preview or final characteristics have changed since Java 21. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* Adjust 1.6.1 'testRunningBrokenCode_pr102733*' tests ECJ Java 22Alexander Kriegisch2024-03-235-62/+110
| | | | | | | | | | | | | | | | | | | | | Initially, these tests made sure that an old AJC bug causing incompatibility to ECJ when using `-proceedOnError` was fixed and there were no regressions. See also: https://bugs.eclipse.org/bugs/show_bug.cgi?id=102733 Now with the Java 22 changes for JEP 463 "Implicitly Declared Classes and Instance Main Methods (Second Preview)" in JDT Core, source code is parsed into a significantly different AST structure than before, even when using compiler targets < 22. See also https://openjdk.org/jeps/463. One test has been temporarily adjusted to the byte code created by ECJ/AJC now. TODO: Revert/adjust after this upstream bug has been fixed: https://github.com/eclipse-jdt/eclipse.jdt.core/issues/2205 Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* CI build: add Temurin JDK 22Alexander Kriegisch2024-03-231-2/+2
| | | | Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* Bump JDT Core to 1.9.22-SNAPSHOTAlexander Kriegisch2024-03-231-1/+1
| | | | Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* Update release notes 1.9.7 to 1.9.21Alexander Kriegisch2024-03-166-0/+12
| | | | | | | Add hint: "As of AspectJ 1.9.21.1, '--add-opens' is no longer necessary. Please upgrade, if it bothers you too much." Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* Asciidoctor: Do not copy target/** to aj-build/distAlexander Kriegisch2024-03-161-0/+1
| | | | Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* Asciidoctor: Create HTML/PDF with TOC level 5Alexander Kriegisch2024-03-161-0/+1
| | | | | | | | The default is 2 in Asciidoctor. A higher TOC level enables developers and users to post more precise deep-links into docs. In PDF versions, it is also easier now to navigate from the TOC to a specific subchapter. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* Remove lib/jdtcore-ajAlexander Kriegisch2024-03-152-22/+0
| | | | | | | | | | If any of the old Ant builds, e.g. tests/profiling/build.xml, which have never been mavenised, need JDT Core, they should be converted to Maven builds and refer to it as a regular dependency. As is, the Ant builds would not run anyway, because other dependency locations have changed as well. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* Remove lib/jarjarAlexander Kriegisch2024-03-152-13/+0
| | | | | | The jarjar library seems to be unused. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* Remove lib/regexpAlexander Kriegisch2024-03-152-14/+0
| | | | | | The library seems to be unused. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* Remove bcel-builder/verifier-srcAlexander Kriegisch2024-03-1558-16161/+0
| | | | | | It looks as if the source code is never built and never used either. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* Reactivate test in AtAjAnnotationGenTestsAlexander Kriegisch2024-03-151-6/+3
| | | | | | | | In AtAjAnnotationGenTests.testRuntimePointcutsReferencingCompiledPointcuts, the classpath issues mentioned in the comments do not seem to exist anymore, with or without the removed lib/bcel/bcel.jar. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* Remove BCEL files from 'lib' moduleAlexander Kriegisch2024-03-159-13/+15
| | | | | | | | Both bcel.jar and bcel-verifier.jar seem to be obsolete. Possible next step: Remove bcel-builder/verifier-src. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* Remove Apache Commons from 'lib' module, update remaining dependenciesAlexander Kriegisch2024-03-1510-250/+12
| | | | | | | | | | | Of beanutils, collections, digester and logging actually only digester and logging are directly used in AspectJ code. Therefore, remove the unused ones and upgrade the remaining libraries' versions to ones which also have source JARs on Maven Central. This makes downloading sources from GitHub and packaging separate commons.jar and commons-src.zip artifacts superfluous. Hence, we can get rid of them completely. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* Throw exception for minimal AJC runtime version violationAlexander Kriegisch2024-03-151-6/+2
| | | | | | | | | | | | | | | | | | When running AJC, throw an AbortException(MINIMAL_JRE_VERSION) instead of just logging an error, if the minimal JRE version requirement is violated. Otherwise, in-process compilation would not fail due to the skipped System.exit(-1) that was used before. In-process compilation is, for example, relevant for AspectJ Maven Plugin, but also for non-forked executions of Plexus AspectJ via Maven Compiler. I am not 100% sure that AbortException is the appropriate exception type, because it was designed for an aborted compilation process and here compilation has not even started yet, but it seems to work fine. Relates to #269. Fixes #292. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* Add links for AspectJ 1.9.21.2Alexander Kriegisch2024-03-132-2/+2
| | | | Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* Set version to 1.9.22-SNAPSHOTAlexander Kriegisch2024-03-1328-28/+28
|
* Release AspectJ 1.9.21.2V1_9_21_2Alexander Kriegisch2024-03-1329-29/+29
|
* Add release notes for AspectJ 1.9.21.2Alexander Kriegisch2024-03-132-1/+42
| | | | Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* Avoid ThreadLocal memory leak in JoinPointImplAlexander Kriegisch2024-03-123-35/+23
| | | | | | | | | | | | | | | | | | | | | | | according to https://rules.sonarsource.com/java/tag/leak/RSPEC-5164/. Now, there no longer is a thread-local stack of AroundClosure instances, but rather a list of them, which can only grow but never shrink. Instead, we now have a thread-local (integer) list index, for every thread being initialised with pointing to the last element. I.e., every thread can unwind by decrementing the index while proceeding, independently of other threads. A positive side effect is that this approach also works for long-lived threads from thread pools, used by executor services. Hence, test Bugs199Tests.testAsyncProceedNestedAroundAdviceThreadPool_gh128, which was previously commented out, has been activated and passes, see #141. I am not sure if this brings @AspectJ style, non-inlined, nested around advice execution functionally on par with native ones, but at least for current scenarios it seems to work. Fixes #288, #141. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* Add regression tests for inheritable thread-local memory leakAlexander Kriegisch2024-03-126-0/+206
| | | | | | | | | | | Leak was introduced in commit 3c80a36527, fixing #128, but introducing #288 instead, which was the lesser of two evils, but still bad for some users unwilling to use native AspectJ syntax for their aspects, avoiding the problem. Relates to #288. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* AjcTestCase: Improve forked JVM parameter handlingAlexander Kriegisch2024-03-121-5/+8
| | | | | | | - Recognise more "fork-worthy" JVM parameters - Pass on program arguments to program in forked JVM Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* Improved fix for #285KimmingLau2024-03-043-48/+71
| | | | | | | | | | | | | 1. Write SAME_BYTES to cacheMap when woven bytes are null 2. Fix TODO in SimpleCache::getAndInitialize, using Optional to help indicate cache hit for unwoven class 3. Improve test coverage (cache miss, cache hit for unwoven class) Relates to #285. Co-authored-by: Alexander Kriegisch <Alexander@Kriegisch.name> Signed-off-by: KimmingLau <294001791@qq.com> Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* Improve unwoven class file handling in SimpleCacheAlexander Kriegisch2024-03-022-3/+2
| | | | | | | | | Also update lib/aspectj/aspectjweaver.jar to fix integration tests. Fixes #285. Co-authored-by: Kimming Lau <294001791@qq.com> Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* Add Bugs1921Tests::testGitHub_285Alexander Kriegisch2024-03-024-0/+35
| | | | | | This is an additional reproducer for regression bug #285. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* Fix: AllTestsAspectJ171 runs correct NewFeatures suiteAlexander Kriegisch2024-03-021-2/+0
| | | | | | | | | | While fixing #285, I noticed that *.ajc171.NewFeatures was never executed as part of the AspectJ test suite, because since 2012 falsely *.ajc1610.NewFeatures was imported and executed a second time instead. In addition to an outdated AspetJ weaver library in 'lib', this was one more factor why the regression bug was never spotted. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* Bump AspectJ libraries in 'lib' subfolders to 1.9.21.1Alexander Kriegisch2024-03-026-0/+9
| | | | | | | This reproduces regression bug #285 when running org.aspectj.systemtest.ajc171.NewFeatures::testSharedCache. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* Further improve '-xmlConfigured' docsAlexander Kriegisch2024-02-241-21/+34
| | | | Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* Add link to JDK-8326483 for "generated by javadoc (n)" issueAlexander Kriegisch2024-02-241-3/+3
| | | | | https://bugs.openjdk.org/browse/JDK-8326483 Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* Rephrase docs for WeavingXmlConfig::excludesTypeAlexander Kriegisch2024-02-232-8/+18
| | | | | | and turn into javadoc. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* Fix typos: '-xmlConfigured', not '-xmlConfig'Alexander Kriegisch2024-02-221-6/+8
| | | | | | Also reformat compiler usage page to adhere to 80-character limit again. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* ajc.adoc: Fix typo ('-xmlConfigured', not '-xmlConfig')Alexander Kriegisch2024-02-221-1/+1
| | | | Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* ajc.adoc: Cosmetic improvementsAlexander Kriegisch2024-02-221-15/+15
| | | | Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* ajc.adoc: Update '-source', '-target', '-<version>'Alexander Kriegisch2024-02-221-15/+10
| | | | Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* Document AJC option '-xmlConfigured'Alexander Kriegisch2024-02-222-2/+43
| | | | | | | | | | | - Add short description to AJC usage message via messages_aspectj.properties - Add longer description to ajc.adoc in the AspectJ Development Environment Guide Closes https://bugs.eclipse.org/bugs/show_bug.cgi?id=455014. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* Add Ajc164Tests::testMultipleXMLFilesAlexander Kriegisch2024-02-226-0/+82
| | | | | | | | | | While researching how and what to document for AJJ option '-xmlConfigured', I needed to find out what happens in case of multiple XML config files. Result: They are merged. the new test case for the old 1.6.4 release verifies and documents that. It can also serve as an example for reference in case of user questions. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* Extend documentation for Antrun execution to fix javadocsAlexander Kriegisch2024-02-211-2/+8
| | | | | | | | | | Also update the internal review ID of the OpenJDK bug I created, because previously I had created a feature request, which has remained unanswered. But actually, I think it is rather a regression bug, having found out that before JDK 16 the behaviour was exactly how the feature request describes it. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* New abstract class JavaVersionSpecificXMLBasedAjcTestCaseAlexander Kriegisch2024-02-1972-870/+505
| | | | | | | | | | | | | | | | Replaces now obsolete base classes - XMLBasedAjcTestCaseForJava[n]OrLater, - XMLBasedAjcTestCaseForJava[n]Only. The new class is parametrised with minimum and maximum Java version and hence can replace all the other classes. This does not only apply the DRY principle, but also makes adding tests for new Java versions less tedious. By chance, I also noticed missing sanity tests for Java 12, which I added as a little drive-by benefit. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* Reformat and slightly refactor AjcTaskTestAlexander Kriegisch2024-02-191-1014/+954
| | | | | | | I was looking at this test for another reason and thought, it might be a good idea to make it a little bit more compact and re-indent it. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* AjcTask: make version number arrays more genericAlexander Kriegisch2024-02-192-18/+40
| | | | | | | | | | | | | | SOURCE_INPUTS, TARGET_INPUTS, COMPLIANCE_INPUTS are now populated in a 'for' loop in a static initialiser block. I.e., adding support for a new Java version is now as simple as incrementing field JAVA_VERSION_MAX. In case ECJ raises the minimum supporter compiler source/target version, field JAVA_VERSION_MIN needs to be incremented. But that should happen less frequently. This was done to make the 'AspectJ_JDK_Update' tasks as easy and as little error-prone as possible. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>