HTML

JIRA DEV

Az Atlassian termékek felhasználási területei, paraméterezésük és alkalmazásfejlesztési lehetőségeik. Esettanulmány és érdekességek a JIRA-ról, Confluence-ről, GreenHopper-ről és a hozzájuk kapcsolódó plugin fejlesztésről, egy kevés Scrum módszertannal fűszerezve.

Kérdéseket és észrevételeidet a lacimol kukatc gmail pont com címre tudod elküldeni.

Üdv:
lacimol ()

Legutóbbi bejegyzések

Nincs megjeleníthető elem

Címkék

JiraDevTutor

Nincs megjeleníthető elem

Friss topikok

15.
április

Jira plugin fejlesztés 1.

kezdeti lépések |  lacimol

HelloWorld példa

Az Atlassian fejlesztői honlapján részletes leírást találhatunk arról, hogy hogyan kezdjünk neki a plugin fejlesztésnek. Ha már van telepített Atlassian Plugin SDK-nk, akkor ugorhatunk a HelloWorld plugin példára, de ha most kezdjük, akkor érdemes végigmenni a részletes leíráson.

Kezdeti lépések:

  1. Telepítés és beállítások
  2. Tesztek
  3. Konfigurációs fájlok

A fejlesztéshez telepítenünk kell a JDK-t, az SDK-t és ajánlatos az Eclipse IDE-t is. A fenti telepítési leírás Linuxra készült, de mivel én Windows alatt fogok fejleszteni, így lesznek apró eltérések. Az SDK telepítése közben végig szükség lesz internetkapcsolatra, mert az alap telepítő csomag mellett még kb 120 MB-ot le fog tölteni. A teljes projekt 3.8 (SDK + projekt) + 1.2 GB (maven repository) helyet igényel és legalább 2 GB RAM-ot. A fenti 3 lépés egyenként 1-2 órát vesz igénybe (internetkapcsolattól és géptől függően), de a következő lista segíthet az esetlegesen felmerülő hibákon túljutni és a lépésekhez szükséges időt csökkenteni:

  • a Maven-t az Eclipsehez a megadott helyett itt érdemes keresni: http://download.jboss.org/jbosstools/updates/m2eclipse-wtp
  • a JIRA build és Tomcat indítás eleinte 4 percet, később 2 percet vesz igénybe, ezt kihagyjatjuk a FastDev-vel (a DevelpoerTool segítségével JIRA-ból újrafordíthatjuk a változásokat, ami csak 20-40 mp-et igényel)
  • ha a FastDev nem fordítja be automatikusan a változásokat (több percig dolgozik), akkor érdemes kikapcsolni a CLI-t (<useFastdevCli>false</useFastdevCli> - https://answers.atlassian.com/questions/108577/fastdev-in-atlassian-sdk-4-1)
  • a tesztek futtatásánál (pl: atlas-run -DskipTests=true) a paraméterben átadott "=" jelet a Windows 7 elválasztóként kezeli, így ehhez az érintett 2 db *.bat fájlban ezt kezelni kell (atlas-run és atlas-integration-test).
  • ha a megadott 2990-es porton nem nyitható meg a JIRA vagy más portot látunk a logban, akkor gyanakodjunk, hogy egy másik ablakban fut egy másik példány (érdemes a telepítési leírásban a cmd-nek megfelelően egy atlas-run indítási parancsot is létrehoznunk az Eclipse-ben)

Az eredmény

A HelloWorld projekt létrehozása (atlas-create-jira-plugin) és módosítása (atlas-create-jira-plugin-module) után a lenti eredményt kapjuk (Web Section és Web Item):

insatalled_helloworld_plugin.png

További Plugin Module-ok: Component Import, Component, Component Tab Panel, Custom Field, Custom Field Searcher, Downloadable Plugin Resource, Gadget Plugin Module, Issue Tab Panel, Keyboard Shortcut, JQL Function, Licensing API Support, Module Type, Project Tab Panel, REST Plugin Module, RPC Endpoint Plugin, Report, Search Request View, Servlet Context Listener, Servlet Context Parameter, Servlet Filter, Servlet, Template Context Item, User Format, Version Tab Panel, Web Item, Web Panel, Web Panel Renderer, Web Resource, Web Resource Transformer, Web Section, Webwork Plugin, Workflow Condition, Workflow Post Function, Workflow Validator

A projekt főbb fájljai

A fenti demo projekt a lenti fájlokból épül fel (+ a teszt fájlok és lib-ek). A kód egy egyszerű interfészből, egy getName()-et implementáló osztályból, egy nyelvi részeket tartalmazó properties-ből és a menüpontot megvalósító xml-ből áll (A projekt egyik meghatározó fájlja a pom.xml, de azt később - a Maven-nel együtt - nézzem meg).

atlassian-plugin.xml

<?xml version="1.0" encoding="UTF-8"?>


  
    ${project.description}
    ${project.version}
    images/pluginIcon.pngimages/pluginLogo.png
  
  
  
  
  
    com.atlassian.auiplugin:ajs
    
    
    
    helloworld
  
  
  
    com.atlassian.tutorial.helloworld.MyPluginComponent
  
  
  
  
    The mySection Plugin
  
  
    The Client Sites Plugin
    
    deleteMe
  
  
    Molnár László: Java developer / Scrum Master
    
    http://www.lacimol.hu
  

MyPluginComponent.java

package com.atlassian.tutorial.helloworld;

public interface MyPluginComponent {
    String getName();
}

MyPluginComponentImpl.java

package com.atlassian.tutorial.helloworld;

import com.atlassian.sal.api.ApplicationProperties;

public class MyPluginComponentImpl implements MyPluginComponent {
    
	private final ApplicationProperties applicationProperties;

    public MyPluginComponentImpl(ApplicationProperties applicationProperties) {
        this.applicationProperties = applicationProperties;
    }

    public String getName() {
        
		if(null != applicationProperties) {
            return "myComponent:" + applicationProperties.getDisplayName();
        }
        
        return "myComponent";
    }
}

helloworld.properties

#put any key/value pairs here
my.plugin.name=MyPlugin
my-section.label=mySection
my-section.name=mySection
my-section.description=The mySection Plugin

client-sites.label=Client Sites
client-sites.name=Client Sites
client-sites.description=The Client Sites Plugin

lacimol.label=Molnár László
lacimol.name=lacimol.hu
lacimol.description=Molnár László: Java developer / Scrum Master

Konfigurációs fájlok

A Atlassion fejlesztői leírás végén a konfigurációs fájlok paraméterezhetőségéről, a pom.xml beállításairól, a kódolási konvenciókról, a további plugin modulokról és fejlesztői eszközökről olvashatunk. Ezek inkább lexikális leírásként és dokumentációként olvasandók.

A fentiek alapján látható, hogy viszonylag egyszerűen (főként paraméterezéssel) létrehozható egy egyszerű plugin a JIRA-hoz. A következő bejegyzésben a Maven és a pom.xml működését nézem meg.

Címkék: jira plugin programozás atlassian

komment

süti beállítások módosítása