package com.gr.project.data; import java.util.List; import javax.annotation.PostConstruct; import javax.enterprise.context.RequestScoped; import javax.enterprise.event.Observes; import javax.enterprise.event.Reception; import javax.enterprise.inject.Produces; import javax.inject.Inject; import com.gr.project.model.Person; @RequestScoped public class PersonListProducer { @Inject private PersonDAO personRepository; private List<Person> persons; @Produces public List<Person> getPersons() { return persons; } public void onMemberListChanged(@Observes(notifyObserver = Reception.IF_EXISTS) final Person person) { retrieveAllMembersOrderedByName(); } @PostConstruct public void retrieveAllMembersOrderedByName() { persons = personRepository.findAllOrderedByName(); } }