]> source.dussan.org Git - aspectj.git/log
aspectj.git
2 years agoMove some tests from Ajc198TestsJava to Bugs198Tests
Alexander Kriegisch [Wed, 23 Feb 2022 14:35:40 +0000 (21:35 +0700)]
Move some tests from Ajc198TestsJava to Bugs198Tests

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>
2 years agoMerge pull request #121 from kriegaex/release-198
Andy Clement [Thu, 17 Feb 2022 22:07:27 +0000 (14:07 -0800)]
Merge pull request #121 from kriegaex/release-198

Release 1.9.8

2 years agoSet version to 1.9.9-SNAPSHOT 121/head
Alexander Kriegisch [Fri, 11 Feb 2022 01:39:47 +0000 (08:39 +0700)]
Set version to 1.9.9-SNAPSHOT

2 years agoSet version to 1.9.8 V1_9_8
Alexander Kriegisch [Fri, 11 Feb 2022 01:38:41 +0000 (08:38 +0700)]
Set version to 1.9.8

2 years agoUpdate README-198.html and set release date
Alexander Kriegisch [Fri, 11 Feb 2022 01:22:11 +0000 (08:22 +0700)]
Update README-198.html and set release date

Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
2 years agoIDE.md points to AJDT Eclipse update sites
Alexander Kriegisch [Sat, 29 Jan 2022 02:01:43 +0000 (09:01 +0700)]
IDE.md points to AJDT Eclipse update sites

Because the Jenkins builds for Eclipse now exist and deploy to the
correct update sites, we no longer need the AspectJ.dev ones.

2 years agoImprove annotation style if pointcut handling
Andy Clement [Mon, 31 Jan 2022 23:47:27 +0000 (15:47 -0800)]
Improve annotation style if pointcut handling

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

2 years agopolish - typo
Andy Clement [Mon, 31 Jan 2022 23:43:47 +0000 (15:43 -0800)]
polish - typo

2 years agoTry to improve error reporting when Asm access issues
Andy Clement [Mon, 31 Jan 2022 23:42:44 +0000 (15:42 -0800)]
Try to improve error reporting when Asm access issues

2 years agoprotect against NPE for inheritance and annotation style
Andy Clement [Fri, 21 Jan 2022 00:27:40 +0000 (16:27 -0800)]
protect against NPE for inheritance and annotation style

2 years agoMerge pull request #116 from kriegaex/release-198
Andy Clement [Tue, 18 Jan 2022 05:46:02 +0000 (21:46 -0800)]
Merge pull request #116 from kriegaex/release-198

Add more info to 1.9.8 release notes

2 years agoAdd more content to README-198.html 116/head
Alexander Kriegisch [Tue, 18 Jan 2022 03:00:41 +0000 (10:00 +0700)]
Add more content to README-198.html

Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
2 years agoRestructure README-198.html a bit
Alexander Kriegisch [Tue, 18 Jan 2022 02:10:40 +0000 (09:10 +0700)]
Restructure README-198.html a bit

Move usage hints about compiler preview features and LTw on JDK 16+
towards the end.

Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
2 years agoFix annotation style support for if(true) and if(false)
Andy Clement [Tue, 18 Jan 2022 01:47:37 +0000 (17:47 -0800)]
Fix annotation style support for if(true) and if(false)

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

2 years agoMerge pull request #113 from turbanoff/use_generic_in_weaver_module
Andy Clement [Fri, 14 Jan 2022 20:11:08 +0000 (12:11 -0800)]
Merge pull request #113 from turbanoff/use_generic_in_weaver_module

Update 'weaver' code to use generics

2 years agoUpdate 'weaver' code to use generics 113/head
Andrey Turbanov [Fri, 14 Jan 2022 19:34:54 +0000 (22:34 +0300)]
Update 'weaver' code to use generics

2 years agoCouple of basic tests for the repository optimizations
Andy Clement [Fri, 14 Jan 2022 01:57:51 +0000 (17:57 -0800)]
Couple of basic tests for the repository optimizations

2 years agoOptimize class loading - make backward compatible with legacy behaviour
Alexander Kriegisch [Fri, 7 May 2021 10:14:34 +0000 (17:14 +0700)]
Optimize class loading - make backward compatible with legacy behaviour

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>
2 years agoOptimize class loading
Stefan Starke [Tue, 8 Oct 2019 11:27:41 +0000 (13:27 +0200)]
Optimize class loading

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>
2 years agoMerge pull request #112 from turbanoff/use_genercs_in_runtime_module
Andy Clement [Mon, 10 Jan 2022 23:02:28 +0000 (15:02 -0800)]
Merge pull request #112 from turbanoff/use_genercs_in_runtime_module

