Kontakt

Fakturační údaje

IČ: 87189224, BÚ: 1958653063/0800

Contact info in QR code

Musico

Informace

  • Webová aplikace vytvořená pomocí technologií EJB a JSF, s úmyslem nasazení na Glassfish serveru.
  • Psaná jako semestrální práce pro předmět X33EJA.
  • Účelem bylo osvojit si:
    • Návrh doménového modelu a jeho implementaci (alespoň jedna vazba M:N)
    • Použití JPA pro persistenci
    • Transakce
    • Použití EJB (stateless i statefull)
    • Lokalizaci do více jazyků
    • Autorizaci uživatelů, rozdělení do rolí a zabezpečení přístupu k business vrstvě
    • Webové rozhrání (servlety, jsp, nebo web framework)

Zdrojové kódy

 1: package cz.cvut.x33eja.macosond.business.music;
 2: 
 3: import cz.cvut.x33eja.macosond.persistence.entity.Band;
 4: import cz.cvut.x33eja.macosond.persistence.entity.Musician;
 5: import java.util.Collection;
 6: import javax.annotation.security.RolesAllowed;
 7: import javax.ejb.Stateless;
 8: import javax.persistence.EntityManager;
 9: import javax.persistence.PersistenceContext;
10: 
11: /**
12:  *
13:  * @author Ondrej Macoszek <macosond@fel.cvut.cz>
14:  */
15: @Stateless
16: public class MusicianBean implements MusicianLocal
17: {
18:         @PersistenceContext(unitName="Musico-PU")
19:         private EntityManager em;
20: 
21:         @RolesAllowed({"member","admin"})
22:         public void add(Musician musician)
23:         {
24:                 em.persist(musician);
25:         }
26: 
27:         @RolesAllowed({"member","admin"})
28:         public void edit(Musician musician)
29:         {
30:                 musician = em.merge(musician);
31:                 em.persist(musician);
32:         }
33: 
34:         @RolesAllowed({"member","admin"})
35:         public void delete(Musician musician)
36:         {
37:                 musician = em.merge(musician);
38:                 em.remove(musician);
39:         }
40: 
41:         public Musician get(Musician musician)
42:         {
43:                 return em.find(Musician.class, musician.getMusicianID());
44:         }
45: 
46:         public Musician get(Integer MusicianID)
47:         {
48:                 return em.find(Musician.class, MusicianID);
49:         }
50: 
51:         public Collection<Musician> getAll()
52:         {
53:                 return em.createNamedQuery("Musician.list").getResultList();
54:         }
55: 
56:         public Collection<Musician> getByBand(Band band)
57:         {
58:                 band = em.find(Band.class, band.getBandID());
59:                 return band.getMusicians();
60:         }
61: }
62: