aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* 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>
* Use Antrun plugin to eliminate javadoc version number in HTMLAlexander Kriegisch2024-02-175-0/+91
| | | | | | | | | | This is the one issue that cannot be solved regarding reproducible builds by setting javadoc options, because that header comment is hard-coded into the JDK with no option to avoid it. I just created an OpenJDK issue (internal review ID 9076583, not published yet) for it, but that does not help us today. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* Maven Javadoc: Add options for reproducible build artifactsAlexander Kriegisch2024-02-171-0/+8
| | | | | | | and smaller diffs when committing changes to the website,avoiding timestamps, changing current copyright years, artifact versions. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* Bump Maven Javadoc to 3.6.3Alexander Kriegisch2024-02-171-1/+1
| | | | Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* Suppress "unresolved Maven property" warning in IntelliJ for 'maven.gpgAlexander Kriegisch2024-02-171-0/+1
| | | | | | .skip' Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* Reproducible builds: set project.build.outputTimestampAlexander Kriegisch2024-02-171-0/+6
| | | | | | See https://maven.apache.org/guides/mini/guide-reproducible-builds.html. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* Remove obsolete stuff from module 'build' and lib/buildAlexander Kriegisch2024-02-1610-2746/+0
| | | | Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* Add decade 2020-2029 to copyright years in ChecklicsAlexander Kriegisch2024-02-161-4/+6
| | | | | | | | | | | | | | | | FWIW, I just wanted to know if the tests in module 'build' would still pass. They did not find copyrights for more recent years, so I added them here. But I am still unsure, if we need these tests at all. Obviously, they were not running during CI builds, i.e. they seem to be non-essential. But chances are, they were forgotten to be added to the suite. BTW, running the tests in module 'build' with '-Drun.build.tests=true' is failing, too, because some old JDK classes looked up there no longer exist in more recent JDKs. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* Avoid "Last updated [timestamp]" footer on each docs pageAlexander Kriegisch2024-02-151-0/+4
| | | | | | | | | | | Set Asciidoctor option 'nofooter' to avoid the annoying timestamps. It makes updating the website difficult, because always there are "changes" in each file. Diffing real changes in generated files for the website before committing becomes difficult. Furthermore, the user does not have any immediate benefit for most documents, as they change infrequently or never (e.g. old release notes). Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* Mention release 1.9.21.1 in overview pagesAlexander Kriegisch2024-02-152-2/+2
| | | | Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* Add missing release notes for 1.8.12, 1.8.13, 1.8.14Alexander Kriegisch2024-02-154-7/+106
| | | | | | | I found those in HTML only on the Eclipse web server, but not in the Git repository. So, I manually converted them to ADOC. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* Add Git .mailmap fileAlexander Kriegisch2024-02-151-0/+19
| | | | | | | Mapping file for Git committers, mapping e-mail addresses to names for 'git shortlog -sne'. See https://git-scm.com/docs/gitmailmap. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* Globally replace "http:" by "https:" in non-XML filesAlexander Kriegisch2024-02-15517-5331/+5254
| | | | | | | | | Maybe, the XML files and Maven wrapper files will follow. First, let us find out if this breaks the build, maybe some tests are asserting on "http:". But there, the replacement would also have taken place, so probably it just works. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* Remove noise from aspectj_1_5_0.dtdAlexander Kriegisch2024-02-151-68/+47
| | | | Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* joinpointsignatures.adoc: minor formatting cosmeticsAlexander Kriegisch2024-02-151-4/+3
| | | | Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* Replace links to https://www.eclipse.org/aspectj/doc/nextAlexander Kriegisch2024-02-155-11/+9
| | | | | | | This part of the website is outdated and will be deleted. Instead, link to ADOCs right in the GitHub repository. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* Fix some docs linksAlexander Kriegisch2024-02-145-17/+14
| | | | Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>