Update 'runtime' code to use generics

2 years agoUpdate 'runtime' code to use generics 112/head
Andrey Turbanov [Mon, 10 Jan 2022 18:17:04 +0000 (21:17 +0300)]
Update 'runtime' code to use generics

2 years agoMerge pull request #104 from turbanoff/use_generic_instead_of_raw_types
Andy Clement [Mon, 10 Jan 2022 16:10:20 +0000 (08:10 -0800)]
Merge pull request #104 from turbanoff/use_generic_instead_of_raw_types

Update org.aspectj.matcher code to use generics.

2 years agoMerge pull request #109 from turbanoff/avoid_empty_arrays_allocation
Andy Clement [Mon, 10 Jan 2022 16:09:47 +0000 (08:09 -0800)]
Merge pull request #109 from turbanoff/avoid_empty_arrays_allocation

Reduce empty array allocations

2 years agoMerge pull request #110 from turbanoff/use_StringBuilder_for_concatenation_in_loop
Andy Clement [Mon, 10 Jan 2022 16:08:32 +0000 (08:08 -0800)]
Merge pull request #110 from turbanoff/use_StringBuilder_for_concatenation_in_loop

Use StringBuilder/StringJoiner for concatenation String's in loop

2 years agoMerge pull request #111 from kriegaex/release-198
Andy Clement [Mon, 10 Jan 2022 16:06:56 +0000 (08:06 -0800)]
Merge pull request #111 from kriegaex/release-198

Add test for Java 11 constant-dynamic

2 years agoUpdate README-198.html with condy bugfix info 111/head
Alexander Kriegisch [Sun, 9 Jan 2022 02:02:22 +0000 (09:02 +0700)]
Update README-198.html with condy bugfix info

Relates to #68.

Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
2 years agoAdd test for Java 11 constant-dynamic
Alexander Kriegisch [Sat, 8 Jan 2022 09:06:51 +0000 (16:06 +0700)]
Add test for Java 11 constant-dynamic

Relates to #68.

Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
2 years agoFix ConstantDynamic to use the right tag.
Andy Clement [Fri, 7 Jan 2022 06:18:21 +0000 (22:18 -0800)]
Fix ConstantDynamic to use the right tag.

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

2 years agoUse StringBuilder/StringJoiner for concatenation String's in loop 110/head
Andrey Turbanov [Sat, 18 Dec 2021 12:53:24 +0000 (15:53 +0300)]
Use StringBuilder/StringJoiner for concatenation String's in loop

2 years agoReduce empty array allocations 109/head
Andrey Turbanov [Sat, 18 Dec 2021 12:20:43 +0000 (15:20 +0300)]
Reduce empty array allocations

2 years agoMerge pull request #103 from turbanoff/redundant_boxing
Andy Clement [Tue, 14 Dec 2021 06:04:21 +0000 (22:04 -0800)]
Merge pull request #103 from turbanoff/redundant_boxing

Cleanup redundant boxing.

2 years agoMerge pull request #107 from turbanoff/more_StringBuilder_instead_of_StringBuffer
Andy Clement [Fri, 10 Dec 2021 23:55:57 +0000 (15:55 -0800)]
Merge pull request #107 from turbanoff/more_StringBuilder_instead_of_StringBuffer

Replace more usages of StringBuffer with StringBuilder

2 years agoReplace more usages of StringBuffer with StringBuilder 107/head
Andrey Turbanov [Sun, 5 Dec 2021 20:23:51 +0000 (23:23 +0300)]
Replace more usages of StringBuffer with StringBuilder

2 years agoMerge pull request #102 from turbanoff/trim_trailing_whitespaces
Andy Clement [Tue, 30 Nov 2021 15:37:07 +0000 (07:37 -0800)]
Merge pull request #102 from turbanoff/trim_trailing_whitespaces

Trim trailing whitespaces.

2 years agoMerge pull request #101 from turbanoff/use_StringBuilder_instead_of_StringBuffer
Andy Clement [Tue, 30 Nov 2021 15:35:20 +0000 (07:35 -0800)]
Merge pull request #101 from turbanoff/use_StringBuilder_instead_of_StringBuffer

