Upgrade Plugin from 9.7.x to 10.3.x

Below is my pom.xml file. I’m tyring to get it to work on Jira Data Center 10.3.x. Getting below error in atlassian.log file:

[com.accelq.plugins.jira.aq-jira-plugin], 187 seconds remaining
2025-01-03 16:43:43,668+0530 http-nio-3333-exec-24 url: /rest/plugins/1.0/com.accelq.plugins.jira.aq-jira-plugin-key; user: admin INFO admin 1001x275x1 1mjvctp 0:0:0:0:0:0:0:1 /rest/plugins/1.0/com.accelq.plugins.jira.aq-jira-plugin-key [c.a.plugin.util.WaitUntil] Plugins that have yet to be enabled: (1): [com.accelq.plugins.jira.aq-jira-plugin], 186 seconds remaining
2025-01-03 16:43:44,671+0530 http-nio-3333-exec-24 url: /rest/plugins/1.0/com.accelq.plugins.jira.aq-jira-plugin-key; user: admin INFO admin 1001x275x1 1mjvctp 0:0:0:0:0:0:0:1 /rest/plugins/1.0/com.accelq.plugins.jira.aq-jira-plugin-key [c.a.plugin.util.WaitUntil] Plugins that have yet to be enabled: (1): [com.accelq.plugins.jira.aq-jira-plugin], 185 seconds remaining
2025-01-03 16:43:45,673+0530 http-nio-3333-exec-24 url: /rest/plugins/1.0/com.accelq.plugins.jira.aq-jira-plugin-key; user: admin INFO admin 1001x275x1 1mjvctp 0:0:0:0:0:0:0:1 /rest/plugins/1.0/com.accelq.plugins.jira.aq-jira-plugin-key [c.a.plugin.util.WaitUntil] Plugins that have yet to be enabled: (1): [com.accelq.plugins.jira.aq-jira-plugin], 184 seconds remaining

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.accelq.plugins.jira</groupId>
    <artifactId>aq-jira-plugin</artifactId>
    <version>1.4.3.9-SNAPSHOT</version>
    <organization>
        <name>ACCELQ</name>
        <url>http://www.accelQ.com/</url>
    </organization>
    <name>aq-jira-plugin</name>
    <description>This plugin integrates ACCELQ into JIRA.</description>
    <packaging>atlassian-plugin</packaging>
    <dependencies>
        <dependency>
            <groupId>com.atlassian.jira</groupId>
            <artifactId>jira-api</artifactId>
            <version>${jira.version}</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>com.atlassian.jira</groupId>
            <artifactId>jira-core</artifactId>
            <version>${jira.version}</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.13.1</version>
            <scope>test</scope>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 -->
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.0</version>
        </dependency>
        <dependency>
            <groupId>com.atlassian.plugin</groupId>
            <artifactId>atlassian-spring-scanner-annotation</artifactId>
            <version>${atlassian.spring.scanner.version}</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>com.atlassian.plugin</groupId>
            <artifactId>atlassian-spring-scanner-runtime</artifactId>
            <version>${atlassian.spring.scanner.version}</version>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>javax.inject</groupId>
            <artifactId>javax.inject</artifactId>
            <version>1</version>
            <scope>provided</scope>
        </dependency>
        <!-- WIRED TEST RUNNER DEPENDENCIES -->
        <dependency>
            <groupId>com.atlassian.plugins</groupId>
            <artifactId>atlassian-plugins-osgi-testrunner</artifactId>
            <version>${plugin.testrunner.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>javax.ws.rs</groupId>
            <artifactId>jsr311-api</artifactId>
            <version>1.1.1</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
            <version>2.8.9</version>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>2.4</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.6.6</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpclient</artifactId>
            <version>4.5.13</version>
            <scope>test</scope>
        </dependency>
         <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpclient</artifactId>
            <version>4.5.13</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.mockito</groupId>
            <artifactId>mockito-all</artifactId>
            <version>1.8.5</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>com.atlassian.templaterenderer</groupId>
            <artifactId>atlassian-template-renderer-api</artifactId>
            <version>2.0.0</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.ocpsoft.prettytime</groupId>
            <artifactId>prettytime</artifactId>
            <version>4.0.1.Final</version>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>com.atlassian.maven.plugins</groupId>
                <artifactId>jira-maven-plugin</artifactId>
                <version>${amps.version}</version>
                <extensions>true</extensions>
                <configuration>
                    <!--<compressResources>false</compressResources>-->
                    <productVersion>${jira.version}</productVersion>
                    <productDataVersion>${jira.version}</productDataVersion>
                    <enableQuickReload>true</enableQuickReload>
                    <banningExcludes>
                        <exclude>
                            org.apache.commons:commons-lang3
                        </exclude>
                    </banningExcludes>
                    <!-- See here for an explanation of default instructions: -->
                    <!-- https://developer.atlassian.com/docs/advanced-topics/configuration-of-instructions-in-atlassian-plugins -->
                    <instructions>
                        <Atlassian-Plugin-Key>${atlassian.plugin.key}</Atlassian-Plugin-Key>
                        <!-- Add package to export here -->
                        <Export-Package>com.accelq.plugins.jira.api,</Export-Package>
                        <!-- Add package import here -->
                        <Import-Package>org.springframework.osgi.*;resolution:="optional", org.eclipse.gemini.blueprint.*;resolution:="optional", *</Import-Package>
                        <!-- Ensure plugin is spring powered -->
                        <Spring-Context>*</Spring-Context>
                    </instructions>
                </configuration>
            </plugin>
            <plugin>
                <groupId>com.atlassian.plugin</groupId>
                <artifactId>atlassian-spring-scanner-maven-plugin</artifactId>
                <version>${atlassian.spring.scanner.version}</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>atlassian-spring-scanner</goal>
                        </goals>
                        <phase>process-classes</phase>
                    </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>
    <properties>
        <jira.version>9.7.0</jira.version>
        <amps.version>8.2.2</amps.version>
        <plugin.testrunner.version>2.0.1</plugin.testrunner.version>
        <atlassian.spring.scanner.version>1.2.13</atlassian.spring.scanner.version>
        <!-- This key is used to keep the consistency between the key in atlassian-plugin.xml and the key to generate bundle. -->
        <atlassian.plugin.key>${project.groupId}.${project.artifactId}</atlassian.plugin.key>
        <testkit.version>6.3.11</testkit.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
    </properties>
</project>

Hi @VivekBurman1,
with the release of jira 10.x a lot of things have been changed.

See release notes here:
https://confluence.atlassian.com/jirasoftware/jira-software-10-0-x-upgrade-notes-1431241649.html

So your plugin for jira 9.x will not work out of the box with jira 10.x. You have to make a few changes.

### End-of-support announcements
#### We’ve removed support for:
** .bin and .exe binary installers*
** H2 database engine*
** Java 8*
** Java 11*

So you need to update your plugin to at least java17 and update your dependencies as well.
For example the “javax” dependencies has been moved to jakarta within java17.

What i did was to create a new “atlas-create-jira-plugin” with java17 and the newest atlassian sdk and migrated the functionality to the new project step by step.

There might be a better way, but this worked for me.
If u have more questions feel free to ask :slight_smile:

Cheers,
Daniel

Hi @VivekBurman1

If you are using Active object and velocity file i.e. .vm in your plugin then you need to update the plugin for same as the ComponentImport is changed in Jira 10 version. Further you have to update the code for the depricated method or API.

Can you share the log details when you are enabling the plugin in Jira

Thanks,
Satyendra Narwane