Cuando ocurre una acciòn por ejemplo vender un articulo, puede que necesitemos realizar otras opciones tales como
crear una orden de entrega, eliminar del inventario.
Para estos casos podemos usar eventos y listener que estarán pendientes de cuando ocurra un evento activarse.
Donde se puede aplicar:
Por ejemplo cuando vendes un articulo deseas actualizar el inventario de ese articulo.
Generar una orden de entrega.
Implementar eventos
Deseamos activar eventos cuando ocurre determinada accion.
Por ejemplo si ocurre un evento de eliminar un rol podemos activar el metodo fire() y existen listener escuchando lo que esta ocurriendo con el evento.
Requisitos:
Evento
Controller
Listener
Otros componentes opcional
Clase RolEvento.java
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */packagecom.avbravo.storeejb.eventos;importcom.avbravo.storeejb.entity.Rol;/** * * @author avbravo */publicclassRolEvento {privateRol rol;publicRolgetRol() {return rol; }publicvoidsetRol(Rol rol) {this.rol= rol; }publicRolEvento() { }publicRolEvento(Rol rol) {this.rol= rol; }}
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */packagecom.avbravo.storeejb.listener;importcom.avbravo.storeejb.eventos.RolEvento;importcom.avbravo.storeejb.producer.LookupStoreejbServices;importcom.avbravo.storeejb.rules.ColorRules;importjavax.ejb.Stateless;importjavax.enterprise.event.Observes;importjavax.inject.Inject;/** * * @author avbravo */@StatelesspublicclassColorListener { @InjectColorRules colorRules;publicvoidescuchaDelete(@ObservesRolEvento evento) {try {System.out.println("---> escucho en color");// rolRules.isDeleted(evento.getRol()); } catch (Exception e) {System.out.println("ColorListener() "+e.getLocalizedMessage()); } }}
UsuarioListener.java
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */packagecom.avbravo.storeejb.listener;importcom.avbravo.storeejb.eventos.RolEvento;importcom.avbravo.storeejb.rules.RolRules;importjavax.ejb.Stateless;importjavax.enterprise.event.Observes;importjavax.inject.Inject;/** * * @author avbravo */@StatelesspublicclassUsuarioListener { @InjectRolRules rolRules;publicvoidescuchaDelete(@ObservesRolEvento evento) {try {System.out.println("---> escucho en usuario ");System.out.println("----> se asigno en true");rolRules.isDeleted(evento.getRol());System.out.println("----> se elimino"); } catch (Exception e) {System.out.println("UsuarioListener() "+e.getLocalizedMessage()); } }}