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:
- Install Atlassian SDK 9.0.2 from Atlassian Marketplace.
- Comment out unavailable
tmatesoft
repository inatlassian-plugin-sdk-9.0.2/apache-maven-3.9.8/conf/settings.xml
. See details. - 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
- 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
.