Replace uses of StringBuffer with StringBuilder.

2 years agoMerge pull request #100 from turbanoff/File.exists_before_File.isDirectory_is_redundant
Andy Clement [Mon, 29 Nov 2021 23:31:59 +0000 (15:31 -0800)]
Merge pull request #100 from turbanoff/File.exists_before_File.isDirectory_is_redundant

Remove redundant File.exists() check before File.isDirectory()

2 years agoMerge pull request #106 from kriegaex/release-198
Andy Clement [Mon, 29 Nov 2021 23:30:39 +0000 (15:30 -0800)]
Merge pull request #106 from kriegaex/release-198

Release 1.9.8.RC3, fixing #105

2 years agoAdd forgotten Bugs198Tests to test suite 106/head
Alexander Kriegisch [Fri, 26 Nov 2021 09:24:44 +0000 (10:24 +0100)]
Add forgotten Bugs198Tests to test suite

Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
2 years agoSet version to 1.9.8-SNAPSHOT
Alexander Kriegisch [Fri, 26 Nov 2021 08:20:41 +0000 (09:20 +0100)]
Set version to 1.9.8-SNAPSHOT

Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
2 years agoSet version to 1.9.8.RC3 V1_9_8_RC3
Alexander Kriegisch [Fri, 26 Nov 2021 08:18:37 +0000 (09:18 +0100)]
Set version to 1.9.8.RC3

Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
2 years agoDocument bugfix #105 in release notes
Alexander Kriegisch [Fri, 26 Nov 2021 08:17:21 +0000 (09:17 +0100)]
Document bugfix #105 in release notes

Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
2 years agoMore minor 1.9.7 to 1.9.8 version bumps in docs
Alexander Kriegisch [Fri, 26 Nov 2021 07:55:53 +0000 (08:55 +0100)]
More minor 1.9.7 to 1.9.8 version bumps in docs

Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
2 years agoIncorporate JDT Core fix + test for #105
Alexander Kriegisch [Fri, 26 Nov 2021 06:34:01 +0000 (07:34 +0100)]
Incorporate JDT Core fix + test for #105

Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
2 years agoMerge pull request #99 from kriegaex/release-198
Andy Clement [Tue, 23 Nov 2021 00:59:41 +0000 (16:59 -0800)]
Merge pull request #99 from kriegaex/release-198

IDE.md: Add Eclipse update site for AJDT compatible with 2021-09

2 years agoUpdate org.aspectj.matcher code to use generics. 104/head
Andrey Turbanov [Sat, 20 Nov 2021 19:40:35 +0000 (22:40 +0300)]
Update org.aspectj.matcher code to use generics.

Generics make code more type-safe and allows removing ugly type-casts.

2 years agoCleanup redundant boxing. 103/head
Andrey Turbanov [Sat, 20 Nov 2021 17:37:02 +0000 (20:37 +0300)]
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.

2 years agoTrim trailing whitespaces. 102/head
Andrey Turbanov [Sat, 20 Nov 2021 14:31:33 +0000 (17:31 +0300)]
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.

2 years agoReplace uses of StringBuffer with StringBuilder. 101/head
Andrey Turbanov [Sat, 20 Nov 2021 14:16:22 +0000 (17:16 +0300)]
Replace uses of StringBuffer with StringBuilder.

StringBuffer is a legacy synchronized class. StringBuilder is a direct replacement to StringBuffer which generally have better performance.

2 years agoAccording to javadoc File.isDirectory 'true' if and only if the file denoted by this... 100/head
Andrey Turbanov [Sat, 20 Nov 2021 13:53:30 +0000 (16:53 +0300)]
According to javadoc File.isDirectory 'true' if and only if the file denoted by this abstract pathname exists and is a directory.
It means that separate File.exists() check before File.isDirectory() check is redundant.

2 years agoIDE.md: Add Eclipse update site for AJDT compatible with 2021-09 99/head
Alexander Kriegisch [Sat, 20 Nov 2021 13:19:37 +0000 (14:19 +0100)]
IDE.md: Add Eclipse update site for AJDT compatible with 2021-09

Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
2 years agoMinor 1.9.7 to 1.9.8 version bumps in docs and Ant script
Alexander Kriegisch [Sat, 20 Nov 2021 13:17:47 +0000 (14:17 +0100)]
Minor 1.9.7 to 1.9.8 version bumps in docs and Ant script

Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
2 years agoMerge pull request #98 from kriegaex/release-198
Andy Clement [Mon, 15 Nov 2021 17:54:30 +0000 (09:54 -0800)]
Merge pull request #98 from kriegaex/release-198

