eclipse-aspectj / aspectj

Other
293 stars 84 forks source link

Support JDK 17 #79

Closed krzyk closed 3 years ago

krzyk commented 3 years ago

JDK17 is already in rampdown phase 2, RC will be available in 2 weeks, no major changes are planned, only P1 and P2 bugs.

I think it would be good to start supporting it, so it won't be any delay after the JDK release, so projects can upgrade on day 1.

kriegaex commented 3 years ago

Hello again. You could have mentioned, that we started talking about this in https://github.com/dev-aspectj/aspectj-maven-plugin/issues/22. Same question, same answer for now. Thanks for opening this issue, though. The AspectJ team will update you here, as soon as there is a development snapshot ready for test.

kriegaex commented 3 years ago

I have a first development version running on JDK 17-EA, see build report.

I also added Java-17-specific tests for the new preview feature JEP 406: Pattern Matching for switch. They do not pass yet with the latest Eclipse JDT Core from the BETA_JAVA17 branch, simply because the Eclipse compiler folks are still in the middle of development, see umbrella ticket Bugzilla #571398 and its sub-tickets.

Other than that, it is looking OK for now. I could upload a snapshot to Sonatype OSSRH (the snapshot repository for Maven Central) and also a corresponding AspectJ Maven version accepting the "17" source/target version. But I will only do so, if you are willing to test snapshot versions of both. How about that?

kriegaex commented 3 years ago

@aclement, currently I am pushing to my fork and starting builds (including 17-EA) manually, because I have not opened a PR for branch java-17 yet. If you would like to take a look and start reviewing, I can create one. I make that up to you for now.

BTW, with regard to the Jikes grammar, I am always happy to get everything running after the merge, but I am not confident at all that I did everything right. This statement also applies to 1.9.7. I cannot say that I spent time, trying to understand how to read/write language grammars. There might be oversights and bugs. Same goes for classes Scanner and Parser and their subclasses. In a way, I am always amazed that somehow I can make the test suite pass at all with some tweaks after each JDT Core merge, not fully understanding what I am doing.

kriegaex commented 3 years ago

FWIW, I just ran the Maven builds for both AspectJ and AspectJ Maven Plugin while drinking tea, deploying the snapshot artifacts on OSSRH. Please note, that you need to add snapshot repositories for both normal artifacts and plugins to your POM.

With this sample POM, you should be able to use snapshots for both AspectJ and AspectJ Maven:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>de.scrum-master</groupId>
  <artifactId>aj-maven-test-compiler-options</artifactId>
  <version>1.0-SNAPSHOT</version>

  <properties>
    <aspectj.version>1.9.8-SNAPSHOT</aspectj.version>
    <aspectj-maven.version>1.13-SNAPSHOT</aspectj-maven.version>
  </properties>

  <repositories>
    <!--
      Repeat Central definition from super POM https://maven.apache.org/ref/3.6.3/maven-model-builder/super-pom.html.
      Define it as the first repository to search at, otherwise Maven would always search any other repositories defined
      in the POM or in settings.xml first, slowing down the build, because most artifacts reside at Maven Central. See
      https://maven.apache.org/guides/mini/guide-multiple-repositories.html#repository-order for more details.
    -->
    <repository>
      <id>central</id>
      <name>Central Repository</name>
      <url>https://repo.maven.apache.org/maven2</url>
      <layout>default</layout>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
      <releases>
        <enabled>true</enabled>
        <updatePolicy>never</updatePolicy>
      </releases>
    </repository>
    <repository>
      <id>ossrh-snapshots</id>
      <name>Sonatype OSSRH snapshots</name>
      <url>https://oss.sonatype.org/content/repositories/snapshots</url>
      <layout>default</layout>
      <snapshots>
        <enabled>true</enabled>
        <updatePolicy>always</updatePolicy>
      </snapshots>
      <releases>
        <enabled>true</enabled>
        <updatePolicy>never</updatePolicy>
      </releases>
    </repository>
  </repositories>

  <pluginRepositories>
    <!--
      Repeat Central definition from super POM https://maven.apache.org/ref/3.6.3/maven-model-builder/super-pom.html.
      Define it as the first repository to search at, otherwise Maven would always search any other repositories defined
      in the POM or in settings.xml first, slowing down the build, because most artifacts reside at Maven Central. See
      https://maven.apache.org/guides/mini/guide-multiple-repositories.html#repository-order for more details.
    -->
    <pluginRepository>
      <id>central</id>
      <name>Central Repository</name>
      <url>https://repo.maven.apache.org/maven2</url>
      <layout>default</layout>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
      <releases>
        <enabled>true</enabled>
        <updatePolicy>never</updatePolicy>
      </releases>
    </pluginRepository>
    <pluginRepository>
      <id>ossrh-snapshots</id>
      <name>Sonatype OSSRH snapshots</name>
      <url>https://oss.sonatype.org/content/repositories/snapshots</url>
      <layout>default</layout>
      <snapshots>
        <enabled>true</enabled>
        <updatePolicy>always</updatePolicy>
      </snapshots>
      <releases>
        <enabled>false</enabled>
      </releases>
    </pluginRepository>
  </pluginRepositories>

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.8.1</version>
        <!-- Let the AspectJ compiler do the work -->
        <executions>
          <execution>
            <id>default-compile</id>
            <phase>none</phase>
          </execution>
          <execution>
            <id>default-testCompile</id>
            <phase>none</phase>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>dev.aspectj</groupId>
        <artifactId>aspectj-maven-plugin</artifactId>
        <version>${aspectj-maven.version}</version>
        <executions>
          <execution>
            <goals>
              <goal>test-compile</goal>
              <goal>compile</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <showWeaveInfo>true</showWeaveInfo>
          <verbose>true</verbose>
          <complianceLevel>17</complianceLevel>
          <!-- Set to true in order to compile with preview features -->
          <enablePreview>false</enablePreview>
        </configuration>
        <dependencies>
          <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjtools</artifactId>
            <version>${aspectj.version}</version>
          </dependency>
        </dependencies>
      </plugin>
    </plugins>
  </build>

  <dependencies>
    <dependency>
      <groupId>org.aspectj</groupId>
      <artifactId>aspectjrt</artifactId>
      <version>${aspectj.version}</version>
    </dependency>
  </dependencies>

</project>

I verified that using that POM, the resulting byte code was class file version 61.0, e.g. Java 17. If you want to use any JEP 406 preview stuff - at your own risk, because Eclipse is not done with it yet, see above - you need to set --enable-preview for both compilation and code execution. For compilation, my version of AspectJ Maven has a new enablePreview option. Please also note that I made the plugin a bit smarter than before with regard to language level options, see AspectJ Maven commit #d3e5108e for details.

kriegaex commented 3 years ago

Update: I have created AspectJ Maven Plugin final release 1.13, which I wanted to do for a while already, sinced AspectJ 1.9.7 and then 1.9.8.M1 were released. So now you no longer need so many snapshot repositories in your POM, only the one for AspectJ, no longer the ones for the plugin. You can simplify your POM to:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>de.scrum-master</groupId>
  <artifactId>aj-maven-test-compiler-options</artifactId>
  <version>1.0-SNAPSHOT</version>

  <properties>
    <aspectj.version>1.9.8-SNAPSHOT</aspectj.version>
    <aspectj-maven.version>1.13</aspectj-maven.version>
  </properties>

  <repositories>
    <!--
      Repeat Central definition from super POM https://maven.apache.org/ref/3.6.3/maven-model-builder/super-pom.html.
      Define it as the first repository to search at, otherwise Maven would always search any other repositories defined
      in the POM or in settings.xml first, slowing down the build, because most artifacts reside at Maven Central. See
      https://maven.apache.org/guides/mini/guide-multiple-repositories.html#repository-order for more details.
    -->
    <repository>
      <id>central</id>
      <name>Central Repository</name>
      <url>https://repo.maven.apache.org/maven2</url>
      <layout>default</layout>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
      <releases>
        <enabled>true</enabled>
        <updatePolicy>never</updatePolicy>
      </releases>
    </repository>
    <repository>
      <id>ossrh-snapshots</id>
      <name>Sonatype OSSRH snapshots</name>
      <url>https://oss.sonatype.org/content/repositories/snapshots</url>
      <layout>default</layout>
      <snapshots>
        <enabled>true</enabled>
        <updatePolicy>always</updatePolicy>
      </snapshots>
      <releases>
        <enabled>false</enabled>
      </releases>
    </repository>
  </repositories>

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.8.1</version>
        <!-- Let the AspectJ compiler do the work -->
        <executions>
          <execution>
            <id>default-compile</id>
            <phase>none</phase>
          </execution>
          <execution>
            <id>default-testCompile</id>
            <phase>none</phase>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>dev.aspectj</groupId>
        <artifactId>aspectj-maven-plugin</artifactId>
        <version>${aspectj-maven.version}</version>
        <executions>
          <execution>
            <goals>
              <goal>test-compile</goal>
              <goal>compile</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <showWeaveInfo>true</showWeaveInfo>
          <verbose>true</verbose>
          <complianceLevel>17</complianceLevel>
          <!-- Set to true in order to compile with preview features -->
          <enablePreview>false</enablePreview>
        </configuration>
        <dependencies>
          <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjtools</artifactId>
            <version>${aspectj.version}</version>
          </dependency>
        </dependencies>
      </plugin>
    </plugins>
  </build>

  <dependencies>
    <dependency>
      <groupId>org.aspectj</groupId>
      <artifactId>aspectjrt</artifactId>
      <version>${aspectj.version}</version>
    </dependency>
  </dependencies>

</project>
jcsf commented 3 years ago

Hi, I tested this in a project with JDK 17 but the tests that use AspectJ are failing. It seems that the method calls are not being intercepted as they were previously. Any idea?

kriegaex commented 3 years ago

I cannot extract any useful information from your message. Please provide a sample project and instructions how to build it and how to reproduce your problem.

jcsf commented 3 years ago

Sorry for the delay reply. I can't share the code because it is confidential from my company. But imagine the following example:

@Aspect
public class RunCallableRegisterAspect extends RunCallableAspect {

    @Pointcut("call(* java.nio.file.Path.register(..))")
    @Override
    public void pointCutCall() {}
}

This is expected to intercept the calls to Path.register(...). While in Java 8 and 11 it works perfectly, on Java 17 it isn't working. We then have another Aspect that intercepts the calls to pointCutCall() to perform some validations.

jcsf commented 3 years ago

I found these logs in the compiler:

[WARNING] advice defined in *.*.aspect.RunCallableAspect has not been applied [Xlint:adviceDidNotMatch]
[WARNING] advice defined in *.*.aspect.RunCallableAspect has not been applied [Xlint:adviceDidNotMatch]
[WARNING] advice defined in *.*.aspect.RunCallableAddSnapshotAspect has not been applied [Xlint:adviceDidNotMatch]
kriegaex commented 3 years ago

Sorry for the delay reply. I can't share the code because it is confidential from my company.

Please forgive me for being so blunt, but that is a lame excuse unworthy of a software developer. I did not ask for your confidential, original code, but for a minimal version of it, reproducing the problem. Please learn what an MCVE is. I cannot debug what I cannot see. You want help? Please contribute by being part of the solution, not part of the problem.

I tried your incomplete code snippet, creating a base aspect with an advice and a sample application calling Path.register(..). It works beautifully on JDK 17. So please understand that unless you make the problem reproducible, I cannot take your problem report very seriously. If something is wrong with AspectJ and the problem is not sitting in front of the computer, I need some more proof. Thanks very much in advance. 🙂

jcsf commented 3 years ago

