Author: husted Date: Mon Nov 26 14:04:05 2007 New Revision: 598449 URL: http://svn.apache.org/viewvc?rev=598449&view=rev Log: WW-1399 A few tweaks to get the web application persistence working. The JPA support seems honky-dory now :)
Removed: struts/sandbox/trunk/jpa-mailreader/src/test/java/entity/user/ Modified: struts/sandbox/trunk/jpa-mailreader/src/main/java/META-INF/persistence.xml struts/sandbox/trunk/jpa-mailreader/src/main/java/action/Index.java struts/sandbox/trunk/jpa-mailreader/src/main/java/action/user/Index.java struts/sandbox/trunk/jpa-mailreader/src/main/java/action/user/Update.java struts/sandbox/trunk/jpa-mailreader/src/main/java/action/user/subscription/Index.java struts/sandbox/trunk/jpa-mailreader/src/main/java/entity/EntityAware.java struts/sandbox/trunk/jpa-mailreader/src/main/java/entity/EntityHelper.java struts/sandbox/trunk/jpa-mailreader/src/main/java/entity/EntityInterceptor.java struts/sandbox/trunk/jpa-mailreader/src/main/java/entity/protocol/ProtocolHelperImpl.java struts/sandbox/trunk/jpa-mailreader/src/main/java/entity/subscription/SubscriptionHelper.java struts/sandbox/trunk/jpa-mailreader/src/main/java/entity/subscription/SubscriptionHelperImpl.java struts/sandbox/trunk/jpa-mailreader/src/main/java/entity/user/UserHelper.java struts/sandbox/trunk/jpa-mailreader/src/main/java/entity/user/UserHelperImpl.java struts/sandbox/trunk/jpa-mailreader/src/main/java/struts.xml struts/sandbox/trunk/jpa-mailreader/src/main/webapp/index.html Modified: struts/sandbox/trunk/jpa-mailreader/src/main/java/META-INF/persistence.xml URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/jpa-mailreader/src/main/java/META-INF/persistence.xml?rev=598449&r1=598448&r2=598449&view=diff ============================================================================== --- struts/sandbox/trunk/jpa-mailreader/src/main/java/META-INF/persistence.xml (original) +++ struts/sandbox/trunk/jpa-mailreader/src/main/java/META-INF/persistence.xml Mon Nov 26 14:04:05 2007 @@ -29,6 +29,7 @@ <property name = "hibernate.connection.url" value = "jdbc:derby://localhost:1527/mailreader"/> <property name = "hibernate.connection.username" value = "app"/> <property name = "hibernate.connection.password" value = "app"/> + <property name = "hibernate.dialect" value="org.hibernate.dialect.DerbyDialect"/> <property name = "hibernate.hbm2ddl.auto" value = "update"/> </properties> </persistence-unit> Modified: struts/sandbox/trunk/jpa-mailreader/src/main/java/action/Index.java URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/jpa-mailreader/src/main/java/action/Index.java?rev=598449&r1=598448&r2=598449&view=diff ============================================================================== --- struts/sandbox/trunk/jpa-mailreader/src/main/java/action/Index.java (original) +++ struts/sandbox/trunk/jpa-mailreader/src/main/java/action/Index.java Mon Nov 26 14:04:05 2007 @@ -20,12 +20,16 @@ import java.util.HashMap; import java.util.Map; + +import javax.persistence.EntityManager; + import org.apache.struts2.interceptor.SessionAware; import com.opensymphony.xwork2.ActionSupport; import com.opensymphony.xwork2.conversion.annotations.Conversion; import com.opensymphony.xwork2.conversion.annotations.ConversionType; import com.opensymphony.xwork2.conversion.annotations.TypeConversion; import org.apache.struts2.config.ParentPackage; +import entity.EntityAware; /** * <p> @@ -45,7 +49,7 @@ @TypeConversion(type = ConversionType.APPLICATION, key = "entity.user.User", converter = "entity.user.UserTypeConverter") }) @SuppressWarnings("unchecked") @ParentPackage("entity-default") -public class Index extends ActionSupport implements SessionAware { +public class Index extends ActionSupport implements EntityAware, SessionAware { // ---- STATICS ---- @@ -105,28 +109,53 @@ getSession().put(PROFILE_KEY, value); } + private String input = CREATE; + /** * <p> - * Record the CRUD operation in progress. + * Access the CRUD operation token. * </p> */ - private String input = CREATE; - public String getInput() { return input; } + /** + * <p> + * Store the CRUD operation in token. + * </p> + */ public void setInput(String value) { input = value; } + private EntityManager entityManager; + /** * <p> - * Provide the session context, or its proxy. + * Store the session context, or its proxy. * </p> */ + public void setEntityManager(EntityManager value) { + entityManager = value; + } + + /** + * <p> + * Access the EntityManager for this thread. + * </p> + */ + protected EntityManager getManager() { + return entityManager; + } + private Map session; + /** + * <p> + * Store the session context, or its proxy. + * </p> + */ public void setSession(Map value) { session = value; Object profile = getProfile(); @@ -135,6 +164,11 @@ } } + /** + * <p> + * Access the session context, or its proxy. + * </p> + */ protected Map getSession() { return session; } Modified: struts/sandbox/trunk/jpa-mailreader/src/main/java/action/user/Index.java URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/jpa-mailreader/src/main/java/action/user/Index.java?rev=598449&r1=598448&r2=598449&view=diff ============================================================================== --- struts/sandbox/trunk/jpa-mailreader/src/main/java/action/user/Index.java (original) +++ struts/sandbox/trunk/jpa-mailreader/src/main/java/action/user/Index.java Mon Nov 26 14:04:05 2007 @@ -18,10 +18,13 @@ */ package action.user; +import org.apache.struts2.config.ParentPackage; + import entity.user.User; import entity.user.UserHelperImpl; import entity.user.UserHelper; [EMAIL PROTECTED]("entity-default") public class Index extends action.Index { // ---- STATICS ---- @@ -114,6 +117,22 @@ } else { addActionError(getText(ERROR_CREDENTIALS_MISMATCH)); } + } + + protected boolean validatePasswordChange() { + String newPassword = getUser().getPassword1(); + boolean changing = ((null != newPassword) && (newPassword.length() > 0)); + if (changing) { + String confirmPassword = getUser().getPassword2(); + boolean matches = ((null != confirmPassword) && (confirmPassword + .equals(newPassword))); + if (matches) { + getUser().setPassword(newPassword); + } else { + addActionError(getText(ERROR_PASSWORD_MATCH)); + } + } + return !hasErrors(); } /** Modified: struts/sandbox/trunk/jpa-mailreader/src/main/java/action/user/Update.java URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/jpa-mailreader/src/main/java/action/user/Update.java?rev=598449&r1=598448&r2=598449&view=diff ============================================================================== --- struts/sandbox/trunk/jpa-mailreader/src/main/java/action/user/Update.java (original) +++ struts/sandbox/trunk/jpa-mailreader/src/main/java/action/user/Update.java Mon Nov 26 14:04:05 2007 @@ -46,19 +46,8 @@ if (!UPDATE.equals(getInput())) return INPUT; - String newPassword = getUser().getPassword1(); - boolean changing = ((null != newPassword) && (newPassword.length() > 0)); - if (changing) { - String confirmPassword = getUser().getPassword2(); - boolean matches = ((null != confirmPassword) && (confirmPassword - .equals(newPassword))); - if (matches) { - getUser().setPassword(newPassword); - } else { - addActionError(getText(ERROR_PASSWORD_MATCH)); - return INPUT; - } - } + if (!validatePasswordChange()) + return INPUT; update(); return (hasErrors()) ? INPUT : SUCCESS; Modified: struts/sandbox/trunk/jpa-mailreader/src/main/java/action/user/subscription/Index.java URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/jpa-mailreader/src/main/java/action/user/subscription/Index.java?rev=598449&r1=598448&r2=598449&view=diff ============================================================================== --- struts/sandbox/trunk/jpa-mailreader/src/main/java/action/user/subscription/Index.java (original) +++ struts/sandbox/trunk/jpa-mailreader/src/main/java/action/user/subscription/Index.java Mon Nov 26 14:04:05 2007 @@ -20,6 +20,7 @@ import java.util.Map; +import org.apache.struts2.config.ParentPackage; import org.apache.struts2.config.Result; import org.apache.struts2.config.Results; import org.apache.struts2.dispatcher.ServletActionRedirectResult; @@ -48,6 +49,7 @@ Index.NAMESPACE, Index.NS_USER, Index.USER, Index.SUBSCRIPTION_USER_USERNAME }) }) @Validation() [EMAIL PROTECTED]("entity-default") public class Index extends action.user.Index implements Preparable { protected static final String ERROR_HOST_UNIQUE = "error.host.unique"; Modified: struts/sandbox/trunk/jpa-mailreader/src/main/java/entity/EntityAware.java URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/jpa-mailreader/src/main/java/entity/EntityAware.java?rev=598449&r1=598448&r2=598449&view=diff ============================================================================== --- struts/sandbox/trunk/jpa-mailreader/src/main/java/entity/EntityAware.java (original) +++ struts/sandbox/trunk/jpa-mailreader/src/main/java/entity/EntityAware.java Mon Nov 26 14:04:05 2007 @@ -36,5 +36,5 @@ * @param value * EntityManager for this thead */ - void setManager(EntityManager value); + void setEntityManager(EntityManager value); } Modified: struts/sandbox/trunk/jpa-mailreader/src/main/java/entity/EntityHelper.java URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/jpa-mailreader/src/main/java/entity/EntityHelper.java?rev=598449&r1=598448&r2=598449&view=diff ============================================================================== --- struts/sandbox/trunk/jpa-mailreader/src/main/java/entity/EntityHelper.java (original) +++ struts/sandbox/trunk/jpa-mailreader/src/main/java/entity/EntityHelper.java Mon Nov 26 14:04:05 2007 @@ -44,15 +44,17 @@ */ public class EntityHelper { - public void createEntity(Object value) throws PersistenceException { + public Object createEntity(Object value) throws PersistenceException { EntityManager manager = EntityManagerHelper.getEntityManager(); manager.persist(value); + return value; } - public void deleteEntity(Object value) throws PersistenceException { + public Object deleteEntity(Object value) throws PersistenceException { EntityManager manager = EntityManagerHelper.getEntityManager(); manager.merge(value); manager.remove(value); + return value; } @SuppressWarnings("unchecked") @@ -90,15 +92,16 @@ EntityManager manager = EntityManagerHelper.getEntityManager(); Object result = null; try { - manager.find(entity, id); + result = manager.find(entity, id); } catch (NoResultException e) { result = null; } return result; } - public void updateEntity(Object value) throws PersistenceException { + public Object updateEntity(Object value) throws PersistenceException { EntityManager manager = EntityManagerHelper.getEntityManager(); manager.merge(value); + return value; } } Modified: struts/sandbox/trunk/jpa-mailreader/src/main/java/entity/EntityInterceptor.java URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/jpa-mailreader/src/main/java/entity/EntityInterceptor.java?rev=598449&r1=598448&r2=598449&view=diff ============================================================================== --- struts/sandbox/trunk/jpa-mailreader/src/main/java/entity/EntityInterceptor.java (original) +++ struts/sandbox/trunk/jpa-mailreader/src/main/java/entity/EntityInterceptor.java Mon Nov 26 14:04:05 2007 @@ -48,7 +48,7 @@ EntityManager manager = EntityManagerHelper.getEntityManager(); EntityManagerHelper.beginTransaction(); myAction = (EntityAware) invocation.getAction(); - myAction.setManager(manager); + myAction.setEntityManager(manager); try { result = invocation.invoke(); EntityManagerHelper.commit(); @@ -60,6 +60,7 @@ } catch (Throwable t) { EntityManagerHelper.logError("Exception during rollback", t); } + throw e; } finally { EntityManagerHelper.closeEntityManager(); } Modified: struts/sandbox/trunk/jpa-mailreader/src/main/java/entity/protocol/ProtocolHelperImpl.java URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/jpa-mailreader/src/main/java/entity/protocol/ProtocolHelperImpl.java?rev=598449&r1=598448&r2=598449&view=diff ============================================================================== --- struts/sandbox/trunk/jpa-mailreader/src/main/java/entity/protocol/ProtocolHelperImpl.java (original) +++ struts/sandbox/trunk/jpa-mailreader/src/main/java/entity/protocol/ProtocolHelperImpl.java Mon Nov 26 14:04:05 2007 @@ -35,7 +35,7 @@ * Default JPA implementation of <code>ProtocolHelper</code>. * </p> */ [EMAIL PROTECTED](serviceName = "protocol", endpointInterface = "entity.protocol.ProtocolHelper") [EMAIL PROTECTED](serviceName = "protocol.soap", endpointInterface = "entity.protocol.ProtocolHelper") public class ProtocolHelperImpl extends EntityHelper implements ProtocolHelper { public int count() throws PersistenceException { Modified: struts/sandbox/trunk/jpa-mailreader/src/main/java/entity/subscription/SubscriptionHelper.java URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/jpa-mailreader/src/main/java/entity/subscription/SubscriptionHelper.java?rev=598449&r1=598448&r2=598449&view=diff ============================================================================== --- struts/sandbox/trunk/jpa-mailreader/src/main/java/entity/subscription/SubscriptionHelper.java (original) +++ struts/sandbox/trunk/jpa-mailreader/src/main/java/entity/subscription/SubscriptionHelper.java Mon Nov 26 14:04:05 2007 @@ -57,7 +57,7 @@ * @param value * Subscription to insert */ - void create(Subscription value); + Subscription create(Subscription value); /** * <p> @@ -68,7 +68,7 @@ * @param value * Subscription instance to delete */ - void delete(Subscription value) throws Exception; + Subscription delete(Subscription value) throws Exception; /** * <p> @@ -101,6 +101,6 @@ * @param user * Copy of Subscription instance to match and update */ - void update(Subscription value) throws Exception; + Subscription update(Subscription value) throws Exception; } Modified: struts/sandbox/trunk/jpa-mailreader/src/main/java/entity/subscription/SubscriptionHelperImpl.java URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/jpa-mailreader/src/main/java/entity/subscription/SubscriptionHelperImpl.java?rev=598449&r1=598448&r2=598449&view=diff ============================================================================== --- struts/sandbox/trunk/jpa-mailreader/src/main/java/entity/subscription/SubscriptionHelperImpl.java (original) +++ struts/sandbox/trunk/jpa-mailreader/src/main/java/entity/subscription/SubscriptionHelperImpl.java Mon Nov 26 14:04:05 2007 @@ -30,7 +30,7 @@ * Default JPA implementation of <code>UserHelper</code>. * </p> */ [EMAIL PROTECTED](serviceName = "subscription", endpointInterface = "entity.subscription.SubscriptionHelper") [EMAIL PROTECTED](serviceName = "subscription.soap", endpointInterface = "entity.subscription.SubscriptionHelper") public class SubscriptionHelperImpl extends EntityHelper implements SubscriptionHelper { @@ -40,15 +40,15 @@ return result; } - public void create(Subscription value) { - createEntity(value); + public Subscription create(Subscription value) { + return (Subscription) createEntity(value); } - public void delete(Subscription value) throws Exception { + public Subscription delete(Subscription value) throws Exception { EntityManager manager = EntityManagerHelper.getEntityManager(); manager.merge(value); value.getUser().removeSubscription(value); - manager.remove(value); + return (Subscription) deleteEntity(value); } public Subscription find(String value) { @@ -63,7 +63,7 @@ return result; } - public void update(Subscription value) throws Exception { - updateEntity(value); + public Subscription update(Subscription value) throws Exception { + return (Subscription) updateEntity(value); } } Modified: struts/sandbox/trunk/jpa-mailreader/src/main/java/entity/user/UserHelper.java URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/jpa-mailreader/src/main/java/entity/user/UserHelper.java?rev=598449&r1=598448&r2=598449&view=diff ============================================================================== --- struts/sandbox/trunk/jpa-mailreader/src/main/java/entity/user/UserHelper.java (original) +++ struts/sandbox/trunk/jpa-mailreader/src/main/java/entity/user/UserHelper.java Mon Nov 26 14:04:05 2007 @@ -56,7 +56,7 @@ * @param value * User to insert */ - void create(User value); + User create(User value); /** * <p> @@ -66,7 +66,7 @@ * @param value * User instance to delete */ - void delete(User value) throws Exception; + User delete(User value) throws Exception; /** * <p> @@ -98,6 +98,6 @@ * @param user * Copy of User instance to match and update */ - void update(User value) throws Exception; + User update(User value) throws Exception; } Modified: struts/sandbox/trunk/jpa-mailreader/src/main/java/entity/user/UserHelperImpl.java URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/jpa-mailreader/src/main/java/entity/user/UserHelperImpl.java?rev=598449&r1=598448&r2=598449&view=diff ============================================================================== --- struts/sandbox/trunk/jpa-mailreader/src/main/java/entity/user/UserHelperImpl.java (original) +++ struts/sandbox/trunk/jpa-mailreader/src/main/java/entity/user/UserHelperImpl.java Mon Nov 26 14:04:05 2007 @@ -27,7 +27,7 @@ * Default JPA implementation of <code>UserHelper</code>. * </p> */ [EMAIL PROTECTED](serviceName = "user", endpointInterface = "entity.user.UserHelper") [EMAIL PROTECTED](serviceName = "user.soap", endpointInterface = "entity.user.UserHelper") public class UserHelperImpl extends EntityHelper implements UserHelper { public int count() throws PersistenceException { @@ -36,12 +36,12 @@ return result; } - public void create(User value) throws PersistenceException { - createEntity(value); + public User create(User value) throws PersistenceException { + return (User) createEntity(value); } - public void delete(User value) throws PersistenceException { - deleteEntity(value); + public User delete(User value) throws PersistenceException { + return (User) deleteEntity(value); } public User find(String value) { @@ -54,7 +54,7 @@ return result; } - public void update(User value) throws PersistenceException { - updateEntity(value); + public User update(User value) throws PersistenceException { + return (User) updateEntity(value); } } Modified: struts/sandbox/trunk/jpa-mailreader/src/main/java/struts.xml URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/jpa-mailreader/src/main/java/struts.xml?rev=598449&r1=598448&r2=598449&view=diff ============================================================================== --- struts/sandbox/trunk/jpa-mailreader/src/main/java/struts.xml (original) +++ struts/sandbox/trunk/jpa-mailreader/src/main/java/struts.xml Mon Nov 26 14:04:05 2007 @@ -24,8 +24,13 @@ </global-results> <global-exception-mappings> - <exception-mapping exception="java.lang.Exception" result="exception"/> + <exception-mapping exception="java.lang.Throwable" result="exception"/> </global-exception-mappings> + + <action name="index.html"> + <result type="redirect-action">index</result> + </action> + </package> <!-- include file="" / --> Modified: struts/sandbox/trunk/jpa-mailreader/src/main/webapp/index.html URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/jpa-mailreader/src/main/webapp/index.html?rev=598449&r1=598448&r2=598449&view=diff ============================================================================== --- struts/sandbox/trunk/jpa-mailreader/src/main/webapp/index.html (original) +++ struts/sandbox/trunk/jpa-mailreader/src/main/webapp/index.html Mon Nov 26 14:04:05 2007 @@ -1,10 +1,9 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> -<head> - <META HTTP-EQUIV="Refresh" CONTENT="0;URL=index.do"> -</head> - -<body> -<p>Loading ...</p> -</body> + <head> + <META HTTP-EQUIV="Refresh" CONTENT="0;URL=index.do"> + </head> + <body> + <p>Loading ...</p> + </body> </html>