aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* 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
| * | | Use StringBuilder/StringJoiner for concatenation String's in loopAndrey Turbanov2021-12-185-45/+47
| |/ /
* | | Merge pull request #111 from kriegaex/release-198Andy Clement2022-01-108-6/+156
|\ \ \ | | | | | | | | Add test for Java 11 constant-dynamic
| * | | Update README-198.html with condy bugfix infoAlexander Kriegisch2022-01-091-6/+16
| | | | | | | | | | | | | | | | | | | | | | | | Relates to #68. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
| * | | Add test for Java 11 constant-dynamicAlexander Kriegisch2022-01-087-0/+140
|/ / / | | | | | | | | | | | | | | | Relates to #68. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* / / Fix ConstantDynamic to use the right tag.Andy Clement2022-01-061-1/+1
|/ / | | | | | | | | | | | | | | | | | | The class ConstantDynamic was incorrectly using the `InvokeDynamic` tag during construction which meant after reading in code containing a `Dynamic` reference, it would incorrectly be written out as an `InvokeDynamic` reference. There is not much code out there using Dynamic so wasn't uncovered before. Fixes #68
* | Merge pull request #103 from turbanoff/redundant_boxingAndy Clement2021-12-139-14/+14
|\ \ | | | | | | Cleanup redundant boxing.
| * | Cleanup redundant boxing.Andrey Turbanov2021-11-209-14/+14
| |/ | | | | | | | | Methods Integer.parseInt/Boolean.parseBoolean should be preferred over Integer.valueOf/Boolean.valueOf/ if final result is primitive. They are generally faster and generate less garbage.
* | Merge pull request #107 from ↵Andy Clement2021-12-1011-38/+38
|\ \ | | | | | | | | | | | | turbanoff/more_StringBuilder_instead_of_StringBuffer Replace more usages of StringBuffer with StringBuilder
| * | Replace more usages of StringBuffer with StringBuilderAndrey Turbanov2021-12-0511-38/+38
|/ /
* | Merge pull request #102 from turbanoff/trim_trailing_whitespacesAndy Clement2021-11-3081-303/+303
|\ \ | | | | | | Trim trailing whitespaces.
| * | Trim trailing whitespaces.Andrey Turbanov2021-11-20108-485/+485
| |/ | | | | | | | | Trailing whitespaces are useless. Most of code-styles forbids them. Most of editors always trim them on save. I propose to clean up project from trailing whitespaces in all java files at once.
* | Merge pull request #101 from turbanoff/use_StringBuilder_instead_of_StringBufferAndy Clement2021-11-30221-564/+564
|\ \ | | | | | | Replace uses of StringBuffer with StringBuilder.
| * | Replace uses of StringBuffer with StringBuilder.Andrey Turbanov2021-11-20221-564/+564
| |/ | | | | | | StringBuffer is a legacy synchronized class. StringBuilder is a direct replacement to StringBuffer which generally have better performance.
* | Merge pull request #100 from ↵Andy Clement2021-11-295-11/+10
|\ \ | | | | | | | | | | | | turbanoff/File.exists_before_File.isDirectory_is_redundant Remove redundant File.exists() check before File.isDirectory()
| * | According to javadoc File.isDirectory 'true' if and only if the file denoted ↵Andrey Turbanov2021-11-205-11/+10
| |/ | | | | | | | | | | by this abstract pathname exists and is a directory. It means that separate File.exists() check before File.isDirectory() check is redundant.
* | Merge pull request #106 from kriegaex/release-198Andy Clement2021-11-2910-3/+87
|\ \ | | | | | | Release 1.9.8.RC3, fixing #105
| * | Add forgotten Bugs198Tests to test suiteAlexander Kriegisch2021-11-262-0/+6
| | | | | | | | | | | | Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
| * | Set version to 1.9.8-SNAPSHOTAlexander Kriegisch2021-11-2629-29/+29
| | | | | | | | | | | | Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
| * | Set version to 1.9.8.RC3V1_9_8_RC3Alexander Kriegisch2021-11-2629-29/+29
| | | | | | | | | | | | Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>