Quantcast
Channel: Active questions tagged atlassian-plugin-sdk - Stack Overflow
Viewing all articles
Browse latest Browse all 282

Jira Plugin development | Servlet issue

$
0
0

I am a student working on developing a plugin for JIRA, and have been having trouble getting my servlet to read my html file. So now I wonder which annotations are right to use ?, and what dependencies?. I don't get any error messages, I just can't open the index.vm page.

Would really appreciate if anyone could take a look at my code that I attach below, or just help me find the right person who is knowledgeable in this area.

Thanks for the help // Rickard

My Servlet

package com.i3tex.plugin.servlet;import com.atlassian.jira.issue.IssueManager;import com.atlassian.plugin.spring.scanner.annotation.imports.ComponentImport;import com.atlassian.templaterenderer.TemplateRenderer;import com.atlassian.velocity.VelocityManager;import com.atlassian.webresource.api.assembler.PageBuilderService;import com.google.common.collect.Maps;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.stereotype.Component;import javax.inject.Inject;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.io.IOException;import java.util.Map;@Componentpublic class SumalizerServlet extends HttpServlet {    @ComponentImport    private final VelocityManager velocityManager;    @ComponentImport    private PageBuilderService pageBuilderService;    private IssueManager im;    private TemplateRenderer tr;    private static final Logger log = LoggerFactory.getLogger(            SumalizerServlet.class    );    @Inject    public SumalizerServlet(VelocityManager velocityManager, PageBuilderService pageBuilderService, IssueManager im, TemplateRenderer tr) {        this.velocityManager = velocityManager;        this.pageBuilderService = pageBuilderService;        this.im = im;        this.tr = tr;    }    @Override    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {        this.pageBuilderService                .assembler()                .resources()                .requireWebResource("com.i3tex.plugin.Sumalizer:test-resource");        Map<String, Object> context = Maps.newHashMap();        context.put("ic", this.im.getIssueCount());        String content = this.velocityManager.getEncodedBody("/templates/", "index.vm", "UTF-8", context);        response.setContentType("text/html;charset=utf-8");        response.getWriter().write(content);        response.getWriter().close();    }}

Atlassian-plugin.xml

<?xml version="1.0" encoding="UTF-8"?><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>  <resource type="i18n" name="i18n" location="Sumalizer"/>  <web-resource key="Sumalizer-resources" name="Sumalizer Web Resources"> <resource type="download" name="Sumalizer.css" location="/css/Sumalizer.css"/>  <resource type="download" name="Sumalizer.js" location="/js/Sumalizer.js"/>  <resource type="download" name="images/" location="/images"/>  <context>Sumalizer</context></web-resource>  <!--  Menu link to my servlet  --><web-item name="Sumalizer" i18n-name-key="sumalizer.name" key="sumalizer" section="find_link/issues_new" weight="1000"> <description key="sumalizer.description">The Sumalizer Plugin</description>  <label key="sumalizer.label"/>  <link linkId="sumalizer-link">/plugins/servlet/sumalizer</link> </web-item><!--  This is my servlet  --><servlet name="Sumalizer Servlet" i18n-name-key="sumalizer-servlet.name" key="sumalizer-servlet" class="com.i3tex.plugin.servlet.SumalizerServlet"><description key="sumalizer-servlet.description">The Sumalizer Servlet Plugin</description>  <url-pattern>/sumalizer</url-pattern> </servlet><!--  My test resource  --><web-resource key="test-resource" name="test-resource"><resource type="download" name="test.css" location="/css/test.css"/><resource type="download" name="test.js" location="/js/test.js"/></web-resource></atlassian-plugin>

This is my 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.i3tex.plugin</groupId><artifactId>Sumalizer</artifactId><version>0.0.1</version><organization><name>i3tex</name><url>http://www.i3tex.com/</url></organization><name>Sumalizer</name><description>This is the Sumalizer plugin.</description><packaging>atlassian-plugin</packaging><dependencies><dependency><groupId>com.atlassian.templaterenderer</groupId><artifactId>atlassian-template-renderer-api</artifactId><version>4.1.1</version><scope>provided</scope></dependency><dependency><groupId>com.atlassian.jira</groupId><artifactId>jira-api</artifactId><version>${jira.version}</version><scope>provided</scope><exclusions><exclusion><groupId>jta</groupId><artifactId>jta</artifactId></exclusion></exclusions></dependency><dependency><groupId>com.atlassian.sal</groupId><artifactId>sal-api</artifactId><version>2.0.17</version><scope>provided</scope></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>com.atlassian.plugin</groupId><artifactId>atlassian-spring-scanner-annotation</artifactId><version>${atlassian.spring.scanner.version}</version><scope>provided</scope></dependency><dependency><groupId>javax.inject</groupId><artifactId>javax.inject</artifactId><version>1</version><scope>provided</scope></dependency><dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient</artifactId><version>4.1.1</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.atlassian.plugins</groupId><artifactId>atlassian-plugins-core</artifactId><version>5.3.5</version><scope>provided</scope></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.3.4</version><scope>provided</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><enableQuickReload>true</enableQuickReload><instructions><Atlassian-Plugin-Key>${atlassian.plugin.key}</Atlassian-Plugin-Key><Export-Package>                            com.i3tex.api,</Export-Package><Import-Package>                            org.springframework.osgi.*;resolution:="optional",                            org.eclipse.gemini.blueprint.*;resolution:="optional",                            *</Import-Package><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><includeExclude>+com.atlassian.jira.plugins.issue.create.*</includeExclude><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>7.13.18</jira.version><amps.version>8.1.0</amps.version><osgi.javaconfig.version>0.2.0</osgi.javaconfig.version><spring.version>4.2.5.RELEASE</spring.version><plugin.testrunner.version>2.0.1</plugin.testrunner.version><atlassian.spring.scanner.version>2.2.0</atlassian.spring.scanner.version><atlassian.plugin.key>${project.groupId}.${project.artifactId}</atlassian.plugin.key><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><repositories><repository><releases><enabled>true</enabled><checksumPolicy>warn</checksumPolicy></releases><snapshots><enabled>true</enabled><updatePolicy>never</updatePolicy><checksumPolicy>warn</checksumPolicy></snapshots><id>atlassian-public</id><url>https://maven.atlassian.com/repository/public</url></repository></repositories><pluginRepositories><pluginRepository><releases><enabled>true</enabled><checksumPolicy>warn</checksumPolicy></releases><snapshots><updatePolicy>never</updatePolicy><checksumPolicy>warn</checksumPolicy></snapshots><id>atlassian-public</id><url>https://maven.atlassian.com/repository/public</url></pluginRepository></pluginRepositories></project>

Viewing all articles
Browse latest Browse all 282

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>