Plugin SDK Skeleton for JIRA Server

Hi there,

still new in jira dev, and I need your help,
can someone can give a full plugin skeleton that I can build with : atlas-mvn package
and that can be upload in jira (7.12+ or 8.0+) without error or waiting for ever that pluggin upload ?
I use atlassian-plugin-sdk-8.0.7
the default skeleton get by : atlas-create-jira-plugin is not good
Thanks
Yann

2 Likes

Hi @yann,

What is the problem you’re having with the default skeleton app?

Hi @pvandevoorde,
What I do for the test (SDK 8.0.7, jira 7.12.3)

atlas-create-jira-plugin
atlas-mvn package

after On jira / Manage apps / Upload app / Choose File (myApp.jar) / Upload

And it stay like this for ever on jira

should be easy to reproduce Same result with jira 7.12.3 or jira 8.0.0

if I refresh the Manage Apps, it will show the app installed and working
But I would like the plugin upload finish clean with no error message

Thanks
Yann

1 Like

Are there any error messages in the Jira log files that might give an indication of what happened?

I wish I had some :wink:
I put com.atlassian on DEBUG

and here are the logs
log.css (146.3 KB)

sorry it is a TXT not a CSS …

Version WARM only
Simple-log.css (1.9 KB)

Can confirm, been having this issue with almost every plugin I’ve installed manually by uploading a JAR.

Even though the error shows up the app gets installed just fine and everything works, but the error message is of course annoying and the dialog gets stuck so you have to reload the page.

Happens on Confluence as well.

1 Like

@pvandevoorde did you see the answer that @yann posted? :slight_smile:

Hi @pvandevoorde
Still always very interested to know why I can’t upload a basic app built with the default skeleton
:slight_smile:

Thanks for the reminder @yann and @sven.schatter.
I’ll bring this to the attention of the right people here in Atlassian.

Hello @yann,

I cannot seem to replicate the issue. I’m using this version based on atlas-version results.

ATLAS Version:    8.0.7
ATLAS Home:       /Applications/Atlassian/atlassian-plugin-sdk-6.3.10
ATLAS Scripts:    /Applications/Atlassian/atlassian-plugin-sdk-6.3.10/bin
ATLAS Maven Home: /Applications/Atlassian/atlassian-plugin-sdk-6.3.10/apache-maven-3.5.4
AMPS Version:     8.0.0

Here are the steps I did:

  1. I built a plugin skeleton like you’ve mentioned, via atlas-create-jira-plugin
  2. Packaged the project by going into the project directory and running atlas-package
  3. Ran a standalone Jira v8.0.0 by calling atlas-run-standalone --product jira --data-version 8.0.0 --version 8.0.0
  4. Upload the app via UPM (v4.0.0.bca9de4189)

So far I do not encounter the errors you experienced. Were there any missteps I took?

Cheers,
Ian

Thanks for your test,
here is what I have

atlas-version

ATLAS Version:    8.0.7
ATLAS Home:       C:\Applications\Atlassian\atlassian-plugin-sdk-8.0.7
ATLAS Scripts:    C:\Applications\Atlassian\atlassian-plugin-sdk-8.0.7\bin
ATLAS Maven Home: C:\Applications\Atlassian\atlassian-plugin-sdk-8.0.7\apache-maven-3.5.4
AMPS Version:     8.0.0
--------
Executing: "C:\Applications\Atlassian\atlassian-plugin-sdk-8.0.7\apache-maven-3.5.4\bin\mvn.cmd" --version -gs C:\Applications\Atlassian\atlassian-plugin-sdk-8.0.7\apache-maven-3.5.4/conf/settings.xml
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=256M; support was removed in 8.0
Apache Maven 3.5.4 (1edded0938998edf8bf061f1ceb3cfdeccf443fe; 2018-06-18T02:33:14+08:00)
Maven home: C:\Applications\Atlassian\atlassian-plugin-sdk-8.0.7\apache-maven-3.5.4\bin\..
Java version: 1.8.0_152, vendor: Oracle Corporation, runtime: C:\Program Files\Java\jdk1.8.0_152\jre
Default locale: en_US, platform encoding: MS950
OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"

My pom generated

