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 7 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.
Diplomové/bakalářské práce v Red Hatu najdete na stránkách https://thesis-managementsystem.rhcloud.com/
Osnova kursu
Den první
- P: Úvod, přehled novinek v Java EE 7 (1 h)
- C: Příprava vývojového prostředí (1 h)
- P: CDI 1.1, EJB 3.2 (1,5 h)
- Oběd
- C: Vývoj Java EE aplikace s použitím CDI (1,5 h)
- P: Webové technologie v Java EE 7: RESTful Services (JAX-RS 2.0), JSONProcessing (JSON-P), WebSocket, JavaServer Faces (JSF 2.2) (1,5 h)
- C: Vývoj aplikací s použítím webových technologií v Java EE 7 (1,5 h)
Den druhý
- P: Ukládání dat v cloudu - Infinispan (1,5 h)
- C: Vývoj datově náročné aplikace s použitím Infinispan (2 h)
- Oběd
- P: Clustering a škálování WildFly 8 (1,5 h)
- C: Konfigurace WildFly 8 pro běh v clusterovaném prostředí (1 h)
- C: Konfigurace Java EE aplikace pro běh v clusteru, cachování, ... (1 h)
Den třetí
- P: Zabezpečení Java EE aplikace, JAAS (2 h)
- Oběd
- C: Zabezpečení existující Java EE aplikace (1 h)
- P: Management a monitorování WildFly 8 (1,5 h)
- C: Vývoj skriptů pro monitorování WildFly 8 (1 h)
Kontakty
Jiří Pechanec jpechane@redhat.com
Prerekvizity
- Znalost programovacího jazyka Java
- Praktická znalost Java EE 5/6 technologií nebo absolvování kurzu v rámci studia
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.Beta1
- Stáhněte si WildFly 8.0.0.Beta1 ze stránky http://www.wildfly.org/downloads/
- Zip či tar.gz soubor si rozbalte na disk
Instalace JBoss Developer Studio 7.0.1
- Stáhněte si JBoss Developer Studio 7.0.0 ze stránky https://devstudio.jboss.com/download/
- Vyberte Download now
- Je nutné se zaregistrovat
- Záložka Downloads -> JBoss Enterprise Middleware -> Downloads
- Product: Free Software
- Zvolte Red Hat JBoss Developer Studio 7.0.0 Stand Alone Universal Binary
- Spusťte instalátor
jbdevstudio-product-universal-7.0.0.GA-v20130720-0044-B364.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 7.0.1
- Help -> Check for Updates
- 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 7.0.1
Konfigurace JBDS - Propojení s WildFly 8
- Window -> Preferences
- Vybrat Server -> Runtime Environments, kliknout na Add...
- Vybrat JBoss Community -> WildFly 8.0 Runtime (Experimental), zaškrtnout Create a new local server, kliknout na Next
- Home directory: Přes Browse vybrat adresář wildfly-8.0.0.Beta1, JRE: zvolit java-7*, kliknout na Finish
- Opustit konfigurační okno, v okně Servers uvidíme WildFly 8.0 Runtime Server
Konfigurace JBDS - Git repozitář
- Kliknout na Open Perspective v pravém horním rohu, zvolit Other...
- Vybrat Git Repository Exploring
- Zvolit Clone a Git Repository
- URI: git://github.com/qa/pv243.git
- 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
- Pravé tlačítko myši, zvolit Import projects
- Zvolit Import existing projects
- 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
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.
21.11. lesson02-cdi, lesson08-web (branch web)
22.11. lesson05-infinispan*, lesson06-clustering
29.11. 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)
- 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
Comments