| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| | |
Update 'taskdefs' code to use generics
|
| | |
|
|\ \
| | |
| | | |
Fix classpath JAR close & re-open problem in AJC
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This should make Bugs198Tests.testGitHub_125 green, fixing problem #125
in AspectJ.
Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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>
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
|\ \
| | |
| | | |
Release 1.9.8
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | | |
Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
|
|/ /
| |
| |
| | |
Because the Jenkins builds for Eclipse now exist and deploy to the
correct update sites, we no longer need the AspectJ.dev ones.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| | |
|
| | |
|
| | |
|
|\ \
| | |
| | | |
Add more info to 1.9.8 release notes
|
| | |
| | |
| | |
| | | |
Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
|
|/ /
| |
| |
| |
| |
| |
| | |
Move usage hints about compiler preview features and LTw on JDK 16+
towards the end.
Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
|
|/
|
|
|
|
|
|
|
|
| |
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
|
|\
| |
| | |
Update 'weaver' code to use generics
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|\
| |
| | |
Update 'runtime' code to use generics
|
|/ |
|
|\
| |
| | |
Update org.aspectj.matcher code to use generics.
|
| |
| |
| |
| | |
Generics make code more type-safe and allows removing ugly type-casts.
|
|\ \
| | |
| | | |
Reduce empty array allocations
|
| | | |
|
|\ \ \
| | | |
| | | |
| | | |
| | | | |
turbanoff/use_StringBuilder_for_concatenation_in_loop
Use StringBuilder/StringJoiner for concatenation String's in loop
|
| |/ / |
|
|\ \ \
| | | |
| | | | |
Add test for Java 11 constant-dynamic
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Relates to #68.
Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
|
|/ / /
| | |
| | |
| | |
| | |
| | | |
Relates to #68.
Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
|\ \
| | |
| | | |
Cleanup redundant boxing.
|
| |/
| |
| |
| |
| | |
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.
|
|\ \
| | |
| | |
| | |
| | | |
turbanoff/more_StringBuilder_instead_of_StringBuffer
Replace more usages of StringBuffer with StringBuilder
|
|/ / |
|
|\ \
| | |
| | | |
Trim trailing whitespaces.
|
| |/
| |
| |
| |
| | |
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.
|
|\ \
| | |
| | | |
Replace uses of StringBuffer with StringBuilder.
|
| |/
| |
| |
| | |
StringBuffer is a legacy synchronized class. StringBuilder is a direct replacement to StringBuffer which generally have better performance.
|
|\ \
| | |
| | |
| | |
| | | |
turbanoff/File.exists_before_File.isDirectory_is_redundant
Remove redundant File.exists() check before File.isDirectory()
|
| |/
| |
| |
| |
| |
| | |
by this abstract pathname exists and is a directory.
It means that separate File.exists() check before File.isDirectory() check is redundant.
|
|\ \
| | |
| | | |
Release 1.9.8.RC3, fixing #105
|
| | |
| | |
| | |
| | | |
Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
|
| | |
| | |
| | |
| | | |
Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
|
| | |
| | |
| | |
| | | |
Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
|