aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* 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-2216-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-225-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-221-2/+2
| | | | Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* Bump JDT Core to 1.9.22-SNAPSHOTAlexander Kriegisch2024-03-201-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>
* Remove most MINOR_*, MINOR_* BCEL class file versionsAlexander Kriegisch2024-02-1926-132/+167
| | | | | | | | | | | in favour of Constants.ClassFileVersion.of(int, int). The few ones retained are used from production code, the vast majority of removed ones only from test code. This gets rid of yet another 'AspectJ_JDK_Update' tag. One less place to check and update with each newly supported Java version. :-) Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* LangUtil: remove methods like 'is11VMOrGreater', 'is1dot5VMOrGreater'Alexander Kriegisch2024-02-1961-192/+117
| | | | | | | | | | Replace them by a uniform method 'isVMGreaterOrEqual(double)', also overloaded for int. This gets rid of one 'AspectJ_JDK_Update' tag. One less place to check and update with each newly supported Java version. :-) Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* Add 'AspectJ_JDK_Update' hint in various placesAlexander Kriegisch2024-02-1911-2/+33
| | | | | | | | | | | | | | | | | | | | The hint is meant to help AspectJ developers identify the places where there are to-dos for releases supporting new Java versions. This is work in progress, new tags can be added wherever necessary in the future. But for now, the most important places should be covered: - AJC version string - Test infrastructure (test suites, classes and XML files) - BCEL class file version MAJOR_*, MINOR_* constants - AjcTask constants for compiler source, target, release - LangUtil::is*VMOrGreater methods - ASM and JDT Core dependency versions - CI workflow file - Release notes The to-do to check the tagged places is also mentioned in RELEASE.md. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* Suppress Maven download messages in CI buildAlexander Kriegisch2024-02-191-3/+6
| | | | | | | by SLF4J system property, see https://blogs.itemis.com/en/in-a-nutshell-removing-artifact-messages-from-maven-log-output Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* Rephrase "check the diffs before committing" sectionAlexander Kriegisch2024-02-171-7/+11
| | | | Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* Run Antrun post-javadoc task depending on Javadoc executionAlexander Kriegisch2024-02-175-10/+15
| | | | Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* Update RELEASE.mdAlexander Kriegisch2024-02-171-32/+37
| | | | | | | | | | - Remove obsolete section "Deploying the AspectJ installer to aspectj.dev", because we are publishing releases on GitHub, attaching installers to them. - Add section "Publish documentation on website". Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* Minor POM cosmeticsAlexander Kriegisch2024-02-171-0/+1
| | | | | | | One less warning in IntelliJ due to the entirely optional groupId for that plugin, but IntelliJ still complains. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>