Make AspectJ Ant task compatible with Java 16, 17

2 years agoMake AspectJ Ant task compatible with Java 16, 17 98/head
Alexander Kriegisch [Mon, 15 Nov 2021 11:39:25 +0000 (12:39 +0100)]
Make AspectJ Ant task compatible with Java 16, 17

Closes #97

Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
2 years agoRemove redundant OSSRH snapshot repositories
Alexander Kriegisch [Mon, 11 Oct 2021 15:11:08 +0000 (17:11 +0200)]
Remove redundant OSSRH snapshot repositories

Background: When only consuming dependencies or plugins from OSSRH
snapshots, there is no need to differentiate between the classic and
new URLs. This is only relevant when deploying snapshots, i.e. in the
'distributionManagement' POM section.

Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
2 years agoMerge pull request #96 from kriegaex/release-198
Andy Clement [Wed, 10 Nov 2021 16:31:44 +0000 (08:31 -0800)]
Merge pull request #96 from kriegaex/release-198

Release version 1.9.8.RC2

2 years agoSet version to 1.9.8-SNAPSHOT 96/head
Alexander Kriegisch [Wed, 10 Nov 2021 11:49:44 +0000 (12:49 +0100)]
Set version to 1.9.8-SNAPSHOT

Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
2 years agoSet version to 1.9.8.RC2 V1_9_8_RC2
Alexander Kriegisch [Wed, 10 Nov 2021 11:47:33 +0000 (12:47 +0100)]
Set version to 1.9.8.RC2

Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
2 years agoBump JDT Core to 1.9.8.RC2
Alexander Kriegisch [Wed, 10 Nov 2021 11:31:51 +0000 (12:31 +0100)]
Bump JDT Core to 1.9.8.RC2

Fixes JDT Core bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=576093
and related AspectJ issue #95.

Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
3 years agoRevert "Bump com.thoughtworks.xstream:xstream to 1.4.18"
Alexander Kriegisch [Mon, 11 Oct 2021 12:26:16 +0000 (14:26 +0200)]
Revert "Bump com.thoughtworks.xstream:xstream to 1.4.18"

Reason: 1.4.18 causes exceptions during deployment.

This reverts commit 87fc651c50dd13b46c0cd869af2150ffa8b94a5f.

Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
3 years agoImprove README-198.html
Alexander Kriegisch [Mon, 11 Oct 2021 12:24:53 +0000 (14:24 +0200)]
Improve README-198.html

Adjust both content and document structure.

Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
3 years agoBump com.thoughtworks.xstream:xstream to 1.4.18
Andy Clement [Sat, 9 Oct 2021 04:27:07 +0000 (21:27 -0700)]
Bump com.thoughtworks.xstream:xstream to 1.4.18

3 years agoMerge pull request #93 from kriegaex/java-17
Andy Clement [Fri, 8 Oct 2021 16:25:20 +0000 (09:25 -0700)]
Merge pull request #93 from kriegaex/java-17

Java 17

3 years agoSet version to 1.9.8-SNAPSHOT 93/head
Alexander Kriegisch [Fri, 8 Oct 2021 09:22:02 +0000 (11:22 +0200)]
Set version to 1.9.8-SNAPSHOT

3 years agoRelease version to 1.9.8.RC1 V1_9_8_RC1
Alexander Kriegisch [Fri, 8 Oct 2021 09:19:40 +0000 (11:19 +0200)]
Release version to 1.9.8.RC1

Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
3 years agoAdd AspectJ 1.9.8 release notes
Alexander Kriegisch [Fri, 8 Oct 2021 08:55:37 +0000 (10:55 +0200)]
Add AspectJ 1.9.8 release notes

Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
3 years agoBump JDT Core to 1.9.8.RC1
Alexander Kriegisch [Fri, 8 Oct 2021 08:06:19 +0000 (10:06 +0200)]
Bump JDT Core to 1.9.8.RC1

Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
3 years agoMerge branch 'master' into java-17
Alexander Kriegisch [Fri, 8 Oct 2021 07:33:04 +0000 (09:33 +0200)]
Merge branch 'master' into java-17

