Hello,
We have several custom plugins running in our Jira instance, and since we upgraded to version 10.3.7, they’ve stopped working.
I followed the official upgrade documentation and saw that several deprecated classes and methods were removed. I updated the code accordingly based on this page:
After that, I ran into new issues - some classes were no longer available. I reviewed the pom.xml and realized some dependencies were still relying on those deprecated elements. I updated them to versions that no longer do.
The plugin now compiles, packages, and installs without any errors. But unfortunately, it still doesn’t respond at all. One of them is a listener that should trigger on events, but nothing happens - no logs, no stack traces, nothing to work with.
Thinking it might be a dependency issue or a version mismatch, I removed all version tags from the dependencies and switched to using the recommended BOM from the March 27, 2024 update here:
Here’s the pom.xml :
<?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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example.atlassian.jira.plugin</groupId>
<artifactId>listener.com.example</artifactId>
<version>10.3.0</version>
<organization>
<name>Example</name>
<url>https://www.example.com/</url>
</organization>
<name>listener.com.example</name>
<description>This is the com.example.atlassian.jira.plugin:listener.com.example plugin for Atlassian JIRA.</description>
<packaging>atlassian-plugin</packaging>
<properties>
<jira.version>10.3.6</jira.version>
<amps.version>9.4.0</amps.version>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<atlassian.spring.scanner.version>5.1.0</atlassian.spring.scanner.version>
<atlassian.plugin.key>${project.groupId}.${project.artifactId}</atlassian.plugin.key>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.atlassian.jira</groupId>
<artifactId>jira-api-bom</artifactId>
<version>${jira.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>com.atlassian.jira</groupId>
<artifactId>jira-deprecated-api-bom</artifactId>
<version>${jira.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<!-- Atlassian Dependencies -->
<dependency>
<groupId>com.atlassian.jira</groupId>
<artifactId>jira-api</artifactId>
<version>${jira.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.atlassian.plugin</groupId>
<artifactId>atlassian-spring-scanner-annotation</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.atlassian.plugin</groupId>
<artifactId>atlassian-spring-scanner-runtime</artifactId>
<version>${atlassian.spring.scanner.version}</version>
<scope>runtime</scope>
</dependency>
<!-- Third-Party Dependencies -->
<dependency>
<groupId>jakarta.inject</groupId>
<artifactId>jakarta.inject-api</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>jakarta.ws.rs </groupId>
<artifactId>jakarta.ws.rs-api</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<plugins>
<!-- AMPS Plugin -->
<plugin>
<groupId>com.atlassian.maven.plugins</groupId>
<artifactId>jira-maven-plugin</artifactId>
<version>${amps.version}</version>
<extensions>true</extensions>
<configuration>
<log4jProperties>src/aps/log4j.properties</log4jProperties>
<applications>
<application>
<applicationKey>jira-software</applicationKey>
<version>${jira.version}</version>
</application>
</applications>
<productVersion>${jira.version}</productVersion>
<productDataVersion>${jira.version}</productDataVersion>
<enableQuickReload>true</enableQuickReload>
<enableFastdev>false</enableFastdev>
<instructions>
<Atlassian-Plugin-Key>${atlassian.plugin.key}</Atlassian-Plugin-Key>
<Import-Package>
org.eclipse.gemini.blueprint.*;resolution:="optional",
*
</Import-Package>
<Spring-Context>*</Spring-Context>
</instructions>
</configuration>
</plugin>
<!-- Spring Scanner Plugin -->
<plugin>
<groupId>com.atlassian.plugin</groupId>
<artifactId>atlassian-spring-scanner-maven-plugin</artifactId>
<version>${atlassian.spring.scanner.version}</version>
<executions>
<execution>
<phase>process-classes</phase>
<goals>
<goal>atlassian-spring-scanner</goal>
</goals>
</execution>
</executions>
<configuration>
<scannedDependencies>
<dependency>
<groupId>com.atlassian.plugin</groupId>
<artifactId>atlassian-spring-scanner-external-jar</artifactId>
</dependency>
</scannedDependencies>
<verbose>false</verbose>
</configuration>
</plugin>
</plugins>
</build>
</project>
So now everything should be aligned with Jira 10.3.7 - but the plugin still doesn’t react.
To make debugging easier, I even created a new plugin from scratch using the Atlassian Plugin SDK:
I know it’s marked as obsolete, but I saw in a few threads that it’s still okay to use. Just wanted to confirm if that’s the case?
Anyway, same result - the plugin installs but doesn’t do anything.
Am I missing something here?
Is there a way to verify if the plugin is actually active and properly registered?
I’m out of ideas at this point and would really appreciate any help or guidance you can provide.
Thanks in advance,
Khalil