Cvičenie 13 — Výnimky, maven a iné

Cieľom cvičení je precvičiť si vlastné výnimky a buildovanie aplikácie.

Aplikácia A (video)

  • S využitím archetypu jpaz2-archetype-launcher vytvorte nový maven projekt. Nastavte Group Id: sk.upjs.paz a Artifact Id: average-calculator.
  • Vytvorte triedu sk.upjs.paz.Utils, ktorá bude obsahovať:
    • statickú metódu double average(List<Double> zoznam), ktorá vráti priemer čísel v zozname (trieda List takú metódu nemá). Metóda vyhodí nekontrolovanú výnimku sk.upjs.paz.EmptyListException keď príde null alebo prázdny zoznam.
    • statickú metódu List<Double> parseNumbers(String[] array), ktorá prekonvertuje každý prvok poľa na číslo a vráti zoznam prekonvertovaných hodnôt. Metóda vyhodí kontrolovanú výnimku sk.upjs.paz.ParseFailedException v prípade, že niektorý z prvkov poľa sa nepodarilo skonvertovať. Na konverziu použite metódu statickú metódu parseDouble triedy Double.
    • Bonus: Vo vyhodenej výnimke pribaľte aj zoznam neskonvertovateľných hodnôt zo vstupného poľa. V testovacej metóde túto výnimku odchyťte a vypíšte slová, ktoré sa nepodarilo skonvertovať.
  • Vytvorte testovaciu triedu (Launcher), v ktorej v statickej metóde main vhodne demonštrujete funkčnosť metód triedy sk.upjs.paz.Utils.
  • Pridajte JavaDoc komentáre do triedy sk.upjs.paz.Utils a vygenerujte dokumentáciu.
    • v Eclipse: Project -> Generate Javadoc…
    • výstup je zvyčajne v priečinku doc v adresári projektu.
  • Upravte metódu main tak, aby sa vstup nezapisoval priamo do kódu, ale aby sa využilo pole String[] args.
  • Otestovanie v Eclipse: Kliknúť na Launcher.java -> Run As -> Run Configurations… -> Arguments
  • Prezrite si slajdy z prednášky o buildovaní.
  • S využitím Maven-a vytvorte spustiteľný .jar súbor.
    • Kliknutím na projekt -> Run As -> Maven build… (tá verzia s troma bodkami) -> Do goal zapísať: package -> Run
    • Spustiteľný súbor je v priečinku target v adresári, kde je projekt.
  • Spustite aplikáciu v príkazovom riadku
  • Otvorte si príkazový riadok – na windowse v ponuke štart CMD (klávesová skratka CTRL+R)
  • Overte si správne nainštalovanie a nastavenie javy pomocou príkazu java -version. Ak vypíše číslo verzie a ďalšie informácie (asi 3 riadky), je to ok. Ak nie, je väčšinou potrebné nastaviť systémovú premennú JAVA_HOME k priečinku, kde je uložené JDK. Detailný postup sa dá vyhľadať.
  • Príkaz dir vypíše obsah aktuálneho adresára
  • Príkaz cd C:\\User\student\workspace nastaví príslušný aktuálny adresár ako aktuálny
  • Nastavte si aktuálny adresár ako priečinok target v rámci daného projektu. Umiestnenie projektu viete zistiť cez možnosť properties po kliknutí na jav súbor alebo projekt v eclipse.
  • Spustite jar súbor: java -jar average-calculator.jar 2 3 4. Vyskúšajte rôzne vstupy, aj nečíselné.

Aplikácia B (video)

  • S využitím archetypu maven-archetype-quickstart vytvorte nový maven projekt. Nastavte Group Id: sk.upjs.paz a Artifact Id: math-helper.
  • Porovnajte pom.xml v tomto projekte s predošlým projektom. Inšpirujúc sa pom.xml projektov vytvorených archetypmi pre JPAZ, nastavte:
    • kompilátor na verziu 1.8
    • upravte buildovanie tak, aby sa vytvorilo spustiteľné jar-ko so spúšťacou triedou App
    • pridajte knižnicu apache-commons-math ako závislosť. Group Id a Artifact Id nájdete tu: https://mvnrepository.com/artifact/org.apache.commons/commons-math3/3.6.1
  • Vytvorte jednoduché menu, ktoré ponúkne používateľovi niekoľko možností na výber po zadaní čísla (napr. ak chcete vypočítať faktoriál, stlačte 1). Môžete využiť Scanner(System.in) a switch na spracovanie jednotlivých volieb.
  • Bonus: Vložte menu do cyklu. Aplikácia nech sa ukončí, až keď používateľ zadá napr. 0.
  • Vytvorte pre jednotlivé voľby v menu príslušný obslužný kód využívajúci metódy, ktoré ponúka knižnica apache-commons-math. Odporúčame napríklad niektorú z tried ArithmeticUtils, CombinatoricsUtils, MathUtils, FastMath.
  • Vybuildujte spustiteľný jar súbor a funkčnosť aplikácie overte cez príkazový riadok.