aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Update release notes for 1.9.19 (Java 19)Alexander Kriegisch2022-12-211-31/+26
| | | | Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* Fix #366085 concerning declared annotations with source retentionAlexander Kriegisch2022-12-218-7/+55
| | | | | | | | | | | | | | | See https://bugs.eclipse.org/bugs/show_bug.cgi?id=366085. See https://stackoverflow.com/q/74618269/1082681. The issue described in the Bugzilla issue is about 'declare @type', but similar issues also existed for 'declare @field', 'declare @method', 'declare @constructor'. This fix is rather superficial and leaves things to be desired, because it is rather hacky and simply ignores errors source retention annotation declarations during weaving. A better fix would drop the corresponding declarations while parsing and also issue compiler warnings in each case. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* Merge pull request #187 from eclipse/java-19Alexander Kriegisch2022-12-2181-395/+1638
|\ | | | | Java 19 support
| * Add release notes for 1.9.19 (Java 19)Alexander Kriegisch2022-12-212-0/+165
| | | | | | | | Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
| * Add tests for Java 19 record patternsAlexander Kriegisch2022-12-2111-7/+297
| | | | | | | | Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
| * Bump ECJ version in messages_aspectj.propertiesAlexander Kriegisch2022-12-201-1/+1
| | | | | | | | | | | | Eclipse Compiler 19f448f47c9e3e (15Dec2022) - Java19 Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
| * Merge branch 'master' into java-19Alexander Kriegisch2022-11-131-4/+21
| |\ | |/ |/|
* | Address upstream BCEL vulnerability CVE-2022-42920Alexander Kriegisch2022-11-131-4/+21
| | | | | | | | | | | | | | | | | | | | Fixes #192. See https://github.com/advisories/GHSA-97xg-phpr-rg8q. See https://issues.apache.org/jira/browse/BCEL-363. See https://github.com/apache/commons-bcel/pull/147. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
| * OutputSpec.matchesThisVm better supports version rangesAlexander Kriegisch2022-10-0512-293/+298
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | vmVersionRanges might be a single version like "9", a list of versions like "1.2,1.3,1.4,1.5", an equivalent range of "1.2-1.5", an open range like "-1.8", "9-" (equivalent to "9+") or a more complex list of ranges like "-1.6,9-11,13-14,17-" or "8,11,16+". Empty ranges like in "", " ", "8,,14", ",5", "6-," will be ignored. I.e., they will not yield a positive match. Bogus ranges like "9-11-14" will be ignored, too. Existing XML test specs using '<line text="..." vm="v,v2,...,vn"/> have been adjusted to use version ranges rather than long lists of consecutive versions. Furthermore, ranges with a trailing '+' like '14+' were replaced by using the new canonical format '14-', even though the parser still correctly recognises '14+'. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
| * LangUtil: improve Java version major/minor parsingAlexander Kriegisch2022-10-051-3/+4
| | | | | | | | | | | | | | - Ignore everything including and after '+' in versions like '19+36-2238' - Add minor '.0' to Java versions like '19', '19+36-2238' Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
| * Fix tests due to changed JDK 'toString' methods in Java 19Alexander Kriegisch2022-10-033-42/+51
| | | | | | | | Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
| * Add the first few Java 19 testsAlexander Kriegisch2022-10-0316-3/+770
| | | | | | | | | | | | | | | | | | | | For now, only the "pattern matching for switch" tests from previews 1 and 2 were adjusted to work in preview 3, because guarded patterns were replaced by 'when' clauses in 'switch' blocks. Therefore, existing test classes did not compile anymore and had to be replaced by syntactically upgraded versions with content merged from preview 1 and 2 classes. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
| * Deactivate Java 18 preview language feature testsAlexander Kriegisch2022-10-033-11/+14
| | | | | | | | | | | | and enable LangUtil to parse Java versions like '19+36-2238'. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
| * Remove Batik path entries from test classpathAlexander Kriegisch2022-10-031-7/+8
| | | | | | | | | | | | | | | | | | | | | | Firstly, Batik is not needed for running AspectJ tests. Secondly, the fixed Windows path separators led to GitHub CI/CD tests failing under Java 18+ on GitHub. Replacing ';' by 'File.pathSeparator' would have fixed the problem, but removing the paths altogether is the cleaner solution. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
| * Cosmetic fixes in Java 18 tests (e.g. copyright year 2022)Alexander Kriegisch2022-10-038-13/+9
| | | | | | | | Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
| * Do not run Java 18 preview feature tests with Java 19 JDT CoreAlexander Kriegisch2022-10-031-2/+2
| | | | | | | | Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
| * Bump ASM to 9.4, supporting Java 20 class filesAlexander Kriegisch2022-10-021-1/+1
| | | | | | | | | | | | | | Even though we just upgraded to 9.3 for Java 19, it does not hurt to have ASM recognise the Java 20 class file major version. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
| * Set Maven version to 1.9.19-SNAPSHOTAlexander Kriegisch2022-10-0228-29/+29
| | | | | | | | | | | | | | It makes sense to indicate the Java version in the minor-minor of AspectJ artifacts. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
| * Set Java 19 compiler version after JDT Core mergeAlexander Kriegisch2022-10-021-1/+1
| | | | | | | | | | | | | | In messages_aspectj.properties, set compiler.version to "Eclipse Compiler 5fd28398cc7aba (21Sep2022) - Java19". Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
| * First Java 19 version, barely tested.Alexander Kriegisch2022-10-015-10/+16
|/ | | | Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* Add docs/dist/LICENSE-AspectJ.html to all public artifactsAlexander Kriegisch2022-10-019-7/+65
| | | | | | | | | | | | | | The license file will be included right in the main directory of both binary and source artifacts for - AspectJ Matcher, - AspectJ Runtime, - AspectJ Weaver, - AspectJ Tools (Compiler), - AspectJ Installer. Fixes #185. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* vuln-fix: Partial Path Traversal VulnerabilityJonathan Leitschuh2022-09-102-2/+2
| | | | | | | | | | | | | | | | | | | | | | | This fixes a partial path traversal vulnerability. Replaces `dir.getCanonicalPath().startsWith(parent.getCanonicalPath())`, which is vulnerable to partial path traversal attacks, with the more secure `dir.getCanonicalFile().toPath().startsWith(parent.getCanonicalFile().toPath())`. To demonstrate this vulnerability, consider `"/usr/outnot".startsWith("/usr/out")`. The check is bypassed although `/outnot` is not under the `/out` directory. It's important to understand that the terminating slash may be removed when using various `String` representations of the `File` object. For example, on Linux, `println(new File("/var"))` will print `/var`, but `println(new File("/var", "/")` will print `/var/`; however, `println(new File("/var", "/").getCanonicalPath())` will print `/var`. Weakness: CWE-22: Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal') Severity: Medium CVSSS: 6.1 Detection: CodeQL & OpenRewrite (https://public.moderne.io/recipes/org.openrewrite.java.security.PartialPathTraversalVulnerability) Reported-by: Jonathan Leitschuh <Jonathan.Leitschuh@gmail.com> Signed-off-by: Jonathan Leitschuh <Jonathan.Leitschuh@gmail.com> Bug-tracker: https://github.com/JLLeitschuh/security-research/issues/13 Co-authored-by: Moderne <team@moderne.io>
* Improve condy (constant dynamic) supportAlexander Kriegisch2022-08-134-8/+34
| | | | | | Relates to #170. Fixes the "Unknown constant type 17" problem. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* CI build: upgrade from Java 18-EA to 18Alexander Kriegisch2022-07-031-2/+2
| | | | Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* Use System.lineSeparator() instead of hand-crafted methodAndrey Turbanov2022-04-211-17/+1
|
* Make IStateListener.aboutToCompareClasspaths use typed listsAlexander Kriegisch2022-04-184-5/+4
| | | | | | | | | | | | | | | | Before, the signature was: void aboutToCompareClasspaths( List oldClasspath, List newClasspath); Now it is: void aboutToCompareClasspaths( List<String> oldClasspath, List<String> newClasspath); AJDT will also use the typed version after generics refactoring. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* Cleanup redundant null check before instanceofAndrey Turbanov2022-04-178-11/+10
|
* Do not use String literal as synchronized lockAndrey Turbanov2022-04-151-1/+1
|
* Reduce 'Object' class usageAndrey Turbanov2022-04-1523-64/+53
|
* Fix suspicious Map.get callAndrey Turbanov2022-04-151-1/+1
|
* Merge pull request #155 from turbanoff/cleanup_redundant_castsAndy Clement2022-04-1250-112/+99
|\ | | | | Remove redundant casts after generics update
| * Remove redundant casts after generics updateAndrey Turbanov2022-04-1250-112/+99
|/
* Merge pull request #131 from turbanoff/use_generics_ajdt.coreAndy Clement2022-04-1121-59/+66
|\ | | | | Update 'org.aspectj.ajdt.core' code to use generics
| * Update 'org.aspectj.ajdt.core' code to use genericsAndrey Turbanov2022-02-2821-59/+66
| |
* | BcelWorld.reportMatch: handle 'kind.getName() == null' correctlyAlexander Kriegisch2022-04-101-5/+7
| | | | | | | | | | | | Fixes #153. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* | Make TypeSafeEnum immutableAlexander Kriegisch2022-04-101-4/+4
| | | | | | | | Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* | JavaVersionCompatibility.md: add link to "Java language changes since Java 9"Alexander Kriegisch2022-04-101-1/+6
| | | | | | | | | | https://docs.oracle.com/en/java/javase/18/language/java-language-changes.html Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* | Remove obsolete comments in POM mentioning GitHub PackagesAlexander Kriegisch2022-04-101-2/+0
| | | | | | | | Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* | Merge pull request #151 from eclipse/150-improve-ci-buildAlexander Kriegisch2022-04-021-1/+51
|\ \ | | | | | | Improve CI build: create docs, use Maven cache, attach artifacts
| * | CI build: attach main artifacts to buildAlexander Kriegisch2022-04-021-0/+27
| | | | | | | | | | | | | | | | | | Relates to #150. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
| * | CI build: create docs and attach them to buildAlexander Kriegisch2022-04-021-1/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In order to create the docs separately, running just a single module, add 'install' to the previous build step, so the 'docs' module can find the 'lib' dummy JAR in the local Maven repo. Relates to #150. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
| * | CI build: use Maven cacheAlexander Kriegisch2022-04-021-0/+12
|/ / | | | | | | | | | | Relates to #150. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* | Merge pull request #149 from eclipse/148-remove-aspectj-browserAlexander Kriegisch2022-04-0248-2898/+191
|\ \ | | | | | | Remove AspectJ Browser
| * | Remove AspectJ Browser (ajbrowser) code and documentationAlexander Kriegisch2022-04-0248-2898/+191
|/ / | | | | | | | | | | | | Closes #148. TODO: Should more AJDE stuff be removed? Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* | Delete unused directories org.aspectj.lib, shadows.org.eclipse.jdt.coreAlexander Kriegisch2022-04-0120-937/+0
| | | | | | | | | | | | | | | | | | | | I have not used those directories or any files inside them at all. I hope I am not taking away anything helpful from people who prefer working with inter-linked Eclipse projects instead of Maven, but I think we will notice if anyone complains and can revert in case of an emergency. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* | Remove Aspectj.dev artifact and plugin repositoriesAlexander Kriegisch2022-04-012-29/+2
| | | | | | | | | | | | | | | | | | | | | | After having removed the custom-built Maven Shade version, there should be no more references to artifacts in that repository left. Let us see if the build passes. Furthermore, since being a committer, I can also attach AspectJ installers to GitHub releases. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* | Bump Maven Shade Plugin to 3.3.0, add TODO to remove Flatten Maven PluginAlexander Kriegisch2022-04-011-7/+5
| | | | | | | | | | | | | | | | | | Fixed issues of concern include MSHADE-252, MSHADE-396, MSHADE-391. TODO: MSHADE-36 is in Maven Shade 3.3.0 -> it should be possible to include the dependency-reduced POM there directly. So maybe, we can rid of Flatten Maven Plugin. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* | Set version to 1.9.10-SNAPSHOTAlexander Kriegisch2022-03-3129-29/+29
| | | | | | | | Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* | Release AspectJ version 1.9.9.1V1_9_9_1Alexander Kriegisch2022-03-3129-29/+29
| | | | | | | | Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
* | Bump JDT Core to 1.9.9.1Alexander Kriegisch2022-03-311-1/+1
| | | | | | | | Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>