3 years agoFix Java17PreviewFeaturesTests (locale-specific floating-point output)
Alexander Kriegisch [Fri, 8 Oct 2021 05:23:44 +0000 (07:23 +0200)]
Fix Java17PreviewFeaturesTests (locale-specific floating-point output)

The test worked on my local workstation with German locale, but not on
GitHub with English locale.

Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
3 years agoRemove Java 8 from GitHub workflow (ECJ needs Java 11+)
Alexander Kriegisch [Fri, 8 Oct 2021 04:44:52 +0000 (06:44 +0200)]
Remove Java 8 from GitHub workflow (ECJ needs Java 11+)

Since JDT Core 3.27 (Java 17) and Eclipse 2021-09 (4.21), respectively,
ECJ no longer works on JDK 8. Even if we backport JDT Core classes, some
of its dependencies contain Java 11 class files, which ultimately also
means that ACJ no longer works below JDK 11 due to those transitive
dependencies, e.g. org.eclipse.core.resources-3.14.0.jar.

For now, I added JDK 14 to the build matrix, i.e. we currently have 11,
14, 17. When JDK 18 is released, we can switch to 11, 17, 18, i.e. keep
the two LTS releases plus the latest one.

Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
3 years agoRename DOM AST class TypePattern to AbstractTypePattern
Alexander Kriegisch [Fri, 8 Oct 2021 04:36:38 +0000 (06:36 +0200)]
Rename DOM AST class TypePattern to AbstractTypePattern

Since JDT Core 3.27 (Java 17), there is a name clash, because the new
class org.eclipse.jdt.core.dom.TypePattern (JEP 406) gets relocated to
org.aspectj.org.eclipse.jdt.core.dom.TypePattern during shading.
Fortunately, this made tests like AjASTTest and AjAST5Test fail with
rather nasty errors like:

java.lang.VerifyError: Bad return type (...)
  Type 'org/aspectj/org/eclipse/jdt/core/dom/TypePattern' (...) is not
  assignable to 'org/aspectj/org/eclipse/jdt/core/dom/Pattern' (...)

TODO: Update AJDT references to the renamed class in the following
classes after refreshing the AspectJ sources:
  - ExtraPackageReferenceFinder
  - ExtraTypeReferenceFinder
This also means, that for Eclipse 2021-09 (4.21) we need a new AJDT
update site, because simply deploying to the 4.19 one would probably
lead to problems in the IDE.

Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
3 years agoBump GitHub CI build from JDK 17-ea to 17, remove 16
Alexander Kriegisch [Sat, 2 Oct 2021 12:01:27 +0000 (14:01 +0200)]
Bump GitHub CI build from JDK 17-ea to 17, remove 16

Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
3 years agoUpdate ECJ version, activate Java 17 preview features tests
Alexander Kriegisch [Sat, 2 Oct 2021 11:55:59 +0000 (13:55 +0200)]
Update ECJ version, activate Java 17 preview features tests

After JDT Core (ECJ) was updated to the final Java 17 feature set, the
tests now pass as expected.

Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
3 years agoAdd Sonatype OSSRH snapshot (plugin) repositories
Alexander Kriegisch [Sat, 2 Oct 2021 11:54:26 +0000 (13:54 +0200)]
Add Sonatype OSSRH snapshot (plugin) repositories

Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
3 years agoMerge pull request #91 from kriegaex/nexus-staging-new-workaround
Andy Clement [Tue, 28 Sep 2021 14:20:04 +0000 (07:20 -0700)]
Merge pull request #91 from kriegaex/nexus-staging-new-workaround

Add JDK 16+ workaround for Nexus Staging Maven Plugin

3 years agoAdd JDK 16+ workaround for Nexus Staging Maven Plugin 91/head
Alexander Kriegisch [Tue, 28 Sep 2021 06:20:25 +0000 (08:20 +0200)]
Add JDK 16+ workaround for Nexus Staging Maven Plugin

Plugin version 1.6.8 does not work on JDK 16+ without special MAVEN_OPTS
opening certain modules, because the XStream version used needs it. One
workaround is to use a more recent XStream version.

