aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
| * Make sure that program arguments are passed through in full LTW modeAlexander Kriegisch2022-03-231-14/+17
| | | | | | | | | | | | | | | | This fixes e.g. LTWTests.testDeclareAbstractAspect, which passes on names of ITD methods to the test program, which in turn executes those methods via reflection. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
| * Introduce AjcTestCase.DEFAULT_FULL_LTW_CLASSPATH_ENTRIESAlexander Kriegisch2022-03-231-5/+12
| | | | | | | | | | | | | | In 'useFullLTW' mode, aspectjweaver.jar is a Java agent. Therefore, what is contained in there does not need to be on the classpath. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
| * Fix more LTW testsAlexander Kriegisch2022-03-233-5/+36
| | | | | | | | Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
| * A few dozen more tests need 'useFullLTW' modeAlexander Kriegisch2022-03-2314-147/+147
| | | | | | | | Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
| * AJDT Core: use JUnit 4 from class path instead of 3.8 from lib/junitAlexander Kriegisch2022-03-232-2/+9
| | | | | | | | Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
| * AtAjLTWTests: 4 test cases switched to 'useFullLTW' modeAlexander Kriegisch2022-03-232-13/+14
| | | | | | | | | | | | | | | | After the Java 18 JDT Core upgrade, some LTW tests are failing and have to be switched from in-process to full LTW mode due to them now obviously calling some code paths which need '--add-opens'. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
| * Fix broken 'useFullLTW' test modeAlexander Kriegisch2022-03-232-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | It was referring to a no longer existent weaver under aj-build/dist/tools/lib/aspectjweaver.jar, which now has been replaced by the new file lib/aspectj/lib/aspectjweaver.jar. Several tests were broken, not finding the agent. But because those tests make no assertions, nobody ever noticed. Only when I had to change some LTW tests from in-process to full LTW mode (see next commit) due to them now obviously calling some code paths which need '--add-opens', I even noticed the problem. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
| * Use 1.9.9-SNAPSHOT AspectJ libraries in libs/test, libs/aspectj/libAlexander Kriegisch2022-03-233-0/+0
| | | | | | | | Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
| * Use static imports for file and path separator constantsAlexander Kriegisch2022-03-232-25/+31
| | | | | | | | | | | | It makes concatenated paths a little more readable. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
| * Use '-Djava.security.manager=allow' on Java 18+ (JEP 411)Alexander Kriegisch2022-03-232-0/+17
| | | | | | | | | | | | | | | | | | | | JEP 411: Deprecate the Security Manager for Removal, see https://openjdk.java.net/jeps/411. As of Java 18, the new API for blocking System.exit is not available yet, see https://bugs.openjdk.java.net/browse/JDK-8199704. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
| * Prepare code, tests and docs for Java 18Alexander Kriegisch2022-03-2132-143/+869
|/ | | | | | | | | | | | | | | | | | | | - JDT Core dependency in pom.xml - Constants.java - LangUtil.java - AjcTask.java - messages_aspectj.properties - XMLBasedAjcTestCaseForJava17Only.java - XMLBasedAjcTestCaseForJava18*.java - tests/bugs199 - tests/features199 - JavaVersionCompatibility.md - README-199.html - GitHub CI build Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* Docs: add AspectJ Java version compatibility tableAlexander Kriegisch2022-03-192-0/+24
| | | | Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* Bump actions/checkout from 2 to 3Alexander Kriegisch2022-03-071-1/+1
| | | | | | | | | | | | | | | Bumps [actions/checkout](https://github.com/actions/checkout) from 2 to 3. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v2...v3) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-major Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* Bump actions/setup-java from 1 to 3, use Temurin, drop Java 14Alexander Kriegisch2022-03-071-2/+3
| | | | | | | | | | | | | | | | | | Adopt OpenJDK moved to Eclipse Temurin and is no longer updated. Temurin builds for JDK 14 are however not available. Therefore, we drop the JDK 14 CI build. Bumps [actions/setup-java](https://github.com/actions/setup-java) from 1 to 3. - [Release notes](https://github.com/actions/setup-java/releases) - [Commits](https://github.com/actions/setup-java/compare/v1...v3) --- updated-dependencies: - dependency-name: actions/setup-java - dependency-type: direct:production - update-type: version-update:semver-major Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* No automatic builds for Dependabot PRsAlexander Kriegisch2022-03-071-1/+7
| | | | | | | | | Otherwise, Dependabot would run builds whenever something is pushed on master and it rebases its PR. It is still possible to just click on the skipped workflow in the PR and then issue "re-run all jobs" in order to perform a build. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* Add GitHub DependabotAlexander Kriegisch2022-03-071-0/+10
| | | | | | | | | | It will create PRs for Maven and GitHub action updates. Of course, we cannot simply merge the PRs, because Dependabot has not singed an Eclipse CLA, but at least we know about updates and how they affect the build result. Then we can decide to clone the changes and commit them manually. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* Fix poor variable nameAndy Clement2022-02-261-3/+3
|
* Merge pull request #130 from turbanoff/cleanup_too_weak_variable_typesAndy Clement2022-02-2617-60/+35
|\ | | | | Cleanup redundant type casts, due to too weak variable type declaration
| * Cleanup redundant type casts, due to too weak variable type declarationAndrey Turbanov2022-02-2617-60/+35
|/
* Merge pull request #114 from turbanoff/use_generics_in_taskdefs_moduleAndy Clement2022-02-256-27/+27
|\ | | | | Update 'taskdefs' code to use generics
| * Update 'taskdefs' code to use genericsAndrey Turbanov2022-01-146-27/+27
| |
* | Merge pull request #127 from kriegaex/gh-125Andy Clement2022-02-256-24/+69
|\ \ | | | | | | Fix classpath JAR close & re-open problem in AJC
| * | Bump JDT Core to 1.9.9-SNAPSHOT, incorporating #125 fixesAlexander Kriegisch2022-02-231-1/+1
| | | | | | | | | | | | | | | | | | | | | This should make Bugs198Tests.testGitHub_125 green, fixing problem #125 in AspectJ. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
| * | Regression test for #125: Bugs198Tests.testGitHub_125Alexander Kriegisch2022-02-234-3/+48
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This test fails when run against AspectJ 1.9.8 with JDT Core 1.9.8.RC3. It passes when using the latest JDT Core 1.9.9-SNAPSHOT. It sets system property 'org.aspectj.weaver.openarchives=20', provoking open classpath JAR file exhaustion when compiling a simple class with AJC, i.e. JARs are being forcibly closed and automatically re-opened, as soon as they are needed. Before the JDT Core bugfix, this test causes: java.lang.NullPointerException at ....compiler.batch.ClasspathJmod.getModulesDeclaringPackage With the bugfix incorporated into AspectJ Tools, the problem is gone. Note: New test dependency 'io.github.bmuskalla:scoped-system-properties' helps to test compilation with the temporarily changed global system property in isolation, saving the environment in a thread-local variable and later cleanly restoring the original values again. If we ever switch to parallel test execution, this would otherwise influence other tests and potentially cause weird side effects. Better safe than sorry. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
| * | Move some tests from Ajc198TestsJava to Bugs198TestsAlexander Kriegisch2022-02-232-20/+20
|/ / | | | | | | | | | | | | | | | | They were accidentally stored in thw wrong test class, not just because they are bug regression tests, not 1.9.8 features, but also because they are meant to work on Java 5+, not on Java 17+ like the ones in Ajc198TestsJava. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* | Merge pull request #121 from kriegaex/release-198Andy Clement2022-02-1731-35/+36
|\ \ | | | | | | Release 1.9.8
| * | Set version to 1.9.9-SNAPSHOTAlexander Kriegisch2022-02-1129-29/+29
| | |
| * | Set version to 1.9.8V1_9_8Alexander Kriegisch2022-02-1129-29/+29
| | |
| * | Update README-198.html and set release dateAlexander Kriegisch2022-02-111-4/+5
| | | | | | | | | | | | Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
| * | IDE.md points to AJDT Eclipse update sitesAlexander Kriegisch2022-02-111-2/+2
|/ / | | | | | | Because the Jenkins builds for Eclipse now exist and deploy to the correct update sites, we no longer need the AspectJ.dev ones.
* | Improve annotation style if pointcut handlingAndy Clement2022-01-316-21/+220
| | | | | | | | | | | | | | | | | | This fixes: - negating annotation style if() pointcuts doesn't work - annotation style if() pointcut not able to use a binding that is not exposed Fixes #120,#122
* | polish - typoAndy Clement2022-01-311-1/+1
| |
* | Try to improve error reporting when Asm access issuesAndy Clement2022-01-313-4/+7
| |
* | protect against NPE for inheritance and annotation styleAndy Clement2022-01-201-3/+2
| |
* | Merge pull request #116 from kriegaex/release-198Andy Clement2022-01-171-22/+53
|\ \ | | | | | | Add more info to 1.9.8 release notes
| * | Add more content to README-198.htmlAlexander Kriegisch2022-01-181-1/+25
| | | | | | | | | | | | Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
| * | Restructure README-198.html a bitAlexander Kriegisch2022-01-181-21/+28
|/ / | | | | | | | | | | | | Move usage hints about compiler preview features and LTw on JDK 16+ towards the end. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* / Fix annotation style support for if(true) and if(false)Andy Clement2022-01-175-2/+103
|/ | | | | | | | | | The documentation specifies annotation style pointcuts can use if(false) or if(true) and not require a boolean return value and body for the @Pointcut annotated method but it doesn't work without this change to validation that recognizes the situation. Fixes #115
* Merge pull request #113 from turbanoff/use_generic_in_weaver_moduleAndy Clement2022-01-1410-28/+28
|\ | | | | Update 'weaver' code to use generics
| * Update 'weaver' code to use genericsAndrey Turbanov2022-01-1410-28/+28
| |
* | Couple of basic tests for the repository optimizationsAndy Clement2022-01-133-28/+119
| |
* | Optimize class loading - make backward compatible with legacy behaviourAlexander Kriegisch2022-01-132-6/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Now the defaults are: + org.aspectj.apache.bcel.useSingleRepositoryInstance (default: false) + org.aspectj.apache.bcel.useUnavailableClassesCache (default: false) + org.aspectj.apache.bcel.ignoreCacheClearRequests (default: false) I.e. the new caching optimisations are opt-in instead of opt-out as originally designed. This might change in the future, but for now without any additional tests and experience with the new feature let us be conservative and make the build green first. I also added a few more code review findings concerning backward compatibility, which was less than 100% even with all three flags deactivated. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* | Optimize class loadingStefan Starke2022-01-132-21/+72
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | In our project we found out that during the build up of the spring context the class loading takes a very long time. Root cause is the huge amount of file I/O during pointcut class loading. We are taking about ~250k file loads. With these changes we managed to cut down the starting time by around 50%. What we found out is that IMHO - the clear method of the ClassLoaderRepository is called far too often -> in our settings this resulted in not a single cache hit as the cache got cleared permanently. Therefore we de-actived the cache clear calls inside the ClassLoaderRepository. Secondly we changed the Java15AnnotationFinder in a way to not always create new objects for the ClassLoaderRepository but re-use one static instance. Otherwise we experienced >100k objects being created. Last but not least we introduced a cache for unavailable classes so that they do not have to be looked up using file I/O over and over again. The whole behavior is configurable via + org.aspectj.apache.bcel.useSingleRepositoryInstance (default: true) + org.aspectj.apache.bcel.useUnavailableClassesCache (default: true) + org.aspectj.apache.bcel.ignoreCacheClearRequests (default: true) Signed-off-by: Stefan Starke <stefan@starkeweb.org> Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* Merge pull request #112 from turbanoff/use_genercs_in_runtime_moduleAndy Clement2022-01-1024-98/+98
|\ | | | | Update 'runtime' code to use generics
| * Update 'runtime' code to use genericsAndrey Turbanov2022-01-1024-98/+98
|/
* Merge pull request #104 from turbanoff/use_generic_instead_of_raw_typesAndy Clement2022-01-1016-36/+36
|\ | | | | Update org.aspectj.matcher code to use generics.
| * Update org.aspectj.matcher code to use generics.Andrey Turbanov2021-11-2016-36/+36
| | | | | | | | Generics make code more type-safe and allows removing ugly type-casts.
* | Merge pull request #109 from turbanoff/avoid_empty_arrays_allocationAndy Clement2022-01-1039-92/+85
|\ \ | | | | | | Reduce empty array allocations
| * | Reduce empty array allocationsAndrey Turbanov2021-12-1839-92/+85
| | |
* | | Merge pull request #110 from ↵Andy Clement2022-01-105-45/+47
|\ \ \ | | | | | | | | | | | | | | | | turbanoff/use_StringBuilder_for_concatenation_in_loop Use StringBuilder/StringJoiner for concatenation String's in loop