Hello,
I am new to JIRA plug in development. I was trying to had some web resources (an html and js file) to my project. However when I did I got a dead link error after running atlas-package to quick reload.
My atlassian-plugin.xml is as follows
<?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>
<!-- add our i18n resource -->
<resource type="i18n" name="i18n" location="ngdemo"/>
<!-- add our web resources -->
<web-resource key="ngdemo-resources" name="ngdemo Web Resources">
<dependency>com.atlassian.auiplugin:ajs</dependency>
<resource type="download" name="ngdemo.css" location="/css/ngdemo.css"/>
<resource type="download" name="ngdemo.js" location="/js/ngdemo.js"/>
<resource type="download" name="images/" location="/images"/>
<context>ngdemo</context>
</web-resource>
<servlet name="Demo Servlet" i18n-name-key="demo-servlet.name" key="demo-servlet" class="com.grushka.demo.servlet.DemoServlet">
<description key="demo-servlet.description">The Demo Servlet Plugin</description>
<url-pattern>/demo*</url-pattern>
</servlet>
<web-resource key="scriptaculous">
<resource type="download" name="index.html" location="/javascript/index.html" />
<resource type="download" name="script.js" location="/javascript/script.js" />
<context>web-context</context>
</web-resource>
</atlassian-plugin>
My DemoServlet.java is as follows (based on https://developer.atlassian.com/server/jira/platform/web-resource/):
package com.grushka.demo.servlet;
import com.atlassian.plugin.spring.scanner.annotation.component.Scanned;
import com.atlassian.plugin.spring.scanner.annotation.imports.ComponentImport;
import com.atlassian.webresource.api.assembler.PageBuilderService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.servlet.*;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import com.atlassian.templaterenderer.TemplateRenderer;
@Scanned
public class DemoServlet extends HttpServlet{
//private static final Logger log = LoggerFactory.getLogger(DemoServlet.class);
private PageBuilderService pageBuilderService;
public DemoServlet(PageBuilderService pageBuilderService)
{
this.pageBuilderService = pageBuilderService;
}
//@ComponentImport
//private final TemplateRenderer templateRenderer;
//public DemoServlet(TemplateRenderer templateRenderer) {
// this.templateRenderer = templateRenderer;
//}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
{
pageBuilderService.assembler().resources().requireWebResource("com.grushka.demo.servlet:scriptaculous");
//resp.setContentType("text/html");
//templateRenderer.render("index.vm", resp.getWriter());
}
}
The structure is
Main
->Java -->com.grushka.demo.servlet —>DemoServlet
->resources -->javascript —>index.html
->resources -->javascript —>script.js
->resources -->atlassian-plugin.xml
Again, I am very new to this so any help is appreciated!