TODO: remove plugin dependency after OSSRH-66257, NEXUS-26993 are fixed.
Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
3 years agoActivate Java 17 build in GitHub workflow
Alexander Kriegisch [Wed, 28 Jul 2021 03:57:25 +0000 (10:57 +0700)]
Activate Java 17 build in GitHub workflow

Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
3 years agoAdd + activate some Java 17 tests
Alexander Kriegisch [Wed, 28 Jul 2021 03:55:02 +0000 (10:55 +0700)]
Add + activate some Java 17 tests

- Fix one fault sanity test configuration
- Deactivate Java 16 preview tests (no longer supported by Java 17
  compiler)
- Test sealed classes as final on Java 17 (no longer preview)
- Add tests for JEP 406, pattern matching for switch (preview). At
  present, the beta 17 branch of JDT Core does not handle the tested
  features and expected compile errors correctly yet, so I had to
  temporarily deactivate test execution, only printing TODO messages.

Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
3 years agoTest comment cosmetics
Alexander Kriegisch [Wed, 28 Jul 2021 03:49:46 +0000 (10:49 +0700)]
Test comment cosmetics

Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
3 years agoIn ITD processing, use setter instead of assigning Scope directly
Alexander Kriegisch [Mon, 26 Jul 2021 01:44:05 +0000 (08:44 +0700)]
In ITD processing, use setter instead of assigning Scope directly

Change calls like
  pre.scope.parent = newParent;
to this pattern:
  // Use setter in order to also update member 'compilationUnitScope'
  pre.scope.setParent(newParent);

This should fix lots of failing tests after updating JDT Core.

Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
3 years agoAdd AJDT support for printing switch expressions
Alexander Kriegisch [Sun, 25 Jul 2021 11:35:36 +0000 (18:35 +0700)]
Add AJDT support for printing switch expressions

Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
3 years agoAdd Sonatype OSSRH snapshots repositories
Alexander Kriegisch [Sun, 25 Jul 2021 10:35:04 +0000 (17:35 +0700)]
Add Sonatype OSSRH snapshots repositories

Otherwise
  - JDT Core 1.9.8-SNAPSHOT (classic OSSRH snapshot URL)
  - AspectJ Maven Plugin 1.13-SNAPSHOT (new OSSRH snapshot URL)
cannot be found

Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
3 years agoBump JDT Core from 1.9.7.M2 to 1.9.8-SNAPSHOT
Alexander Kriegisch [Sun, 25 Jul 2021 10:24:59 +0000 (17:24 +0700)]
Bump JDT Core from 1.9.7.M2 to 1.9.8-SNAPSHOT

Not Java 17 compatible yet, but refreshed from main branch for latest
Java 16 updates in compiler (mostly about records).

Let's see if CI is still green before trying to upgrade JDT Core to
Java 17 beta.

Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
3 years agoBump ASM 9.1 to 9.2 (Java 17+18 support)
Alexander Kriegisch [Sat, 24 Jul 2021 05:24:46 +0000 (12:24 +0700)]
Bump ASM 9.1 to 9.2 (Java 17+18 support)

This is a first, preparatory step

Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
3 years agoMerge pull request #86 from kriegaex/update-download-maven-plugin
Andy Clement [Tue, 7 Sep 2021 02:16:24 +0000 (19:16 -0700)]
Merge pull request #86 from kriegaex/update-download-maven-plugin

Bump download-maven-plugin to 1.6.7

3 years agoBump download-maven-plugin to 1.6.7 86/head
Alexander Kriegisch [Sun, 5 Sep 2021 06:47:30 +0000 (08:47 +0200)]
Bump download-maven-plugin to 1.6.7

After my PR https://github.com/maven-download-plugin/maven-download-plugin/pull/191
was merged and https://github.com/maven-download-plugin/maven-download-plugin/issues/186
was closed, use a new release containing the option misnomer fix in
order to make the POM more readable.

Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
3 years agoMerge pull request #84 from kriegaex/test-issue-83
Andy Clement [Mon, 9 Aug 2021 14:13:40 +0000 (07:13 -0700)]
Merge pull request #84 from kriegaex/test-issue-83

Stabilise flaky test in Ajc1612Tests

3 years agoRemove logging dots per test step in AjcTest.runTest 84/head
Alexander Kriegisch [Sun, 8 Aug 2021 05:15:11 +0000 (12:15 +0700)]
Remove logging dots per test step in AjcTest.runTest

