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: /*
 2:  * To change this template, choose Tools | Templates
 3:  * and open the template in the editor.
 4:  */
 5: 
 6: package cz.cvut.x33eja.macosond.business.music;
 7: 
 8: import cz.cvut.x33eja.macosond.persistence.entity.Ability;
 9: import java.util.Collection;
10: import javax.annotation.security.PermitAll;
11: import javax.annotation.security.RolesAllowed;
12: import javax.ejb.Stateless;
13: import javax.persistence.EntityManager;
14: import javax.persistence.PersistenceContext;
15: 
16: /**
17:  *
18:  * @author Ondrej Macoszek <macosond@fel.cvut.cz>
19:  */
20: @Stateless
21: public class AbilityBean implements AbilityLocal
22: {
23:         @PersistenceContext(unitName="Musico-PU")
24:         private EntityManager em;
25: 
26:         @RolesAllowed({"member","admin"})
27:         public void add(Ability ability)
28:         {
29:                 em.persist(ability);
30:         }
31: 
32:         @RolesAllowed({"member","admin"})
33:         public void edit(Ability ability)
34:         {
35:                 ability = em.merge(ability);
36:                 em.persist(ability);
37:         }
38: 
39:         @RolesAllowed({"member","admin"})
40:         public void delete(Ability ability)
41:         {
42:                 ability = em.merge(ability);
43:                 em.remove(ability);
44:         }
45: 
46:         @PermitAll
47:         public Ability get(Ability ability)
48:         {
49:                 return em.find(Ability.class, ability.getAbilityID());
50:         }
51: 
52:         @PermitAll
53:         public Ability get(Integer AbilityID)
54:         {
55:                 return em.find(Ability.class, AbilityID);
56:         }
57: 
58:         @PermitAll
59:         public Collection<Ability> getAll()
60:         {
61:                 return em.createNamedQuery("Ability.list").getResultList();
62:         }
63: }
64: