Author: husted
Date: Thu Nov 29 07:15:50 2007
New Revision: 599476

URL: http://svn.apache.org/viewvc?rev=599476&view=rev
Log:
WW-1399 Add simple Hello package to demonstrate basic JPA CRUD. Remove XFire 
test configuration for now. Would need to add a EntityFilter to do for Services 
what the EntityInterceptor does for Actions (or use the filter for both). It 
would also need to observe A&A (once we add A&A back in!). 

Added:
    struts/sandbox/trunk/jpa-mailreader/src/main/java/hello/
    struts/sandbox/trunk/jpa-mailreader/src/main/java/hello/Message.java
    struts/sandbox/trunk/jpa-mailreader/src/test/java/hello/
    struts/sandbox/trunk/jpa-mailreader/src/test/java/hello/MessageTest.java
Removed:
    struts/sandbox/trunk/jpa-mailreader/src/main/java/META-INF/xfire/
Modified:
    struts/sandbox/trunk/jpa-mailreader/src/main/java/META-INF/persistence.xml
    struts/sandbox/trunk/jpa-mailreader/src/main/java/log4j.properties
    struts/sandbox/trunk/jpa-mailreader/src/main/java/struts.xml
    struts/sandbox/trunk/jpa-mailreader/src/main/webapp/user/@form.jsp

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=599476&r1=599475&r2=599476&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 
Thu Nov 29 07:15:50 2007
@@ -20,13 +20,10 @@
 -->
 
        <persistence-unit name="entity" transaction-type="RESOURCE_LOCAL">
-               <provider>org.hibernate.ejb.HibernatePersistence</provider>
-        <class>entity.protocol.Protocol</class>
-        <class>entity.subscription.Subscription</class>
-        <class>entity.user.User</class>
+           <provider>org.hibernate.ejb.HibernatePersistence</provider>
                <properties>
                        <property name = "hibernate.connection.driver_class" 
value = "org.apache.derby.jdbc.ClientDriver"/>
-                       <property name = "hibernate.connection.url" value = 
"jdbc:derby://localhost:1527/mailreader"/>
+                       <property name = "hibernate.connection.url" value = 
"jdbc:derby://localhost:1527/mailreader;create=true"/>
                        <property name = "hibernate.connection.username" value 
= "app"/>
                        <property name = "hibernate.connection.password" value 
= "app"/>
                    <property name = "hibernate.dialect" 
value="org.hibernate.dialect.DerbyDialect"/>

Added: struts/sandbox/trunk/jpa-mailreader/src/main/java/hello/Message.java
URL: 
http://svn.apache.org/viewvc/struts/sandbox/trunk/jpa-mailreader/src/main/java/hello/Message.java?rev=599476&view=auto
==============================================================================
--- struts/sandbox/trunk/jpa-mailreader/src/main/java/hello/Message.java (added)
+++ struts/sandbox/trunk/jpa-mailreader/src/main/java/hello/Message.java Thu 
Nov 29 07:15:50 2007
@@ -0,0 +1,53 @@
+package hello;
+
+import javax.persistence.CascadeType;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import javax.persistence.NamedQueries;
+import javax.persistence.NamedQuery;
+import javax.persistence.OneToOne;
+
+import entity.user.User;
+
[EMAIL PROTECTED](name = "APP_MESSAGE")
[EMAIL PROTECTED]({
+        @NamedQuery(name = Message.COUNT, query = Message.COUNT_QUERY) })
+public class Message {
+
+    public static final String COUNT = "Message.COUNT";
+    private static final String COUNT_QUERY = "SELECT COUNT(*) FROM 
APP_MESSAGE";
+
+    @Id
+    @GeneratedValue
+    private Long id;
+    public Long getId() {
+        return id;
+    }
+    void setId(Long value) {
+        id = value;
+    }    
+    
+    private String text;
+    public String getText() {
+        return text;
+    }
+    public void setText(String value) {
+        text = value;
+    }
+
+    @OneToOne(cascade=CascadeType.ALL)
+    private Message message;    
+    public Message getNextMessage() {
+        return message;
+    }
+    public void setNextMessage(Message value) {
+        message = value;
+    }
+    
+    Message() {}
+    public Message(String value) {
+        text = value;
+    }
+    
+}
\ No newline at end of file

Modified: struts/sandbox/trunk/jpa-mailreader/src/main/java/log4j.properties
URL: 
http://svn.apache.org/viewvc/struts/sandbox/trunk/jpa-mailreader/src/main/java/log4j.properties?rev=599476&r1=599475&r2=599476&view=diff
==============================================================================
--- struts/sandbox/trunk/jpa-mailreader/src/main/java/log4j.properties 
(original)
+++ struts/sandbox/trunk/jpa-mailreader/src/main/java/log4j.properties Thu Nov 
29 07:15:50 2007
@@ -1,9 +1,9 @@
 
-# -- production mode --
+# -- development mode --
 
