2. 3. Teszt futtatása
WildFly indítás az Asztalon lévő ikonnal
pom.xml -ben arq-wildfly-remote keresése
<artifactId> tartalmának kijelölése
és Ctrl + C
Ctrl + Shift + A, Edit Configurations …
+ majd Arquillian JUnit kiválasztása
Configure gomb a jobb oldalon
+ majd Manual container configuration
+ a jobb szélen majd Maven Dependency
Kb 30%-al szélesebbre húzni a dialog
ablakot
2
Ctrl + V, az elvárt eredmény: wildfly-
arquillian-container-remote
Bepipálni a Download to-t
… 8.2.1.Final-t választani a végéről és
OK
OK
Klikk a Manual container confuguration
-re a Configure gomb fölött
Configuration tab
Test kind: All in directory
Directory: klikk a … -ra
tigra-jee-kurzus/1608/src/test/java
OK
3. CDI
Context and Dependency injection
@Named - CDI Managed Bean, amit be bud injektálni a kért helyre
@Inject - Ide kérjük az injektálást, de az egész osztálynak Managed-nek kell lennie
Akkor managed, ha pl @Named, @Stateless, @Statefull, @Model
JSF page XHTML-jében is kérhetjük az injektálását:
<h:dataTable var="_car" value=“#{cars}"
@Produces - Producer mező illetve metódus
A metódus akkor kellhet, pl ha futási időben dől el a konkrét létrehozandó objektum típus.
Objektum scope-ok (élettartam idők) - @RequestScoped, @SessionScoped,
@ApplicationScoped (MemberRepository pl)
Produce-subscribe vagy Producer - obesever minta:
@Inject
private Event<Car> carEventSrc;
…
public void onCarListChanged(@Observes(...) Car car)
3
4. Annotációk magyarázata
@Produces a getCars() illetve a getMembers() metódusokon
A visszatérési értékük bekerül a Car registration illetve a Member
registration form POST-tal küldése után kapott válszba
Ezért jelenik meg a lista a weblap alján
Ha @Produces vagy @Named hiányzik a newCar illetve a
newMember mezőről, akkor nem kerülnek beléjük a form-on beírt
értékek
Helyette a következő exception történek: Target Unreachable,
identifier 'newCar' resolved to null
@FacesConverter - JSF-ben ettől használható itt:
<f:converter converterId="memberConverter" />
4
6. JPA - Java Persistence API
@PersistenceContext // @Inject helyett ez kell
private EntityManager em;
EntityManager - a közös data store-ban tárolt Entity-ket kezeli
Létrehozza, eltárolja és törli az Entity-ket
persist() - eltárolja
find() és createQuery() - megkeresi és visszatölti
remove() - törli
37.1.1 Requirements for Entity Classes - milyen class-ok
kezelését képes elvégezni az EntityManager?
6