Version 17

    V rámci jarního semestru akademického roku 2013/14 proběhne na FI MUNI série setkání ve fromě kombinovaných přednášek a laboratorních cvičení věnovaná novinkám v Java EE 7 a pokročilým tématům Java EE obecně.

     

    Cílem tohoto nepovinného kurzu pod garancí laboratoře LaSArIS je seznámit studenty s pokročilými vlastnostmi Java EE, s novinkami v rámci Java EE 7 a naučit je pracovat s projekty JBoss.org zaštítěnými společností Red Hat. Na závěr kurzu studenti vytváří ve skupinkách projekt založených na prezentovaných technologiíích. Na základě tohoto projektu a jeho prezentace jsou poté ohodnoceni.

     

    Repozitář se zdrojovými kódy: https://github.com/qa/pv243-javaee-7

     

     

    Osnova kursu

    1. Úvod, předhled novinek v Java EE 7 (Jiří Pechanec, 24.2.)
    2. CDI 1.1, EJB 3.2 (Jozef Hartinger, 10.3.)
    3. Webové technologie v Java EE 7: RESTful Services (JAX-RS 2.0), JSON Processing (JSON-P), WebSocket, JavaServer Faces (JSF 2.2) - (Lukáš Fryč, 24.3.)
    4. Ukládání dat v cloudu přes Infinispan (Martin Genčúr & Tomáš Sýkora, 7.4.)
    5. Clustering a škálování WildFly 8 (Radoslav Husár, 14.4.)
    6. Zabezpečení Java EE aplikace, JAAS (Peter Škopek, 5.5.)
    7. Management a monitorování WildFly 8 (Jitka Kožaná, 12.5.)

     

    Kontakty

    Jiří Pechanec jpechane@redhat.com

    Jiří Kolář kolar@fi.muni.cz

     

    Prerekvizity

    • Znalost programovacího jazyka Java
    • Praktická znalost Java EE 5/6 technologií nebo absolvování kurzu v rámci studia

     

    Curriculum

    https://is.muni.cz/predmet/fi/jaro2014/PV243

     

    Příprava vývojového prostředí

    Instalace

    Na počítač si nainstalujte Java 7 (nutné je JDK, nikoliv pouze JRE)
    Instalace WildFly 8.0.0.Final

    1. Stáhněte si WildFly 8.0.0.Final ze stránky http://www.wildfly.org/downloads/
    2. Zip či tar.gz soubor si rozbalte na disk

    Instalace JBoss Developer Studio 7.1.0

    1. Stáhněte si JBoss Developer Studio 7.1.0 ze stránky https://devstudio.jboss.com/download/
      • V sekci Other  Downloads zvolte JBoss Developer Studio Standalone Installer
      • Je nutné se zaregistrovat na stránkách JBoss Community
    2. Spusťte instalátor
    java -jar jbdevstudio-product-universal-7.1.0.GA-v20131208-0703-B592.jar
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    

    JBDS se spouští buď z grafického prostředí poklepáním na vytvořenou ikonu nebo z příkazové řádky příkazem

    jbdevstudio
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    

    Konfigurace JBDS - Propojení s WildFly 8

    • Window -> Preferences
    • Vybrat Server -> Runtime Environments, kliknout na Add...

    jbds-server-1.jpg

    • Vybrat JBoss Community -> WildFly 8.0 Runtime (Experimental), zaškrtnout Create a new local server, kliknout na Next

    ss2.png

    • Home directory: Přes Browse vybrat adresář wildfly-8.0.0.Beta1, JRE: zvolit java-7*, kliknout na Finish

    ss3.png

    • Opustit konfigurační okno, v okně Servers uvidíme WildFly 8.0 Runtime Server

    ss4.png
    Konfigurace JBDS - Git repozitář

    • Kliknout na Open Perspective v pravém horním rohu, zvolit Other...

    jbds-git-1.jpg

    • Vybrat Git Repository Exploring

    jbds-git-2.jpg

    • Zvolit Clone a Git Repository

    jbds-git-3.jpg

    • URI: git://github.com/qa/pv243-javaee-7.git

    jbds-gitrepo.png

    • Kliknout na Next, Next a Finish
    • Přepnout zpět na JBoss perspektivu

    Import projektu do JBDS

    • Přepnout na Git Repository Exploring perspektivu
    • Zvolit repozitář pv243-javaee-7 -> Working directory -> lesson02-cdi

    importproj.png

    • Pravé tlačítko myši, zvolit Import projects
    • Zvolit Import existing projects

    jbds-import-2.jpg

    • Kliknout na Next a Finish
    • Přepnout na JBoss perspektivu
    • Pravé tlačítko na jméně projektu lesson02, zvolit Team -> Reset
    • Zvolit Tags -> cdi-00, Reset type - Hard, kliknout na Reset

    jbds-import-3.jpg

    Spuštění projektu na serveru

    • Zvolit okno Servers, pravé tlačítko, zvolit Add and Remove
    • Zvolit lesson02, kliknout na Add a Finish

    Příprava prostředí před cvičením

    Důležité!!!!! Jednotlivé projekty si stahují ze sítě závislosti z veřejných Maven repozitářů. Abychom se vyhnuli místnímu přetížení sítě je nutné, abyste si vždy den předem naimportovali a zkusili spustit projekty, které se budou ten který den vyučovat. Postupujte podle výše uvedeného návodu, přeskočte však krok Reset.

    Náměty na projekty

    Záchranné

    Rezervační systém pro sportovní centra

    Systém pro správu skladu

    Auto-moto bazar

    Systém pro půjčovny knih

    Požadavky na projekty

    • Týmy 3-4 lidí, jeden z nich bude zodpovědný za vedení (problémy v týmu je nutné řešit včas s přednášejícími)
    • Každý student si zřídí účet na github.com, zdrojové kódy projektu budou tamtéž
    • Volba git workflow je na každém týmu, taktéž rozdělení prací na projektu
    • Vytvořit krátkou specifikaci - textovou či s doprovodem UML diagramů
    • Implementace třívrstvé aplikace
      • Prezentační vrstva - JSF (volitelně použití knihovny RichFaces), hodnotit se bude funkcionalita, nikoliv grafické provedení
      • Business vrstva - EJB
      • Datová vrstva - perzistence pomocí JPA 2 nebo Infinispan (zde se očekává konfigurace Infinispan-u pro trvalé uložení dat)
    • Aplikace bude používat CDI, není vhodné používat dependency injection definovanou v Java EE 5 (tzn. očekáváme i použití např. typově bezpečného persitence contextu)
    • Aplikace bude plně zabezpečena, bude používat minimálně tři úrovně oprávnění (role)
    • Datový model bude anotovaný pomocí Bean Validation - stačí použít předdefinované anotace, použití i vlastních omezení je plus
    • Aplikace bude testovatelná (Arquillian)
    • Aplikace bude nasazena v clusteru dvou uzlů v doménové konfiguraci, přiložen konfigurační skript (JBoss CLI) a demonstrována její odolnost vůči výpadku jednoho z nich (lze simulovat na jednom počítači)
    • Aplikace bude vystavovat rozhraní pro komunikaci mezi systémy (JAX-RS) - formát zpráv JSON
    • Aplikace bude používat alespoň jeden WebSocket endopint
    • Aplikace bude volat alespoń jeden REST endpoint (JAX-RS)
    • Vystavené endpointy budou podoporovat zabezpečení
    • Aplikace bude obsahovat alespoň jeden use case pro použití Concurrency nebo Batching API
    • Aplikace bude obsahovat alespoň jeden use case pro použití JMS 2.0 API
    • Každý projekt bude prezentován, studenti budou tázáni na části, které implementovali a technologie, které použili