Methods AjcTest.runTest was logging something like "TEST: ...."
(4 dots), i.e. one dot per performed test step. Not only did this not
add much value, but due to usage of PrintStream.print for line
continuation it also messed up test step logging by scattering seemingly
random dot characters across test step logs. This looked quite ugly, so
I simply removed it.

Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
3 years agoRefactor AnnoBinding test class used by Ajc1612Tests some more
Alexander Kriegisch [Sun, 8 Aug 2021 05:09:52 +0000 (12:09 +0700)]
Refactor AnnoBinding test class used by Ajc1612Tests some more

Improve improved general logging, error messages, variable naming and
indentation, making the code of class AnnoBinding a bit more readable.

Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
3 years agoImprove flaky test in Ajc1612Tests further
Alexander Kriegisch [Sun, 8 Aug 2021 05:07:36 +0000 (12:07 +0700)]
Improve flaky test in Ajc1612Tests further

By using System.nanoTime() instead of currentTimeMillis(), the flakiness
even with the original 10,000 rounds is significantly lower than before.
Making my IDE repeat the test until failure, it took on average 150 runs
to make it fail. So, the more accurate timing helps. With 100,000
rounds, it was even more stable, but eventually I could make it fail.
With 1,000,000 rounds however, even running the test 500x could not make
it fail. So for all practical purposes, I think the test is reasonably
stable now.

Closes #83.

Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
3 years agoStabilise flaky test in Ajc1612Tests
Alexander Kriegisch [Thu, 5 Aug 2021 08:16:17 +0000 (15:16 +0700)]
Stabilise flaky test in Ajc1612Tests

By increasing from 10,000 to 1,000,000 rounds, the times compared for
performance become considerably longer (but still in the tens or
hundreds or milliseconds), decreasing the probability of the test
failing due to CPU load or some other random effect.

Closes #83.

Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
3 years agoMerge pull request #82 from kriegaex/readme-dev-tools
Andy Clement [Thu, 5 Aug 2021 05:48:22 +0000 (22:48 -0700)]
Merge pull request #82 from kriegaex/readme-dev-tools

Add "Setting up an AspectJ development environment" guide

3 years agoAdd "Setting up an AspectJ development environment" guide 82/head
Alexander Kriegisch [Thu, 5 Aug 2021 05:01:05 +0000 (12:01 +0700)]
Add "Setting up an AspectJ development environment" guide

Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
3 years agoMerge pull request #80 from kriegaex/release-1.9.8.M1
Andy Clement [Mon, 26 Jul 2021 15:19:34 +0000 (08:19 -0700)]
Merge pull request #80 from kriegaex/release-1.9.8.M1

Release 1.9.8.M1 featuring `--release N` fix

3 years agoSet version to 1.9.8-SNAPSHOT 80/head
Alexander Kriegisch [Mon, 26 Jul 2021 07:52:55 +0000 (14:52 +0700)]
Set version to 1.9.8-SNAPSHOT

3 years agoSet version to 1.9.8.M1 V1_9_8_M1
Alexander Kriegisch [Mon, 26 Jul 2021 07:51:47 +0000 (14:51 +0700)]
Set version to 1.9.8.M1

3 years agoMerge pull request #77 from SmallGiantGames/bug415838-test
Andy Clement [Wed, 30 Jun 2021 18:43:27 +0000 (11:43 -0700)]
Merge pull request #77 from SmallGiantGames/bug415838-test

Test for 1.9.6 concurrency bug in LocalVariableTable.unpack()

3 years agominor improvements 77/head
Dmitry Mikhaylov [Tue, 29 Jun 2021 06:53:18 +0000 (09:53 +0300)]
minor improvements

3 years agoMerge pull request #73 from kriegaex/ajc-release-option
Andy Clement [Mon, 28 Jun 2021 22:31:48 +0000 (15:31 -0700)]
Merge pull request #73 from kriegaex/ajc-release-option

Enable AJC compilation with `--release`

3 years agotest for failing synchronization in LocalVariableTable.unpack
Dmitry Mikhaylov [Mon, 28 Jun 2021 14:38:28 +0000 (17:38 +0300)]
test for failing synchronization in LocalVariableTable.unpack

3 years agoAdd integration test for '--release N' compiler option 73/head
Alexander Kriegisch [Sat, 26 Jun 2021 09:18:29 +0000 (16:18 +0700)]
Add integration test for '--release N' compiler option

Relates to #70

Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>