]> source.dussan.org Git - aspectj.git/commitdiff
Add 'AspectJ_JDK_Update' hint in various places
authorAlexander Kriegisch <Alexander@Kriegisch.name>
Mon, 19 Feb 2024 02:41:18 +0000 (09:41 +0700)
committerAlexander Kriegisch <Alexander@Kriegisch.name>
Mon, 19 Feb 2024 02:43:36 +0000 (09:43 +0700)
The hint is meant to help AspectJ developers identify the places where
there are to-dos for releases supporting new Java versions. This is work
in progress, new tags can be added wherever necessary in the future. But
for now, the most important places should be covered:

 - AJC version string
 - Test infrastructure (test suites, classes and XML files)
 - BCEL class file version MAJOR_*, MINOR_* constants
 - AjcTask constants for compiler source, target, release
 - LangUtil::is*VMOrGreater methods
 - ASM and JDT Core dependency versions
 - CI workflow file
 - Release notes

The to-do to check the tagged places is also mentioned in RELEASE.md.

Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
.github/workflows/maven.yml
bcel-builder/src/main/java/org/aspectj/apache/bcel/Constants.java
docs/developer/RELEASE.md
docs/release/README-1.9.21.adoc
org.aspectj.ajdt.core/src/main/resources/org/aspectj/org/eclipse/jdt/internal/compiler/batch/messages_aspectj.properties
pom.xml
taskdefs/src/main/java/org/aspectj/tools/ant/taskdefs/AjcTask.java
testing/src/test/java/org/aspectj/testing/XMLBasedAjcTestCaseForJava21Only.java
tests/src/test/java/org/aspectj/systemtest/AllTests19.java
tests/src/test/java/org/aspectj/systemtest/ajc1921/AllTestsAspectJ1921.java
util/src/main/java/org/aspectj/util/LangUtil.java

index 159359d9ea9b53c3fa1fd431d71d5095fc2ab376..4bc10c4a7c172052efe92c99cbeb3642e23f78f8 100644 (file)
@@ -22,6 +22,7 @@ jobs:
     strategy:
       fail-fast: false
       matrix:
+        # AspectJ_JDK_Update
         # Check for available Temurin releases on https://adoptium.net/releases.html
         java: [ 17, 21 ]
 