Was able to fix the issue, by reverting all the changes that I did to support Java 17 and just upgrading the aspectj version to one compiled from your branch. Thanks for the assistance.

martinaldrin commented 3 years ago

I testing Java 17 with aspectj version 1.9.8.M1 together with aspectj maven plugin 1.13 groupid dev.aspectj I don't fully understand the error message

I have also posted the same issue here: https://github.com/mojohaus/aspectj-maven-plugin/issues/113

[INFO] ------------------------------------------------------------------------ [ERROR] Failed to execute goal dev.aspectj:aspectj-maven-plugin:1.13:compile (compile_with_aspectj) on project x: AJC compiler errors: [ERROR] error unrecognized single argument: "-17" [ERROR] error no sources specified [ERROR] [ERROR] -> [Help 1] org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal dev.aspectj:aspectj-maven-plugin:1.13:compile (compile_with_aspectj) on project x: AJC compiler errors: error unrecognized single argument: "-17" error no sources specified at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:215) at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156) at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81) at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56) at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128) at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305) at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192) at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105) at org.apache.maven.cli.MavenCli.execute (MavenCli.java:972) at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:293) at org.apache.maven.cli.MavenCli.main (MavenCli.java:196) at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method) at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:77) at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke (Method.java:568) at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282) at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225) at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406) at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347) Caused by: org.codehaus.mojo.aspectj.CompilationFailedException: AJC compiler errors: error unrecognized single argument: "-17" error no sources specified at org.codehaus.mojo.aspectj.CompilationFailedException.create (CompilationFailedException.java:35) at org.codehaus.mojo.aspectj.AbstractAjcCompiler.execute (AbstractAjcCompiler.java:625) at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137) at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:210) at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156) at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81) at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56) at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128) at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305) at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192) at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105) at org.apache.maven.cli.MavenCli.execute (MavenCli.java:972) at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:293) at org.apache.maven.cli.MavenCli.main (MavenCli.java:196) at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method) at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:77) at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke (Method.java:568) at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282) at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225) at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406) at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347) [ERROR] [ERROR] [ERROR] For more information about the errors and possible solutions, please read the following articles: [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException [ERROR] [ERROR] After correcting the problems, you can resume the build with the command [ERROR] mvn -rf :x MojoExecutionException - Apache Maven - Apache Software Foundation

krzyk commented 3 years ago

@martinaldrin 1.9.8M1 doesn't support JDK 17, you need to wait for newer version

kriegaex commented 3 years ago

@martinaldrin, don't just post here without reading what was written before. That is not helpful and just spamming the issue. Was anything unclean about the 3 comments I posted on July 28th, beginning with https://github.com/eclipse/org.aspectj/issues/79#issuecomment-888003152?

BTW, if you post code, build logs or other console output, please use code formatting. Thank you very much.

kriegaex commented 3 years ago

To everyone: Since lately Eclipse 4.21 (still without Java 17 support out of the box!) and and and extra package for Java 17 support (on the Eclipse Marketplace) were published, I was way too busy to upgrade the developer version published on July 28th, refreshing final JDK 17 support in the compiler from ECJ. Whenever I have time to do that, I can publish a release candidate or even a final release, if @aclement agrees and has time for that, because he is the official maintainer and has to take care of all the Eclipse bureaucracy. Sorry for not having done it yet, but like I said, I was and still am quite busy at present.

kriegaex commented 3 years ago

Release candidate 1.9.8.RC1 is available on Maven Central.

The corresponding installer is available on AspectJ.dev.

Preliminary release notes are here.

To everyone: Please test it in as many projects as possible. Your feedback is welcome.

kriegaex commented 3 years ago

Due to the newly published release candidate, you no longer need to depend on a snapshot version and on snapshot repositories, i.e. your Maven configuration gets simpler again:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>de.scrum-master</groupId>
  <artifactId>aj-maven-test-compiler-options</artifactId>
  <version>1.0-SNAPSHOT</version>

  <properties>
    <aspectj.version>1.9.8.RC1</aspectj.version>
    <aspectj-maven.version>1.13</aspectj-maven.version>
  </properties>

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.8.1</version>
        <!-- Let the AspectJ compiler do the work -->
        <executions>
          <execution>
            <id>default-compile</id>
            <phase>none</phase>
          </execution>
          <execution>
            <id>default-testCompile</id>
            <phase>none</phase>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>dev.aspectj</groupId>
        <artifactId>aspectj-maven-plugin</artifactId>
        <version>${aspectj-maven.version}</version>
        <executions>
          <execution>
            <goals>
              <goal>test-compile</goal>
              <goal>compile</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <showWeaveInfo>true</showWeaveInfo>
          <verbose>true</verbose>
          <complianceLevel>17</complianceLevel>
          <!-- Set to true in order to compile with preview features -->
          <enablePreview>false</enablePreview>
        </configuration>
        <dependencies>
          <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjtools</artifactId>
            <version>${aspectj.version}</version>
          </dependency>
        </dependencies>
      </plugin>
    </plugins>
  </build>

  <dependencies>
    <dependency>
      <groupId>org.aspectj</groupId>
      <artifactId>aspectjrt</artifactId>
      <version>${aspectj.version}</version>
    </dependency>
  </dependencies>

</project>

Please note: The Eclipse Java Compiler (ECJ) 3.2.7 supporting Java 17 now needs JDK 11+ as a build environment, because Eclipse migrated the code base to Java 11. Because the AspectJ Compiler (AJC) is an ECJ fork, using a Java-17-enabled AJC version (1.9.8.RC1 and higher) also means that you need to run your Maven build on JDK 11+. You can still compile to goals as low as Java 1.3, don't worry. It is only about the build environment.

kriegaex commented 2 years ago

Another update: I released AspectJ Maven Plugin 1.13.1 which depends on org.aspectj:aspectjtools:1.9.8.RC1 by default.

kriegaex commented 2 years ago

Please also note the upstream bugfix for JDT Core (Eclipse Java Compiler) contained in 1.9.8.RC2. See https://github.com/eclipse/org.aspectj/issues/95.

arturmkr commented 2 years ago

@kriegaex , could you please tell, when is going to be stable release of 1.9.8?

kriegaex commented 2 years ago

I recommend to use 1.9.8.RC3. For all intents and purposes, it is stable, and it is on Maven Central.

Background information

The thing is that while I can publish releases to Maven Central (where you can also find RC3), I am not allowed to do official Eclipse releases (AspectJ being an Eclipse project and me not having been made an official committer). Project lead Andy Clement is very, very busy and has been for a long time. Lately, I have been the only active contributor to the project, except for some recent code clean-up PRs by another nice guy.

Even if I had the privilege to create Eclipse releases, it usually is a hassle to do so, because releases entail internal code reviews and other procedural steps which neither Andy nor me have time for. This is also the main reason why we keep enumerating minor-minor 1.9.x releases instead of, say, naming the next release 1.17 or even 17, following the supported JDK version. Why? Because a minor-minor version number change entails less ceremony at Eclipse than a minor or even major version number change. We simply cannot afford to spend so much time on these things, the team is too small in order to fulfill all the procedural requirements which in theory make a lot of sense, because they ensure standardisation and quality in Eclipse projects.

mpern commented 2 years ago

Any chance we can get 1.9.8 (non RC) released in the next few months?

kriegaex commented 2 years ago

Release 1.9.8 is out, see also #121 and the release announcement I sent to the AspectJ users mailing list. Quote:

Dear AspectJ users,

we have just released 1.9.8 (yes, finally). It is available on Maven Central already. The AspectJ installer can be found on Aspectj.dev.

For more information, please read the release notes.

See AspectJ GitHub issue #95 for more information and for an example project showing how to upgrade to the latest AspectJ version when using dev.aspectj:aspectj-maven-plugin:1.13.1.

Enjoy AspectJ!

The AspectJ team