You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by im...@apache.org on 2007/03/12 20:51:34 UTC
svn commit: r517357 - in /myfaces/fusion/trunk/examples/src/main:
java/org/apache/myfaces/examples/configurator/backings/
java/org/apache/myfaces/examples/configurator/model/dao/
java/org/apache/myfaces/examples/configurator/model/po/ resources/META-IN...
Author: imario
Date: Mon Mar 12 12:51:33 2007
New Revision: 517357
URL: http://svn.apache.org/viewvc?view=rev&rev=517357
Log:
added @Transactional function test
Added:
myfaces/fusion/trunk/examples/src/main/java/org/apache/myfaces/examples/configurator/backings/Customer.java
- copied, changed from r515737, myfaces/fusion/trunk/examples/src/main/java/org/apache/myfaces/examples/configurator/backings/Checkout.java
myfaces/fusion/trunk/examples/src/main/java/org/apache/myfaces/examples/configurator/model/dao/CustomerDAO.java
- copied, changed from r515737, myfaces/fusion/trunk/examples/src/main/java/org/apache/myfaces/examples/configurator/model/dao/PieceDAO.java
myfaces/fusion/trunk/examples/src/main/java/org/apache/myfaces/examples/configurator/model/po/Customer.java
- copied, changed from r515737, myfaces/fusion/trunk/examples/src/main/java/org/apache/myfaces/examples/configurator/model/po/Piece.java
myfaces/fusion/trunk/examples/src/main/webapp/configurator/Customer.jsp
- copied, changed from r515737, myfaces/fusion/trunk/examples/src/main/webapp/configurator/Checkout.jsp
Modified:
myfaces/fusion/trunk/examples/src/main/java/org/apache/myfaces/examples/configurator/model/dao/PieceDAO.java
myfaces/fusion/trunk/examples/src/main/resources/META-INF/persistence.xml
myfaces/fusion/trunk/examples/src/main/webapp/WEB-INF/applicationContext.xml
myfaces/fusion/trunk/examples/src/main/webapp/WEB-INF/faces-config.xml
myfaces/fusion/trunk/examples/src/main/webapp/configurator/ComponentSelection.jsp
myfaces/fusion/trunk/examples/src/main/webapp/default.css
Copied: myfaces/fusion/trunk/examples/src/main/java/org/apache/myfaces/examples/configurator/backings/Customer.java (from r515737, myfaces/fusion/trunk/examples/src/main/java/org/apache/myfaces/examples/configurator/backings/Checkout.java)
URL: http://svn.apache.org/viewvc/myfaces/fusion/trunk/examples/src/main/java/org/apache/myfaces/examples/configurator/backings/Customer.java?view=diff&rev=517357&p1=myfaces/fusion/trunk/examples/src/main/java/org/apache/myfaces/examples/configurator/backings/Checkout.java&r1=515737&p2=myfaces/fusion/trunk/examples/src/main/java/org/apache/myfaces/examples/configurator/backings/Customer.java&r2=517357
==============================================================================
--- myfaces/fusion/trunk/examples/src/main/java/org/apache/myfaces/examples/configurator/backings/Checkout.java (original)
+++ myfaces/fusion/trunk/examples/src/main/java/org/apache/myfaces/examples/configurator/backings/Customer.java Mon Mar 12 12:51:33 2007
@@ -18,12 +18,57 @@
*/
package org.apache.myfaces.examples.configurator.backings;
-import org.apache.myfaces.fusion.conversation.ConversationUtils;
+import org.apache.myfaces.examples.configurator.model.dao.CustomerDAO;
+import org.springframework.transaction.annotation.Transactional;
+import org.apache.myfaces.examples.lib.FacesConst;
-public class Checkout
+public class Customer
{
+ private CustomerDAO customerDao;
+ private org.apache.myfaces.examples.configurator.model.po.Customer customer;
+
+ public CustomerDAO getCustomerDao()
+ {
+ return customerDao;
+ }
+
+ public void setCustomerDao(CustomerDAO customerDao)
+ {
+ this.customerDao = customerDao;
+ }
+
public void initView()
{
- ConversationUtils.ensureConversationRedirect("configuratorData", "/configurator/ComponentSelection.faces");
+ if (customer == null)
+ {
+ customer = new org.apache.myfaces.examples.configurator.model.po.Customer();
+ }
+ }
+
+ public org.apache.myfaces.examples.configurator.model.po.Customer getCustomer()
+ {
+ return customer;
+ }
+
+ @Transactional
+ public String saveAction()
+ {
+ // should insert or update
+ getCustomerDao().save(getCustomer());
+
+ return FacesConst.SUCCESS;
+ }
+
+ @Transactional
+ public String updateAction()
+ {
+ // should update
+ return FacesConst.SUCCESS;
+ }
+
+ public String checkAction()
+ {
+ // should not issue a db request even if you changed something in the view
+ return FacesConst.SUCCESS;
}
-}
+}
\ No newline at end of file
Copied: myfaces/fusion/trunk/examples/src/main/java/org/apache/myfaces/examples/configurator/model/dao/CustomerDAO.java (from r515737, myfaces/fusion/trunk/examples/src/main/java/org/apache/myfaces/examples/configurator/model/dao/PieceDAO.java)
URL: http://svn.apache.org/viewvc/myfaces/fusion/trunk/examples/src/main/java/org/apache/myfaces/examples/configurator/model/dao/CustomerDAO.java?view=diff&rev=517357&p1=myfaces/fusion/trunk/examples/src/main/java/org/apache/myfaces/examples/configurator/model/dao/PieceDAO.java&r1=515737&p2=myfaces/fusion/trunk/examples/src/main/java/org/apache/myfaces/examples/configurator/model/dao/CustomerDAO.java&r2=517357
==============================================================================
--- myfaces/fusion/trunk/examples/src/main/java/org/apache/myfaces/examples/configurator/model/dao/PieceDAO.java (original)
+++ myfaces/fusion/trunk/examples/src/main/java/org/apache/myfaces/examples/configurator/model/dao/CustomerDAO.java Mon Mar 12 12:51:33 2007
@@ -1,17 +1,17 @@
package org.apache.myfaces.examples.configurator.model.dao;
-import org.apache.myfaces.examples.configurator.model.po.Piece;
+import org.apache.myfaces.examples.configurator.model.po.Customer;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
-public class PieceDAO
+public class CustomerDAO
{
@PersistenceContext
private EntityManager entityManager;
- public Piece getByKey(Long pieceId)
+ public void save(Customer customer)
{
- return entityManager.find(Piece.class, pieceId);
+ entityManager.persist(customer);
}
}
Modified: myfaces/fusion/trunk/examples/src/main/java/org/apache/myfaces/examples/configurator/model/dao/PieceDAO.java
URL: http://svn.apache.org/viewvc/myfaces/fusion/trunk/examples/src/main/java/org/apache/myfaces/examples/configurator/model/dao/PieceDAO.java?view=diff&rev=517357&r1=517356&r2=517357
==============================================================================
--- myfaces/fusion/trunk/examples/src/main/java/org/apache/myfaces/examples/configurator/model/dao/PieceDAO.java (original)
+++ myfaces/fusion/trunk/examples/src/main/java/org/apache/myfaces/examples/configurator/model/dao/PieceDAO.java Mon Mar 12 12:51:33 2007
@@ -10,6 +10,16 @@
@PersistenceContext
private EntityManager entityManager;
+ public EntityManager getEntityManager()
+ {
+ return entityManager;
+ }
+
+ public void setEntityManager(EntityManager entityManager)
+ {
+ this.entityManager = entityManager;
+ }
+
public Piece getByKey(Long pieceId)
{
return entityManager.find(Piece.class, pieceId);
Copied: myfaces/fusion/trunk/examples/src/main/java/org/apache/myfaces/examples/configurator/model/po/Customer.java (from r515737, myfaces/fusion/trunk/examples/src/main/java/org/apache/myfaces/examples/configurator/model/po/Piece.java)
URL: http://svn.apache.org/viewvc/myfaces/fusion/trunk/examples/src/main/java/org/apache/myfaces/examples/configurator/model/po/Customer.java?view=diff&rev=517357&p1=myfaces/fusion/trunk/examples/src/main/java/org/apache/myfaces/examples/configurator/model/po/Piece.java&r1=515737&p2=myfaces/fusion/trunk/examples/src/main/java/org/apache/myfaces/examples/configurator/model/po/Customer.java&r2=517357
==============================================================================
--- myfaces/fusion/trunk/examples/src/main/java/org/apache/myfaces/examples/configurator/model/po/Piece.java (original)
+++ myfaces/fusion/trunk/examples/src/main/java/org/apache/myfaces/examples/configurator/model/po/Customer.java Mon Mar 12 12:51:33 2007
@@ -4,28 +4,20 @@
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
-import javax.persistence.ManyToOne;
import javax.persistence.Version;
-import javax.persistence.Column;
@Entity
-public class Piece
+public class Customer
{
@Id
@GeneratedValue(strategy = GenerationType.TABLE)
private Long id;
- @ManyToOne
- private Component component;
+ private String firstName;
- // business key
- @Column(nullable = false)
- private String number;
+ private String lastName;
- @Column(nullable = false)
- private String description;
-
- private double price;
+ private String email;
@Version
private Long version;
@@ -40,44 +32,34 @@
this.id = id;
}
- public Component getComponent()
- {
- return component;
- }
-
- public void setComponent(Component component)
- {
- this.component = component;
- }
-
- public String getNumber()
+ public String getFirstName()
{
- return number;
+ return firstName;
}
- public void setNumber(String number)
+ public void setFirstName(String firstName)
{
- this.number = number;
+ this.firstName = firstName;
}
- public String getDescription()
+ public String getLastName()
{
- return description;
+ return lastName;
}
- public void setDescription(String description)
+ public void setLastName(String lastName)
{
- this.description = description;
+ this.lastName = lastName;
}
- public double getPrice()
+ public String getEmail()
{
- return price;
+ return email;
}
- public void setPrice(double price)
+ public void setEmail(String email)
{
- this.price = price;
+ this.email = email;
}
public Long getVersion()
Modified: myfaces/fusion/trunk/examples/src/main/resources/META-INF/persistence.xml
URL: http://svn.apache.org/viewvc/myfaces/fusion/trunk/examples/src/main/resources/META-INF/persistence.xml?view=diff&rev=517357&r1=517356&r2=517357
==============================================================================
--- myfaces/fusion/trunk/examples/src/main/resources/META-INF/persistence.xml (original)
+++ myfaces/fusion/trunk/examples/src/main/resources/META-INF/persistence.xml Mon Mar 12 12:51:33 2007
@@ -28,6 +28,7 @@
<class>org.apache.myfaces.examples.configurator.model.po.OrderHead</class>
<class>org.apache.myfaces.examples.configurator.model.po.OrderItem</class>
<class>org.apache.myfaces.examples.configurator.model.po.Piece</class>
+ <class>org.apache.myfaces.examples.configurator.model.po.Customer</class>
<class>org.apache.myfaces.examples.ballot.model.Item</class>
<class>org.apache.myfaces.examples.ballot.model.Topic</class>
<class>org.apache.myfaces.examples.ballot.model.Vote</class>
Modified: myfaces/fusion/trunk/examples/src/main/webapp/WEB-INF/applicationContext.xml
URL: http://svn.apache.org/viewvc/myfaces/fusion/trunk/examples/src/main/webapp/WEB-INF/applicationContext.xml?view=diff&rev=517357&r1=517356&r2=517357
==============================================================================
--- myfaces/fusion/trunk/examples/src/main/webapp/WEB-INF/applicationContext.xml (original)
+++ myfaces/fusion/trunk/examples/src/main/webapp/WEB-INF/applicationContext.xml Mon Mar 12 12:51:33 2007
@@ -130,6 +130,11 @@
autowire="byName">
</bean>
<bean
+ name="customerDao"
+ class="org.apache.myfaces.examples.configurator.model.dao.CustomerDAO"
+ autowire="byName">
+ </bean>
+ <bean
name="initialization"
class="org.apache.myfaces.examples.configurator.model.Initialization">
</bean>
@@ -138,6 +143,15 @@
<bean
name="configuratorData"
class="org.apache.myfaces.examples.configurator.backings.ConfiguratorData"
+ scope="conversation"
+ autowire="byName">
+
+ <aop:scoped-proxy/>
+ </bean>
+
+ <bean
+ name="configuratorCustomer"
+ class="org.apache.myfaces.examples.configurator.backings.Customer"
scope="conversation"
autowire="byName">
Modified: myfaces/fusion/trunk/examples/src/main/webapp/WEB-INF/faces-config.xml
URL: http://svn.apache.org/viewvc/myfaces/fusion/trunk/examples/src/main/webapp/WEB-INF/faces-config.xml?view=diff&rev=517357&r1=517356&r2=517357
==============================================================================
--- myfaces/fusion/trunk/examples/src/main/webapp/WEB-INF/faces-config.xml (original)
+++ myfaces/fusion/trunk/examples/src/main/webapp/WEB-INF/faces-config.xml Mon Mar 12 12:51:33 2007
@@ -58,6 +58,15 @@
</navigation-rule>
<navigation-rule>
+ <description>edit/create customer</description>
+ <navigation-case>
+ <from-outcome>editCustomer</from-outcome>
+ <to-view-id>/configurator/Customer.jsp</to-view-id>
+ <redirect/>
+ </navigation-case>
+ </navigation-rule>
+
+ <navigation-rule>
<description>edit/new topic</description>
<navigation-case>
<from-action>#{ballotHall.newTopicAction}</from-action>
Modified: myfaces/fusion/trunk/examples/src/main/webapp/configurator/ComponentSelection.jsp
URL: http://svn.apache.org/viewvc/myfaces/fusion/trunk/examples/src/main/webapp/configurator/ComponentSelection.jsp?view=diff&rev=517357&r1=517356&r2=517357
==============================================================================
--- myfaces/fusion/trunk/examples/src/main/webapp/configurator/ComponentSelection.jsp (original)
+++ myfaces/fusion/trunk/examples/src/main/webapp/configurator/ComponentSelection.jsp Mon Mar 12 12:51:33 2007
@@ -32,6 +32,12 @@
<h:outputText value="Assemble your PC" />
</t:htmlTag>
+ <t:panelGrid columns="1">
+ <h:commandLink
+ action="editCustomer"
+ value="Customer" />
+ </t:panelGrid>
+
<t:panelGrid
columns="2"
columnClasses="fixtext,selection">
Copied: myfaces/fusion/trunk/examples/src/main/webapp/configurator/Customer.jsp (from r515737, myfaces/fusion/trunk/examples/src/main/webapp/configurator/Checkout.jsp)
URL: http://svn.apache.org/viewvc/myfaces/fusion/trunk/examples/src/main/webapp/configurator/Customer.jsp?view=diff&rev=517357&p1=myfaces/fusion/trunk/examples/src/main/webapp/configurator/Checkout.jsp&r1=515737&p2=myfaces/fusion/trunk/examples/src/main/webapp/configurator/Customer.jsp&r2=517357
==============================================================================
--- myfaces/fusion/trunk/examples/src/main/webapp/configurator/Checkout.jsp (original)
+++ myfaces/fusion/trunk/examples/src/main/webapp/configurator/Customer.jsp Mon Mar 12 12:51:33 2007
@@ -29,74 +29,49 @@
<h:form>
<t:htmlTag value="h3">
- <h:outputText value="Buy your PC"/>
+ <h:outputText value="Enter your data"/>
</t:htmlTag>
- <t:dataTable
- var="order"
- value="#{configuratorData.orderItems}"
- rowClasses="TR1, TR2">
-
+ <h:panelGrid columns="2">
<f:facet name="footer">
- <h:panelGroup>
- <h:commandButton value="Cancel" action="#{configuratorData.cancelAction}"/>
- <h:commandButton value="Buy" action="#{configuratorData.buyAction}"/>
- </h:panelGroup>
+ <h:panelGrid
+ columns="2"
+ columnClasses="tRight, tRight">
+ <h:outputText value="just calls an empty method without @Transactional - should NOT issue any db request" />
+ <h:commandButton value="Check" action="#{configuratorCustomer.checkAction}"/>
+
+ <h:outputText value="persist the entity using entityManager.persist and @Transactional - should issue insert or update db request" />
+ <h:commandButton value="Save" action="#{configuratorCustomer.saveAction}"/>
+
+ <h:outputText value="just calles a @Transactional method; no entityManager involved - should issue an update db request ONLY if you've saved before" />
+ <h:commandButton value="Update" action="#{configuratorCustomer.updateAction}"/>
+ </h:panelGrid>
</f:facet>
- <h:column>
- <f:facet name="header">
- <h:outputText value="position"/>
- </f:facet>
- <h:outputText value="#{order.posnr}"/>
- </h:column>
-
- <h:column>
- <f:facet name="header">
- <h:outputText value="count"/>
- </f:facet>
- <h:inputText value="#{order.amount}">
- <s:convertNumber
- groupingUsed="true"
- minFractionDigits="0"
- maxFractionDigits="0"/>
- </h:inputText>
- </h:column>
-
- <h:column>
- <f:facet name="header">
- <h:outputText value="number"/>
- </f:facet>
- <h:outputText value="#{order.piece.number}"/>
- </h:column>
-
- <h:column>
- <f:facet name="header">
- <h:outputText value="description"/>
- </f:facet>
- <h:outputText value="#{order.piece.description}"/>
- </h:column>
-
- <h:column>
- <f:facet name="header">
- <h:outputText value="price"/>
- </f:facet>
- <h:outputText value="#{order.piece.price}">
- <f:convertNumber
- groupingUsed="true"
- minFractionDigits="2"
- maxFractionDigits="2"/>
- </h:outputText>
- </h:column>
-
- <h:column>
- <f:facet name="header">
- <h:outputText value="value"/>
- </f:facet>
- <h:outputText value="???"/>
- </h:column>
-
- </t:dataTable>
+ <h:outputLabel
+ for="firstname"
+ value="First name" />
+ <h:inputText
+ id="firstname"
+ value="#{configuratorCustomer.customer.firstName}"
+ required="true"/>
+
+ <h:outputLabel
+ for="lastname"
+ value="First name" />
+ <h:inputText
+ id="lastname"
+ value="#{configuratorCustomer.customer.lastName}"
+ required="true"/>
+
+ <h:outputLabel
+ for="email"
+ value="E-Mail" />
+ <h:inputText
+ id="email"
+ value="#{configuratorCustomer.customer.email}"
+ required="true"/>
+ </h:panelGrid>
</h:form>
Modified: myfaces/fusion/trunk/examples/src/main/webapp/default.css
URL: http://svn.apache.org/viewvc/myfaces/fusion/trunk/examples/src/main/webapp/default.css?view=diff&rev=517357&r1=517356&r2=517357
==============================================================================
--- myfaces/fusion/trunk/examples/src/main/webapp/default.css (original)
+++ myfaces/fusion/trunk/examples/src/main/webapp/default.css Mon Mar 12 12:51:33 2007
@@ -99,4 +99,14 @@
.nowrap
{
white-space: nowrap;
+}
+
+.tLeft
+{
+ text-align: left;
+}
+
+.tRight
+{
+ text-align: right;
}