index 14e6a7f294ec76b4b90c49e352d86a90524443a1..5b96bb6d121e98b94fdd32ab17222c74463d96c4 100644 (file)
@@ -106,6 +106,7 @@ public interface Constants {
        short MINOR_20 = 0;
        short MAJOR_21 = 65;
        short MINOR_21 = 0;
+       // AspectJ_JDK_Update
 //     short MAJOR_22 = 66;
 //     short MINOR_22 = 0;
 
index 69db8a0f5238372e679fc03919b7739ab7d58b4b..40e94223398997691e660e3bc73be421d386fd1e 100644 (file)
@@ -73,6 +73,10 @@ manual versioning process without using Maven Release plugin. It might work usin
   - committing the snapshot POMs,
   - pushing the previous commits and the release tag to the upstream Git repository.
 
+If the AspectJ release also includes support for a new Java version, then before releasing AspectJ, search for the
+term `AspectJ_JDK_Update` across all files in the code base, also non-Java ones. Check, that you have not forgotten to
+add any necessary infrastructure or to increment version numbers as appropriate.  
+
 In order to show the details and give you more control over the process, you can do it step by step as follows:
 
 ```shell
index 5179cb0daebb66ad39a34ad07ae7a0dde9d33f17..de94479372bd8ddadc3a466eec27ce4373702366 100644 (file)
@@ -2,6 +2,9 @@
 :doctype: book
 :leveloffset: +1
 
+// AspectJ_JDK_Update: Each a.b.c release needs a new release notes document. For a.b.c.d minors, the existing a.b.c
+// document can be updated. After copying this document, remove the comment from the previous one.
+
 The releases 1.9.21 and 1.9.21.1 are described together in this document.
 
 = AspectJ 1.9.21.1
index 0a4d93e62d59834087c7419a4d573a659c920c6a..be66883e8435e2fa48973148dcfb0c1bc0e39540 100644 (file)
@@ -1,4 +1,6 @@
 compiler.name = AspectJ Compiler
+# AspectJ_JDK_Update: Update not only for new Java versions, but each time JDT Core is updated with an upstream merge.
+# Always make sure to update to the latest merge commit ID and date of the latest upstream commit.
 compiler.version = Eclipse Compiler 8398f6c1210ec3 (13Feb2024) - Java21
 compiler.copyright =
 
diff --git a/pom.xml b/pom.xml
index e5fb0180cd9528fcddddcd25a75e13b5d30e9a3e..cf84a47c9499f929788ad0f47fc5c55537be1108 100644 (file)
--- a/pom.xml
+++ b/pom.xml
@@ -27,8 +27,8 @@
                <maven.javadoc.skip>true</maven.javadoc.skip>
 
                <!-- Dependency versions -->
-               <jdt.core.version>1.9.21.1</jdt.core.version>
-               <asm.version>9.6</asm.version>
+               <jdt.core.version>1.9.21.1</jdt.core.version> <!-- AspectJ_JDK_Update -->
+               <asm.version>9.6</asm.version> <!-- AspectJ_JDK_Update -->
                <lib.ant.version>1.6.3</lib.ant.version>
                <lib.ant.xerces.version>2.6.2</lib.ant.xerces.version>
                <lib.regexp.version>1.2</lib.regexp.version>
index ab99fd670f1454146d1c4a8c521f0151807d214d..0737127f91e9ca1c7144be341b2d1e9c55157e6d 100644 (file)
@@ -250,14 +250,17 @@ public class AjcTask extends MatchingTask {
 
        public static final String COMMAND_EDITOR_NAME = AjcTask.class.getName() + ".COMMAND_EDITOR";
 
+       // AspectJ_JDK_Update
        static final String[] TARGET_INPUTS = new String[] {
                "1.1", "1.2", "1.3", "1.4", "1.5", "1.6", "1.7", "1.8", "1.9", "9",
                "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21"
        };
+       // AspectJ_JDK_Update
        static final String[] SOURCE_INPUTS = new String[] {
                "1.3", "1.4", "1.5", "1.6", "1.7", "1.8", "1.9", "9",
                "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21"
        };
+       // AspectJ_JDK_Update
        static final String[] COMPLIANCE_INPUTS = new String[] {
                "-1.3", "-1.4", "-1.5", "-1.6", "-1.7", "-1.8", "-1.9", "-9",
                "-10", "-11", "-12", "-13", "-14", "-15", "-16", "-17", "-18", "-19", "-20", "-21"
index fb6795b3daca91a3ca89c92c7d957120ddc62071..2c582c1068ba7b625427794bf68ac393ebef50c4 100644 (file)
@@ -19,6 +19,7 @@ public abstract class XMLBasedAjcTestCaseForJava21Only extends XMLBasedAjcTestCa
 
        @Override
        public void setUp() throws Exception {
+               // AspectJ_JDK_Update
                // Activate this block after upgrading to JDT Core Java 22
                /*
                throw new IllegalStateException(
@@ -27,6 +28,7 @@ public abstract class XMLBasedAjcTestCaseForJava21Only extends XMLBasedAjcTestCa
                                "This compiler does not support preview features of a previous version anymore."
                );
                */
+               // AspectJ_JDK_Update
                // Activate this block before upgrading to JDT Core Java 22
                if (!LangUtil.is21VMOrGreater() || LangUtil.is22VMOrGreater()) {
                        throw new IllegalStateException(
index dee55718c6aefa6c84d7ff32bf2749b74336e977..665569ec7f177efa84ab02d4728c10341caa749f 100644 (file)
@@ -43,6 +43,7 @@ public class AllTests19 {
                suite.addTest(AllTestsAspectJ199.suite());
                suite.addTest(AllTestsAspectJ1919.suite());
                suite.addTest(AllTestsAspectJ1920.suite());
+               // AspectJ_JDK_Update
                suite.addTest(AllTestsAspectJ1921.suite());
                suite.addTest(AllTests18.suite());
                // $JUnit-END$
index 773ac90378986f5953b727a9140810a6e442acce..30b6728f1769b5d1775a5bc80b0350f8a75a3a30 100644 (file)
@@ -11,6 +11,18 @@ import junit.framework.Test;
 import junit.framework.TestSuite;
 import org.aspectj.util.LangUtil;
 
+// AspectJ_JDK_Update
+//  - Copy 'ajc*' package with all classes to a new package, incrementing the version number in the package
+//  - Rename all classes, incrementing version numbers
+//  - Add this class to the suite in class AllTests19
+//  - Increment version numbers in strings, method calls and constants to the appropriate values, creating necessary
+//    methods and constants classes providing them, if they do not exist yet
+//  - Also increment references to 'ajc*.xml' and 'sanity-tests-*.xml' test definition, copying the previous
+//    tests/src/test/resources/org/aspectj/systemtest/ajc* directory, incrementing all names and adjusting the XML
+//    file contents appropriately
+//  - Search for other 'AspectJ_JDK_Update' hints in the repository, also performing the necessary to-dos there
+//  - Remove this comment from the previous class version after copying this one
+
 /**
  * @author Alexander Kriegisch
  */
@@ -23,6 +35,7 @@ public class AllTestsAspectJ1921 {
                        suite.addTest(SanityTestsJava21.suite());
                        suite.addTest(Ajc1921TestsJava.suite());
                }
+               // AspectJ_JDK_Update
                // Do not run tests using a previous compiler's preview features anymore. They would all fail.
                // TODO: Comment out the following block when upgrading JDT Core to Java 22
                if (LangUtil.is21VMOrGreater() && !LangUtil.is22VMOrGreater()) {
index 2e7af3c397ed5f1a3dd26d88329c62087db2ff4b..9db8f629b5fb30a09940a1ef0d64f2aab17cb469 100644 (file)
@@ -191,6 +191,7 @@ public class LangUtil {
                return 21 <= vmVersion;
        }
 
+       // AspectJ_JDK_Update
        public static boolean is22VMOrGreater() {
                return 22 <= vmVersion;
        }