package org.jboss.weld.examples.login; import javax.ejb.Stateful; import javax.enterprise.context.RequestScoped; import javax.enterprise.inject.Alternative; import javax.enterprise.inject.Produces; import javax.inject.Inject; import javax.inject.Named; import javax.persistence.EntityManager; import java.util.List; import java.util.logging.Logger; @Named("userManager") @RequestScoped @Alternative @Stateful public class EJBUserManager implements UserManager { @Inject private transient Logger logger; @Inject private EntityManager userDatabase; private User newUser = new User(); @SuppressWarnings("unchecked") @Produces @Named @RequestScoped public List<User> getUsers() throws Exception { return userDatabase.createQuery("select u from User u").getResultList(); } public String addUser() throws Exception { userDatabase.persist(newUser); logger.info("Added " + newUser); return "/users.xhtml?faces-redirect=true"; } public User getNewUser() { return newUser; } public void setNewUser(User newUser) { this.newUser = newUser; } }