ObrázokExistuje firma, ktorá sa volá Atlassian a existuje produkt tejto firmy, ktorý sa volá Jira. Je to Jira issue tracking system (teda systém na zaznamenávanie a spravovanie rôznych požiadaviek), ktorý je v našich zemepisných šírkach pomerne rozšírený. Ale nielen u nás sa hojne používa a to (ako aj v mnohých iných prípadoch) viedlo k tomu, že to nie je len softvér so zopár nastaveniami, ale je to tiež platforma, ktorá má množstvo bodov, kde je možné ju rozširovať. V tomto článku sa pozrieme na základy vývoja pre Jiru.

Jira je webovský informačný systém vytvorený pomocou Javy. Javisti to preto budú mať o čosi jednoduchšie. Na to. aby ste si mohli začať s jej programovaním, potrebujete tieto tri veci:

1. mať aspoň hrubú predstavu o jej architektúre

2. poznať Jira SDK

3. vedieť o možnostiach rozšírenia Jiry

Jira je tu už s nami nejakých 14 rokov a za tú dobu prešla pomerne značným vývojom. V dnešnej dobe vlastne „Jira“ znamená Jira platformu (ktorá poskytuje základné služby pre aplikácie na nej postavené ako je práca s issue, workflow, search alebo email) a tri aplikácie, ktoré sú na platforme postavené:

  • Jira core – klasický issue tracker pre softvérové tímy
  • Jira service desk – obsluha požiadaviek na podporu pre zákazníka
  • Jira software – ku core časti pribaľuje aj plánovanie (napr. aj agilné)

Jira je v podstate JavaEE webová aplikácia, čo znamená, že vo výsledku je to war-ko, ktoré je možné nasadiť do JavaEE kontajnera. Na web rozhranie používa Apache Velocity šablónový systém. Okrem samotného výstupného HTML je samozrejme nutné riešiť aj množstvo iných oblastí, ktoré majú v Jire na starosti rôzne komponenty:

  • Seraph – security framework
  • Webworks – web framework (Jira používa webwork 1 nie 2)
  • Lucene – pre vyhľadávanie
  • Embedded crowd – správa identít a Single Sign-On nástroj
  • Property Set – modul na uchovávanie dát vo forme kľúč-hodnota
  • OfBiz Entity Engine – nástroj na modelovanie doménových informácií
  • Active Objects – object-relation mapping nástroj na prácu s databázou (určený pre pluginy)
  • OSWorkflow – framework na vytváranie a spúšťanie procesov (workflowov)
  • Quartz – plánovacia služba (v nastavenom čase, alebo v pravidelných intervaloch vie spúšťať definované úlohy
  • Pico Container – DI framework

A samozrejme okrem toho Jira obsahuje množstvo svojho kódu, ktorý toto všetko používa a v podstate dáva dokopy.

Prehľad o základných komponentoch by sme mali. Ako druhá vec v zozname je Jira SDK. Je to balík nástrojov, ktorý vám má uľahčiť vývoj. Po nainštalovaní je ním možné napríklad:

1. vytvoriť prázdny projekt pluginu

2. do existujúceho pluginu pridávať moduly

3. spustiť plugin v Jira kontajneri

4. generovať súbory pre písanie automatických testov (jednotkových/integračných)

Hlavne bod číslo 3, teda spustiť plugin v Jira kontajneri, je pomerne zaujímavý. Jira SDK za vás v podstate pripraví celú Jiru vrátane downloadu a spustenia Tomcatu a nasadenia spustenia Jiry. Je to naozaj one-click (one command solution).

A ako poslednú základnú vec je potrebné vedieť zoznam toho, čo vám vlastne Jira dovolí v nej zmeniť. V tomto zozname sa bavíme hlavne o programátorských možnostiach pluginu, teda nie o konfigurácii v Jiry, kde si viete napríklad konfigurovať workflowy alebo pridávať nové polia do issue. Naproti tomu, toto sú veci, na ktoré budete potrebovať vyvinúť plugin:

  • vlastný – nový – typ poľa pre issue (a k tomu naviazané ďalšie údaje ako validácia, changelog hodnota, pomocná hodnota atď.)
  • nová podmienka/validácia/post funkcia do workflowu
  • programovo posunúť issue vo workflove
  • nastavovať práva na issue na základe statusu
  • vytvoriť nový typ reportu a jeho export do Excelu
  • vytvorenie gadgetu na dashboard
  • vytvorenie JQL funkcie
  • indexovať a de-indexovať issue
  • programovo spravovať filtre
  • programovo vytvoriť/aktualizovať/zmazať issue alebo subtask
  • programovo pracovať s changelogom alebo worklogom
  • dynamické vytváranie nových operácií s issue
  • link renderer pre nový druh externých liniek
  • nový tab na issue obrazovke

Toto je len hrubý zoznam možností. Atlassian urobil veľa pre to, aby sa Jira dala podľa možnosti čo najviac rozširovať a zároveň, aby to rozširovanie bolo čo najviac bezbolestné. Preto je vytvorené šikovné SDK, ktoré zjednoduší celý proces, a preto má Jira množstvo bodov rozšírenia, na ktoré viete napojiť svoj kód a robiť čo treba. Jira sa tak stáva pomerne plastický nástroj, ktorý je schopný modelovať rôzne scenáre, ktoré majú základ v issue trackingu.