Version 14

    Tento kurs je zkrácenou intenzivní verzí Advanced Java EE Lab vyučovaném na Fakultě informatiky Masarykovy univerzity. Účelem je seznámit posluchače s novinkami v Java EE 6 ve formě kombinace přednášek a cvičení. Přitom budou využívány projekty z JBoss.org a demonstrováno jejich použití.

     

    Předpokládá se intenzivní 3-denní kurs.

     

    Osnova kursu

    Den první

    Přednášky

    1. Úvod, přehled novinek v Java EE 6 (1 h)
    2. CDI, EJB 3.1 (1,5 h)
    3. DeltaSpike, aneb co v CDI chybí (1,5 h)

    Cvičení

    1. Příprava vývojového prostředí (1 h)
    2. Vývoj Java EE aplikace s použitím CDI a DeltaSpike (3 h)

     

    Den druhý

    Přednášky

    1. Ukládání dat v cloudu - Infinispan (1,5 h)
    2. Clustering a škálování JBoss AS 7 (1,5 h)

    Cvičení

    1. Konfigurace JBoss AS 7 pro běh v clusterovaném prostředí (1 h)
    2. Konfigurace Java EE aplikace pro běh v clusteru, cachování, ... (1 h)
    3. Vývoj datově náročné aplikace s použitím Infinispan (2 h)

     

    Den třetí

    Přednášky

    1. Zabezpečení Java EE aplikace, JAAS (2 h)
    2. Management a monitorování JBoss AS 7 (1,5 h)

    Cvičení

    1. Zabezpečení ecistující Java EE aplikace (1 h)
    2. Vývoj bezpečné Java EE aplikace (3 h)
    3. Vývoj skriptů pro monitorování JBoss AS 7 (1 h)

    Kontakty

    Jiří Pechanec jpechane@redhat.com

    Prerekvizity

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

     

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

    Instalace

    Na počítač si nainstalujte Java 6 (nutné je JDK, nikoliv pouze JRE)

     

    Instalace JBoss AS 7.1.1

    1. Stáhněte si JBoss AS 7.1.1. Final ze stránky http://www.jboss.org/jbossas/downloads
    2. Zip či tar.gz soubor si rozbalte na disk

     

    Instalace JBoss Developer Studio 5.0.0

    1. Stáhněte si JBoss Developer Studio 5.0.0 ze stránky https://devstudio.jboss.com/download/
    2. Spusťte instalátor

     

    java -jar jbdevstudio-product-universal-5.0.0.v20120615-1714-H213-GA.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

     

    Aktulizace JBDS na verzi 5.0.1

    • Help -> Check for Updates

    Scr1.jpg

    • Next -> Next -> I accept the terms of the license agreements -> Finish
    • Potvrdit souhlas s instalací speciálních komponent a poté restart JBDS
    • JBDS je nyní povýšeno na verzi 5.0.1

     

    Konfigurace JBDS - Propojení s JBoss AS 7

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

    jbds-server-1.jpg

    • Vybrat JBoss Community -> JBoss 7.1 Runtime, zaškrtnout Create a new local server, kliknout na Next

    jbds-server-2.jpg

    • Home directory: Přes Browse vybrat v domovském adresáři pv243/jboss-as-7.1, JRE: zvolit java-1.6.0-*, kliknout na Finish

    jbds-server-3.jpg

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

    jbds-server-4.jpg

    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.git

    jbds-git-4.jpg

    • 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 -> Working directory -> lesson02-cdi

    jbds-import-1.jpg

    • 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.

     

    6.12. lesson02-cdi, lesson03-seam3

    7.12. lesson05-infinispan, lesson06-clustering

    14.12. lesson04-security, lesson07-management

     

    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ů a demonstrována její odolnost vůči výpadku jednoho z nich (lze simulovat na jednom počítači)
    • Bude-li možné, bude aplikace nasazena v PaaS OpenShift. Nezdaří-li se nasazení, bude zdokumentována příčina.
    • Volitelné - aplikace bude vystavovat rozhraní pro komunikaci mezi systémy (použití JAX-RS, JAX-WS)
    • Každý projekt bude prezentován, studenti budou tázáni na části, které implementovali a technologie, které použili