<?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.neobards.test8</groupId>
    <artifactId>newTest</artifactId>
    <version>1.0.4-SNAPSHOT</version>

    <organization>
        <name>Example Company</name>
        <url>http://www.example.com/</url>
    </organization>

    <name>newTest</name>
    <description>This is the com.neobards.test8:newTest plugin for Atlassian 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>
        <!-- Add dependency on jira-core if you want access to JIRA implementation classes as well as the sanctioned API. -->
        <!-- This is not normally recommended, but may be required eg when migrating a plugin originally developed against JIRA 4.x -->
        <!--
        <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.10</version>
            <scope>test</scope>
        </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.2.2-atlassian-1</version>
        </dependency>

        <!-- Uncomment to use TestKit in your project. Details at https://bitbucket.org/atlassian/jira-testkit -->
        <!-- You can read more about TestKit at https://developer.atlassian.com/display/JIRADEV/Plugin+Tutorial+-+Smarter+integration+testing+with+TestKit -->
        <!--
        <dependency>
            <groupId>com.atlassian.jira.tests</groupId>
            <artifactId>jira-testkit-client</artifactId>
            <version>${testkit.version}</version>
            <scope>test</scope>
        </dependency>
        -->
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>com.atlassian.maven.plugins</groupId>
                <artifactId>jira-maven-plugin</artifactId>
                <version>${amps.version}</version>
                <extensions>true</extensions>
                <configuration>
                    <productVersion>${jira.version}</productVersion>
                    <productDataVersion>${jira.version}</productDataVersion>
                    <!-- Uncomment to install TestKit backdoor in JIRA. -->
                    <!--
                    <pluginArtifacts>
                        <pluginArtifact>
                            <groupId>com.atlassian.jira.tests</groupId>
                            <artifactId>jira-testkit-plugin</artifactId>
                            <version>${testkit.version}</version>
                        </pluginArtifact>
                    </pluginArtifacts>
                    -->
                    <enableQuickReload>true</enableQuickReload>

                    <!-- 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.neobards.test8.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>8.1.0</jira.version>
        <amps.version>8.0.0</amps.version>
        <plugin.testrunner.version>2.0.1</plugin.testrunner.version>
        <atlassian.spring.scanner.version>1.2.13</atlassian.spring.scanner.version>
        <!-- This property ensures consistency between the key in atlassian-plugin.xml and the OSGi bundle's key. -->
        <atlassian.plugin.key>${project.groupId}.${project.artifactId}</atlassian.plugin.key>
        <!-- TestKit version 6.x for JIRA 6.x -->
        <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>

and here is my UPM

Installed version: 4.0.0-bca9de4189
Available version: 4.0.4
Vendor: [Atlassian](http://www.atlassian.com/)

I upload it on my production test serveur jira 8.1
here is the jar, sorry for hack (put .css for upload)
newTest-1.0.4-SNAPSHOT.jar.css (264.6 KB)

generated by ‘atlas-package’

Thanks for the JAR file. I tried installing it in my standalone instance and I was able to install it successfully (see screen recording here). Other than our OS, not sure what else is different in our setup.

How did you spin up your Jira instance?

Hi,

I think the issue you might be seeing is related to a bug in the latest version of the Atlassian Plugin SDK. There’s a known problem with the ‘atlas-mvn’ command. Other commands such as atlas-run work without problems using the JIRA plugin skeleton.

https://ecosystem.atlassian.net/browse/AMPS-1480

You’ll find a workaround described on the JIRA issue.

Cheers,
Melissa

My jira instance is a clone of my production server, on ubuntu 16.04 LTS, and my client is under windows 10
as I see you are on Mac, I make differant test :
chrome ==> FAIL
firefox ==> OK
Edge ==> OK

So there is a problem with the UPM under chrome (Version 74.0.3729.131 (Official Build) (64-bit))

Thanks for the additional investigation. I’ve upgraded my Chrome from v73.xx to Version 74.0.3729.131 (Official Build) (64-bit) and the results are still successful. I also tried enabling and disabling the cache but still works for me. This is interesting and a tricky one :slight_smile:

I have found the problem
I remove the add blocker named : ghostery
now it works fine …

sorry for this, it was the add blocker in the end, it was working fine few month ago …
Thanks for helping
Yann

1 Like

Ah ha! Ad blockers :slight_smile: Glad you were able to drill it down to a specific browser and got it resolved.

2 Likes

You help me well to search in the good direction
thanks again

3 Likes