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
- Úvod, předhled novinek v Java EE 7 (Jiří Pechanec, 24.2.)
- CDI 1.1, EJB 3.2 (Jozef Hartinger, 10.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.)
- Ukládání dat v cloudu přes Infinispan (Martin Genčúr & Tomáš Sýkora, 7.4.)
- Clustering a škálování WildFly 8 (Radoslav Husár, 14.4.)
- Zabezpečení Java EE aplikace, JAAS (Peter Škopek, 5.5.)
- 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
- Stáhněte si WildFly 8.0.0.Final ze stránky http://www.wildfly.org/downloads/
- Zip či tar.gz soubor si rozbalte na disk
Instalace JBoss Developer Studio 7.1.0
- 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
- 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...
- 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-javaee-7.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-javaee-7 -> 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.
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
Comments