-log4j.rootLogger = error, stdout
+log4j.rootLogger = info, stdout
 log4j.appender.stdout = org.apache.log4j.ConsoleAppender
-log4j.appender.stdout.Threshold = error
+log4j.appender.stdout.Threshold = info
 log4j.appender.stdout.Target = System.out
 log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
 log4j.appender.stdout.layout.ConversionPattern = %d{ISO8601} %-5p [%F:%L] : 
%m%n

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=599476&r1=599475&r2=599476&view=diff
==============================================================================
--- struts/sandbox/trunk/jpa-mailreader/src/main/java/struts.xml (original)
+++ struts/sandbox/trunk/jpa-mailreader/src/main/java/struts.xml Thu Nov 29 
07:15:50 2007
@@ -7,6 +7,7 @@
 
     <constant name="struts.devMode" value="false" />
     <constant name="struts.action.extension" value="do" />
+    <constant name="struts.serve.static" value="true" />
     
     <package name="entity-default" extends="struts-default">
                <interceptors>

Modified: struts/sandbox/trunk/jpa-mailreader/src/main/webapp/user/@form.jsp
URL: 
http://svn.apache.org/viewvc/struts/sandbox/trunk/jpa-mailreader/src/main/webapp/user/%40form.jsp?rev=599476&r1=599475&r2=599476&view=diff
==============================================================================
--- struts/sandbox/trunk/jpa-mailreader/src/main/webapp/user/@form.jsp 
(original)
+++ struts/sandbox/trunk/jpa-mailreader/src/main/webapp/user/@form.jsp Thu Nov 
29 07:15:50 2007
@@ -23,6 +23,7 @@
     <s:if test="input == 'create'">
         <s:submit key="button.update" action="create" />     
         <s:submit key="button.cancel" action="create" method="cancel" 
onclick="form.onsubmit=null"/>
+        <s:submit action="create" >Label</s:submit>     
     </s:if>
     <s:else>
         <s:submit key="button.update" action="update"/>

Added: struts/sandbox/trunk/jpa-mailreader/src/test/java/hello/MessageTest.java
URL: 
http://svn.apache.org/viewvc/struts/sandbox/trunk/jpa-mailreader/src/test/java/hello/MessageTest.java?rev=599476&view=auto
==============================================================================
--- struts/sandbox/trunk/jpa-mailreader/src/test/java/hello/MessageTest.java 
(added)
+++ struts/sandbox/trunk/jpa-mailreader/src/test/java/hello/MessageTest.java 
Thu Nov 29 07:15:50 2007
@@ -0,0 +1,78 @@
+package hello;
+
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceException;
+import javax.persistence.Query;
+
+import entity.EntityManagerHelper;
+import entity.user.User;
+import junit.framework.TestCase;
+
+public class MessageTest extends TestCase {
+
+    protected EntityManager manager;
+
+    protected void setUp() throws Exception {
+        super.setUp();
+        manager = EntityManagerHelper.getEntityManager();
+        EntityManagerHelper.beginTransaction();        
+    }
+
+    protected void tearDown() throws Exception {
+        super.tearDown();
+        EntityManagerHelper.commit();
+        EntityManagerHelper.closeEntityManager();        
+    }    
+    
+    public int count() throws Exception {
+        final String COUNT_QUERY = "SELECT COUNT(*) FROM APP_MESSAGE";        
+        Query query = manager.createQuery(COUNT_QUERY);        
+        Long count = (Long) query.getSingleResult();
+        int result = count.intValue();
+        return result;
+    }    
+    
+    public void testMessage() throws Exception {
+        final String MESSAGE = "Hello World!";
+        
+        Message message = new Message(MESSAGE);
+        
+        String text = message.getText();
+        assertEquals(MESSAGE,text);
+        
+        manager.persist(message);
+    }
+    
+    public void testNextMessage() throws Exception {
+        final String MESSAGE = "Greeting Earthling!";
+        final String NEXT_MESSAGE = "Take me to your leader.";        
+
+        Message message = new Message(MESSAGE);
+        Message next_message = new Message(NEXT_MESSAGE);       
+        message.setNextMessage(next_message);
+        
+        String text = message.getText();
+        assertEquals(MESSAGE, text);
+        String next_text = message.getNextMessage().getText();
+        assertEquals(NEXT_MESSAGE, next_text);
+
+        int beginCount = count();
+            manager.persist(message);
+        int endCount = count();
+        assertTrue("Expected count to increase!",endCount>beginCount);
+    }
+    
+    public void testInsertDelete() throws Exception {       
+        Message message = new Message("Delete me");
+        int beginCount = count();
+        manager.persist(message);
+        manager.flush();
+        int endCount = count();
+        assertTrue(endCount>beginCount);
+        manager.remove(message);
+        manager.flush();
+        int finalCount = count();
+        assertTrue(finalCount == beginCount);
+    }
+
+}


Reply via email to