Which AMPS version to use?

Thanks to @mkemp , Finally, I configured the working plugin toolset for Jira 9.12.x LTS and Confluence 8.5.x LTS and all wired+web-integration tests passed.

How to do it:

  1. Install Atlassian SDK 9.0.2 from Atlassian Marketplace.
  2. Comment out unavailable tmatesoft repository in atlassian-plugin-sdk-9.0.2/apache-maven-3.9.8/conf/settings.xml. See details.
  3. Don’t use the default DevToolbox:
    • Jira 9.12.x LTS works only with the old developer-toolbox-plugin-3.0.3. Newer versions 3.0.4+ fail to start up and throw error mentioned in my previous comment.
    • Confluence 8.5.x LTS works fine even with the latest developer-toolbox-plugin-3.1.0
  4. Configure your dependencies and plugins like in the following example:
<properties>
    <jira.version>9.12.12</jira.version>
    <confluence.version>8.5.11</confluence.version>
    <amps.version>8.17.1</amps.version>
    <jiraDevToolboxVersion>3.0.3</jiraDevToolboxVersion>
    <confluenceDevToolboxVersion>3.1.0</confluenceDevToolboxVersion>
    
    <atlassian-plugins-osgi-bridge.version>7.1.9</atlassian-plugins-osgi-bridge.version>
    <osgi.javaconfig.version>0.6.0</osgi.javaconfig.version>
    <jsr311api.version>1.1.1</jsr311api.version>
    <jackson.version>1.9.14-atlassian-6</jackson.version>
    <testrunner.version>2.0.5</testrunner.version>
    <junit.version>4.13.2</junit.version>
    <felix.version>7.0.5</felix.version>
    <spring.version>5.3.34</spring.version>
    <gson.version>2.10.1</gson.version>

    <!-- Java 17 workaround for some Maven plugins -->
    <!-- See for details: https://confluence.atlassian.com/jiracore/java-17-runtime-opens-and- exports-arguments-1188413810.html -->
    <jvm17.opens />
</properties>

<dependencies>
    <!-- Spring Java Config -->
    <dependency>
        <groupId>com.atlassian.plugins</groupId>
        <artifactId>atlassian-plugins-osgi-javaconfig</artifactId>
        <version>${osgi.javaconfig.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.felix</groupId>
        <artifactId>org.apache.felix.framework</artifactId>
        <version>${felix.version}</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-beans</artifactId>
        <version>${spring.version}</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>${spring.version}</version>
        <scope>provided</scope>
    </dependency>
    
    <dependency>
        <groupId>com.atlassian.plugins</groupId>
        <artifactId>atlassian-plugins-osgi-bridge</artifactId>
        <version>${atlassian-plugins-osgi-bridge.version}</version>
        <scope>provided</scope>
    </dependency>

    <!-- TestRunner -->
    <dependency>
        <groupId>com.atlassian.plugins</groupId>
        <artifactId>atlassian-plugins-osgi-testrunner</artifactId>
        <version>${testrunner.version}</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>javax.ws.rs</groupId>
        <artifactId>jsr311-api</artifactId>
        <version>${jsr311api.version}</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>com.google.code.gson</groupId>
        <artifactId>gson</artifactId>
        <version>${gson.version}</version>
        <scope>provided</scope>
    </dependency>

    <!-- Testing -->
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>${junit.version}</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-test</artifactId>
        <version>${spring.version}</version>
        <scope>test</scope>
    </dependency>
</dependencies>

<build>
  <pluginManagement>
    <!-- Add it only to your plugin for Jira pom file-->
    <plugin>
      <groupId>com.atlassian.maven.plugins</groupId>
      <artifactId>jira-maven-plugin</artifactId>
      <version>${amps.version}</version>
        <extensions>true</extensions>
        <configuration>
          <devToolboxVersion>${jiraDevToolboxVersion}</devToolboxVersion>
          ...
        </configuration>
    </plugin>
    <!-- Add it only to your plugin for Confluence pom file -->
    <plugin>
      <groupId>com.atlassian.maven.plugins</groupId>
      <artifactId>confluence-maven-plugin</artifactId>
      <version>${amps.version}</version>
        <extensions>true</extensions>
        <configuration>
          <devToolboxVersion>${confluenceDevToolboxVersion}</devToolboxVersion>
          ...
        </configuration>
    </plugin>
  </pluginManagement>
</build>

<profiles>
    <!-- Java 17 workaround for some Maven plugins -->
    <!-- See for details: https://confluence.atlassian.com/jiracore/java-17-runtime-opens-and-exports-arguments-1188413810.html -->
    <profile>
        <id>jvm17</id>
        <activation>
            <jdk>17</jdk>
        </activation>
        <properties>
            <jvm17.opens>
                --add-opens=java.base/sun.nio.cs=ALL-UNNAMED
                --add-opens=java.base/java.nio.charset=ALL-UNNAMED
                --add-opens=java.base/java.lang.ref=ALL-UNNAMED
                --add-opens=java.base/java.lang=ALL-UNNAMED
                --add-opens=java.base/java.lang.reflect=ALL-UNNAMED
                --add-opens=java.base/java.util=ALL-UNNAMED
                --add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED
                --add-opens=java.base/java.io=ALL-UNNAMED
                --add-opens=java.management/javax.management=ALL-UNNAMED
                --add-opens=java.desktop/sun.font=ALL-UNNAMED
                --add-opens=java.base/sun.reflect.generics.parser=ALL-UNNAMED
                --add-opens=jdk.management/com.sun.management.internal=ALL-UNNAMED
                --add-opens=java.base/java.time=ALL-UNNAMED
                --add-exports=java.base/sun.util.calendar=ALL-UNNAMED
                --add-exports=java.base/sun.security.action=ALL-UNNAMED
                --add-exports=java.xml/jdk.xml.internal=ALL-UNNAMED
            </jvm17.opens>
        </properties>
        <build>
            <pluginManagement>
                <plugins>
                    <!-- Workaround to avoid InaccessibleObjectException when running `integration-test` and `remote-test` in console -->
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-failsafe-plugin</artifactId>
                        <version>2.22.2</version>
                        <configuration>
                            <argLine>${jvm17.opens}</argLine>
                        </configuration>
                    </plugin>
                </plugins>
            </pluginManagement>
        </build>
    </profile>
</profiles>

P.S. Java 17 workaround is still needed to open --add-opens=java.base/java.lang=ALL-UNNAMED and possibly some other packages for atlas-mvn _product_:remote-test.