Plugin only requires permission [] which doesn't include 'execute_java' (JIRA server 7.1.4)

I'm trying to upgrade a custom plugin for jira, 6.3.15 to 7.1.4 but when I upload the plugin on a jira test environment then fail and catalina.out is:

Plugin only requires permission [] which doesn't include 'execute_java',   yet has some java code (classes, libs, spring context, etc), making it un-  loadable.

googling I see that: https://docs.atlassian.com/atlassian-plugins-api/4.0.0-m004/atlassian-plugins-api/apidocs/com/atlassian/plugin/Permissions.html#addPermission(com.atlassian.plugin.Plugin,%20java.lang.String,%20com.atlassian.plugin.InstallationMode)

but I dont understand how to solve it, any idea?

Plugin:

import java.util.Date;

import com.atlassian.jira.component.ComponentAccessor;
import com.atlassian.jira.event.issue.IssueEvent;
import com.atlassian.jira.event.type.EventType;
import com.atlassian.jira.issue.Issue;
import com.atlassian.jira.issue.worklog.Worklog;
import com.atlassian.jira.issue.worklog.WorklogImpl;
import com.atlassian.jira.issue.worklog.WorklogManager;

import com.atlassian.jira.event.issue.IssueEventListener;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class AsignedListenerWorklog implements IssueEventListener {

    private static final Logger logger = LoggerFactory.getLogger(AsignedListenerWorklog.class);
    protected WorklogManager worklogManager = ComponentAccessor.getWorklogManager();

    public void workflowEvent(IssueEvent event) {
        if (event.getEventTypeId() != EventType.ISSUE_DELETED_ID) {
            onAssigned(event);
        }
    }
    public boolean isOktoAssign(Issue issue) {
        if (issue.getAssignee() != null) {
            for (Worklog w : worklogManager.getByIssue(issue)) {
                if (w.getUpdateAuthorKey().equals(issue.getAssignee().getName().toLowerCase())) {
                    return false;
                }
            }
            return true;
        }
        logger.error("Issue Assigment null");
        return false;
    }

    public void onAssigned(IssueEvent event) {
        Issue issue = event.getIssue();
        if (isOktoAssign(issue)) {
            WorklogImpl worklog = new WorklogImpl(
                    worklogManager,
                    issue,
                    issue.getId(),
                    issue.getAssignee().getName().toLowerCase(),
                    issue.getSummary(),
                    new Date(),
                    null,
                    null,
                    60L
            );
            logger.info("Add 1m " + worklog.getUpdateAuthor() + " at issue " + issue.getKey());
            worklogManager.create(issue.getAssignee(), worklog, 0L, false);
        }
    }
}

And POM:

<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>xxx.xxxx</groupId>
  <artifactId>jira-worklog-plugin</artifactId>
  <name>Worklog Plugin</name>
  <version>3.0</version>
  <description>Plugin</description>
    <repositories>
        <repository>
            <id>atlassian</id>
            <url>https://maven.atlassian.com/content/repositories/atlassian-public</url>
        </repository>
        <repository>
            <id>antoher</id>
            <url>https://maven.atlassian.com/content/groups/public</url>
        </repository>
        <repository>
            <id>public</id>
            <url>nexus</url>
        </repository>
    </repositories>
  <dependencies>
        <dependency>
            <groupId>com.atlassian.jira</groupId>
            <artifactId>jira-api</artifactId>
            <version>7.1.4</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>com.atlassian.jira</groupId>
            <artifactId>jira-core</artifactId>
            <version>7.1.4</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>
    <distributionManagement>
        <repository>
           <id>releases</id>
            <url>nexus</url>
        </repository>
    </distributionManagement>
</project>

atlassian-plugin.xml:

<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>xxx.xxx</groupId>
  <artifactId>jira-worklog-plugin</artifactId>
  <name>Worklog Plugin</name>
  <version>3.0</version>
  <description>Plugin for update workflow on assigned issue</description>
    <repositories>
        <repository>
            <id>atlassian</id>
            <url>https://maven.atlassian.com/content/repositories/atlassian-public</url>
        </repository>
        <repository>
            <id>antoher</id>
            <url>https://maven.atlassian.com/content/groups/public</url>
        </repository>
        <repository>
            <id>public</id>
            <url>nexus</url>
        </repository>
    </repositories>
  <dependencies>
        <dependency>
            <groupId>com.atlassian.jira</groupId>
            <artifactId>jira-api</artifactId>
            <version>7.1.4</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>com.atlassian.jira</groupId>
            <artifactId>jira-core</artifactId>
            <version>7.1.4</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>
    <distributionManagement>
        <repository>
           <id>releases</id>
            <url>nexus</url>
        </repository>
    </distributionManagement>
</project>

Upvotes: 0

Views: 149

Answers (1)

I changed the Pom:

<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>xxx.xxx</groupId>
  <artifactId>jira-worklog-plugin</artifactId>
  <name>Worklog Plugin</name>
  <version>3.0</version>
  <description>Plugin for update workflow on assigned issue</description>
    <repositories>
        <repository>
            <id>atlassian</id>
            <url>https://maven.atlassian.com/content/repositories/atlassian-public</url>
        </repository>
        <repository>
            <id>antoher</id>
            <url>https://maven.atlassian.com/content/groups/public</url>
        </repository>
        <repository>
            <id>public</id>
            <url>nexus</url>
        </repository>
    </repositories>
  <dependencies>
        <dependency>
            <groupId>com.atlassian.jira</groupId>
            <artifactId>jira-api</artifactId>
            <version>7.1.4</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>com.atlassian.jira</groupId>
            <artifactId>jira-core</artifactId>
            <version>7.1.4</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>
    <distributionManagement>
        <repository>
           <id>releases</id>
            <url>nexus</url>
        </repository>
    </distributionManagement>
</project>

and the atlassian-plugin.xml on resources:

<atlassian-plugin key="${atlassian.plugin.key}" name="${project.name}" plugins-version="2">
    <plugin-info>
        <description>${project.description}</description>
        <version>${project.version}</version>
        <vendor name="${project.organization.name}" url="${project.organization.url}"/>
        <param name="plugin-icon">images/pluginIcon.png</param>
        <param name="plugin-logo">images/pluginLogo.png</param>
    </plugin-info>

    <!-- add our i18n resource -->
    <resource type="i18n" name="i18n" location="jira-xxx-plugin"/>

    <!-- add our web resources -->
    <web-resource key="jira-xxx-plugin-resources" name="jira-xxx-plugin Web Resources">
        <dependency>com.atlassian.auiplugin:ajs</dependency>
        <resource type="download" name="jira-xxx-plugin.css" location="/css/jira-xxx-plugin.css"/>
        <resource type="download" name="jira-xxx-plugin.js" location="/js/jira-xxx-plugin.js"/>
        <resource type="download" name="images/" location="/images"/>
        <context>jira-xxx-plugin</context>
    </web-resource>

</atlassian-plugin>

and it works!

Upvotes: 0

Related Questions