package org.jboss.seam.example.spring; import java.util.List; import org.springframework.dao.DataAccessException; import org.springframework.orm.jpa.support.JpaDaoSupport; import org.springframework.transaction.annotation.Transactional; /** * @author Mike Youngstrom * @author Marek Novotny * */ public class UserService extends JpaDaoSupport { @Transactional public boolean changePassword(String username, String oldPassword, String newPassword) { System.out.println("change password " + oldPassword + " to " + newPassword); if (newPassword == null || newPassword.length()==0) { throw new IllegalArgumentException("newPassword cannot be null."); } User user = findUser(username); System.out.println("USER" + user); if (user.getPassword().equals(oldPassword)) { user.setPassword(newPassword); return true; } else { return false; } } @Transactional public User findUser(String username) { if (username == null || "".equals(username)) { throw new IllegalArgumentException("Username cannot be null"); } return getJpaTemplate().find(User.class, username); } @Transactional public User findUser(String username, String password) { try { List result = getJpaTemplate().find("select u from User u where u.username=?1 and u.password=?2", username, password); if (result.size() > 0) { return (User) result.get(0); } else { return null; } } catch (DataAccessException e) { return null; } } @Transactional public void createUser(User user) throws ValidationException { if (user == null) { throw new IllegalArgumentException("User cannot be null"); } User existingUser = findUser(user.getUsername()); if (existingUser != null) { throw new ValidationException("Username "+user.getUsername()+" already exists"); } getJpaTemplate().persist(user); getJpaTemplate().flush(); } }