[prev in list] [next in list] [prev in thread] [next in thread]
List: jboss-cvs-commits
Subject: [jboss-cvs]
From: michael.yuan () jboss ! com (Michael Yuan)
Date: 2007-01-24 11:48:54
Message-ID: E1H4S03-00070e-PZ () committer01 ! frg ! pub ! inap ! atl ! jboss ! com
[Download RAW message or body]
User: myuan
Date: 07/01/09 20:11:31
Modified: examples/hibernate2/src/org/jboss/seam/example/hibernate
Booking.java BookingListAction.java
ChangePasswordAction.java Hotel.java
HotelBookingAction.java HotelSearchingAction.java
LoginAction.java RegisterAction.java User.java
Removed: examples/hibernate2/src/org/jboss/seam/example/hibernate
LogoutAction.java
Log:
Bring up to speed with booking example
Revision Changes Path
1.4 +15 -3 \
jboss-seam/examples/hibernate2/src/org/jboss/seam/example/hibernate/Booking.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: Booking.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/examples/hibernate2/src/org/jboss/seam/example/hibernate/Booking.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- Booking.java 1 Dec 2006 23:57:23 -0000 1.3
+++ Booking.java 10 Jan 2007 01:11:31 -0000 1.4
@@ -1,14 +1,14 @@
-//$Id: Booking.java,v 1.3 2006/12/01 23:57:23 myuan Exp $
+//$Id: Booking.java,v 1.4 2007/01/10 01:11:31 myuan Exp $
package org.jboss.seam.example.hibernate;
import java.io.Serializable;
+import java.math.BigDecimal;
import java.text.DateFormat;
import java.util.Date;
import javax.persistence.Basic;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
import javax.persistence.Temporal;
@@ -44,6 +44,18 @@
this.user = user;
}
+ @Transient
+ public BigDecimal getTotal()
+ {
+ return hotel.getPrice().multiply( new BigDecimal( getNights() ) );
+ }
+
+ @Transient
+ public int getNights()
+ {
+ return (int) ( checkoutDate.getTime() - checkinDate.getTime() ) / 1000 / 60 \
/ 60 / 24; + }
+
@Id @GeneratedValue
public Long getId()
{
@@ -113,7 +125,7 @@
public String getDescription()
{
DateFormat df = DateFormat.getDateInstance(DateFormat.MEDIUM);
- return hotel.getName() +
+ return hotel==null ? null : hotel.getName() +
", " + df.format( getCheckinDate() ) +
" to " + df.format( getCheckoutDate() );
}
1.2 +16 -11 \
jboss-seam/examples/hibernate2/src/org/jboss/seam/example/hibernate/BookingListAction.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: BookingListAction.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/examples/hibernate2/src/org/jboss/seam/example/hibernate/BookingListAction.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- BookingListAction.java 8 Nov 2006 10:01:02 -0000 1.1
+++ BookingListAction.java 10 Jan 2007 01:11:31 -0000 1.2
@@ -1,28 +1,31 @@
-//$Id: BookingListAction.java,v 1.1 2006/11/08 10:01:02 myuan Exp $
+//$Id: BookingListAction.java,v 1.2 2007/01/10 01:11:31 myuan Exp $
package org.jboss.seam.example.hibernate;
-import org.hibernate.Session;
+// import static javax.ejb.TransactionAttributeType.REQUIRES_NEW;
import static org.jboss.seam.ScopeType.SESSION;
import java.io.Serializable;
import java.util.List;
-import org.jboss.seam.annotations.Logger;
+// import javax.ejb.TransactionAttribute;
+
import org.jboss.seam.annotations.Destroy;
import org.jboss.seam.annotations.Factory;
import org.jboss.seam.annotations.In;
+import org.jboss.seam.annotations.Logger;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.Observer;
-import org.jboss.seam.annotations.Out;
import org.jboss.seam.annotations.Scope;
import org.jboss.seam.annotations.datamodel.DataModel;
import org.jboss.seam.annotations.datamodel.DataModelSelection;
import org.jboss.seam.core.FacesMessages;
import org.jboss.seam.log.Log;
+import org.hibernate.Session;
+
@Scope(SESSION)
@Name("bookingList")
-// @LoggedIn
+// @TransactionAttribute(REQUIRES_NEW)
public class BookingListAction implements Serializable
{
@@ -35,14 +38,13 @@
@DataModel
private List<Booking> bookings;
@DataModelSelection
- @Out(required=false)
private Booking booking;
@Logger
private Log log;
@Factory
- @Observer("bookingConfirmed")
+ // @Observer("bookingConfirmed")
public void getBookings()
{
bookings = bookingDatabase.createQuery("select b from Booking b where \
b.user.username = :username order by b.checkinDate") @@ -50,15 +52,18 @@
.list();
}
- public String cancel()
+ public void cancel()
{
- log.info("Cancel booking: #0 for #{user.username}", booking.getId());
+ log.info("Cancel booking: #{bookingList.booking.id} for #{user.username}");
Booking cancelled = (Booking) bookingDatabase.get(Booking.class, \
booking.getId()); if (cancelled!=null) bookingDatabase.delete( cancelled );
getBookings();
- FacesMessages.instance().add("Booking cancelled for confirmation number \
#{booking.id}");
- return "main";
+ FacesMessages.instance().add("Booking cancelled for confirmation number \
#{bookingList.booking.id}"); }
+ public Booking getBooking()
+ {
+ return booking;
+ }
}
1.2 +12 -11 \
jboss-seam/examples/hibernate2/src/org/jboss/seam/example/hibernate/ChangePasswordAction.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: ChangePasswordAction.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/examples/hibernate2/src/org/jboss/seam/example/hibernate/ChangePasswordAction.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- ChangePasswordAction.java 8 Nov 2006 10:01:02 -0000 1.1
+++ ChangePasswordAction.java 10 Jan 2007 01:11:31 -0000 1.2
@@ -1,7 +1,6 @@
-//$Id: ChangePasswordAction.java,v 1.1 2006/11/08 10:01:02 myuan Exp $
+//$Id: ChangePasswordAction.java,v 1.2 2007/01/10 01:11:31 myuan Exp $
package org.jboss.seam.example.hibernate;
-import org.hibernate.Session;
import static org.jboss.seam.ScopeType.EVENT;
import org.jboss.seam.annotations.Destroy;
@@ -11,10 +10,12 @@
import org.jboss.seam.annotations.Scope;
import org.jboss.seam.core.FacesMessages;
+import org.hibernate.Session;
+
@Scope(EVENT)
@Name("changePassword")
-// @LoggedIn
-public class ChangePasswordAction {
+public class ChangePasswordAction
+{
@In @Out
private User user;
@@ -24,27 +25,27 @@
private String verify;
- public String changePassword()
+ private boolean changed;
+
+ public void changePassword()
{
if ( user.getPassword().equals(verify) )
{
user = (User) bookingDatabase.merge(user);
FacesMessages.instance().add("Password updated");
- return "main";
+ changed = true;
}
else
{
FacesMessages.instance().add("verify", "Re-enter new password");
revertUser();
verify=null;
- return null;
}
}
- public String cancel()
+ public boolean isChanged()
{
- revertUser();
- return "main";
+ return changed;
}
private void revertUser()
1.2 +14 -2 \
jboss-seam/examples/hibernate2/src/org/jboss/seam/example/hibernate/Hotel.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: Hotel.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/examples/hibernate2/src/org/jboss/seam/example/hibernate/Hotel.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- Hotel.java 8 Nov 2006 10:01:02 -0000 1.1
+++ Hotel.java 10 Jan 2007 01:11:31 -0000 1.2
@@ -1,8 +1,10 @@
-//$Id: Hotel.java,v 1.1 2006/11/08 10:01:02 myuan Exp $
+//$Id: Hotel.java,v 1.2 2007/01/10 01:11:31 myuan Exp $
package org.jboss.seam.example.hibernate;
import java.io.Serializable;
+import java.math.BigDecimal;
+import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
@@ -22,6 +24,7 @@
private String state;
private String zip;
private String country;
+ private BigDecimal price;
@Id @GeneratedValue
public Long getId()
@@ -88,12 +91,21 @@
{
return country;
}
-
public void setCountry(String country)
{
this.country = country;
}
+ @Column(precision=6, scale=2)
+ public BigDecimal getPrice()
+ {
+ return price;
+ }
+ public void setPrice(BigDecimal price)
+ {
+ this.price = price;
+ }
+
@Override
public String toString()
{
1.3 +28 -25 \
jboss-seam/examples/hibernate2/src/org/jboss/seam/example/hibernate/HotelBookingAction.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: HotelBookingAction.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/examples/hibernate2/src/org/jboss/seam/example/hibernate/HotelBookingAction.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- HotelBookingAction.java 17 Nov 2006 02:49:04 -0000 1.2
+++ HotelBookingAction.java 10 Jan 2007 01:11:31 -0000 1.3
@@ -1,11 +1,11 @@
-//$Id: HotelBookingAction.java,v 1.2 2006/11/17 02:49:04 gavin Exp $
+//$Id: HotelBookingAction.java,v 1.3 2007/01/10 01:11:31 myuan Exp $
package org.jboss.seam.example.hibernate;
+import static org.jboss.seam.ScopeType.SESSION;
import static javax.persistence.PersistenceContextType.EXTENDED;
import java.util.Calendar;
-import java.util.Date;
-import org.hibernate.Session;
+import java.util.List;
import org.jboss.seam.annotations.Begin;
import org.jboss.seam.annotations.Destroy;
@@ -18,9 +18,11 @@
import org.jboss.seam.core.FacesMessages;
import org.jboss.seam.log.Log;
+import org.hibernate.Session;
+
@Name("hotelBooking")
-// @LoggedIn
-public class HotelBookingAction {
+public class HotelBookingAction
+{
@In (create=true)
private Session bookingDatabase;
@@ -44,61 +46,62 @@
@Logger
private Log log;
+ private boolean bookingValid;
+
@Begin
- public String selectHotel(Hotel selectedHotel)
+ public void selectHotel(Hotel selectedHotel)
{
hotel = (Hotel) bookingDatabase.merge(selectedHotel);
- return "hotel";
}
- public String bookHotel()
+ public void bookHotel()
{
booking = new Booking(hotel, user);
Calendar calendar = Calendar.getInstance();
booking.setCheckinDate( calendar.getTime() );
calendar.add(Calendar.DAY_OF_MONTH, 1);
booking.setCheckoutDate( calendar.getTime() );
-
- return "book";
}
- public String setBookingDetails()
+ public void setBookingDetails()
{
- if (booking==null || hotel==null) return "main";
-
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.DAY_OF_MONTH, -1);
if ( booking.getCheckinDate().before( calendar.getTime() ) )
{
facesMessages.add("Check in date must be a future date");
- return null;
}
else if ( !booking.getCheckinDate().before( booking.getCheckoutDate() ) )
{
facesMessages.add("Check out date must be later than check in date");
- return null;
}
else
{
- return "confirm";
+ bookingValid=true;
}
}
+ public boolean isBookingValid()
+ {
+ return bookingValid;
+ }
+
+ @Out (required=false, scope=SESSION)
+ List <Booking> bookings;
+
@End
- public String confirm()
+ public void confirm()
{
- if (booking==null || hotel==null) return "main";
bookingDatabase.persist(booking);
facesMessages.add("Thank you, #{user.name}, your confimation number for \
#{hotel.name} is #{booking.id}"); log.info("New booking: #{booking.id} for \
#{user.username}");
- events.raiseEvent("bookingConfirmed");
- return "confirmed";
+ // events.raiseTransactionSuccessEvent("bookingConfirmed");
+
+ // force refresh in main.xhtml
+ bookings = null;
}
@End
- public String cancel()
- {
- return "main";
- }
+ public void cancel() {}
}
1.2 +11 -12 \
jboss-seam/examples/hibernate2/src/org/jboss/seam/example/hibernate/HotelSearchingAction.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: HotelSearchingAction.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/examples/hibernate2/src/org/jboss/seam/example/hibernate/HotelSearchingAction.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- HotelSearchingAction.java 8 Nov 2006 10:01:02 -0000 1.1
+++ HotelSearchingAction.java 10 Jan 2007 01:11:31 -0000 1.2
@@ -1,10 +1,7 @@
-//$Id: HotelSearchingAction.java,v 1.1 2006/11/08 10:01:02 myuan Exp $
+//$Id: HotelSearchingAction.java,v 1.2 2007/01/10 01:11:31 myuan Exp $
package org.jboss.seam.example.hibernate;
import java.util.List;
-import org.hibernate.Session;
-
-import org.jboss.seam.annotations.In;
import org.jboss.seam.ScopeType;
import org.jboss.seam.annotations.Destroy;
@@ -12,10 +9,14 @@
import org.jboss.seam.annotations.Scope;
import org.jboss.seam.annotations.datamodel.DataModel;
+import org.jboss.seam.annotations.In;
+
+import org.hibernate.Session;
+
@Name("hotelSearch")
@Scope(ScopeType.SESSION)
-// @LoggedIn
-public class HotelSearchingAction {
+public class HotelSearchingAction
+{
@In (create=true)
private Session bookingDatabase;
@@ -27,18 +28,16 @@
@DataModel
private List<Hotel> hotels;
- public String find()
+ public void find()
{
page = 0;
queryHotels();
- return "main";
}
- public String nextPage()
+ public void nextPage()
{
page++;
queryHotels();
- return "main";
}
private void queryHotels()
1.2 +42 -11 \
jboss-seam/examples/hibernate2/src/org/jboss/seam/example/hibernate/LoginAction.java \
(In the diff below, changes in quantity of whitespace are not shown.)
Index: LoginAction.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/examples/hibernate2/src/org/jboss/seam/example/hibernate/LoginAction.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- LoginAction.java 8 Nov 2006 10:01:02 -0000 1.1
+++ LoginAction.java 10 Jan 2007 01:11:31 -0000 1.2
@@ -1,25 +1,39 @@
-//$Id: LoginAction.java,v 1.1 2006/11/08 10:01:02 myuan Exp $
+//$Id: LoginAction.java,v 1.2 2007/01/10 01:11:31 myuan Exp $
package org.jboss.seam.example.hibernate;
import java.util.List;
-import org.hibernate.Session;
+import org.jboss.seam.ScopeType;
+import org.jboss.seam.Seam;
+import org.jboss.seam.annotations.Destroy;
import org.jboss.seam.annotations.In;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.Out;
-import org.jboss.seam.contexts.Contexts;
+import org.jboss.seam.annotations.Scope;
+import org.jboss.seam.annotations.Synchronized;
import org.jboss.seam.core.FacesMessages;
+import org.hibernate.Session;
+
+@Scope(ScopeType.SESSION)
+@Synchronized
@Name("login")
-public class LoginAction {
+public class LoginAction
+{
- @In @Out
+ @In(required=false)
+ @Out(required=false)
private User user;
@In (create=true)
private Session bookingDatabase;
- public String login()
+ @In
+ private FacesMessages facesMessages;
+
+ private boolean loggedIn;
+
+ public void login()
{
List<User> results = bookingDatabase.createQuery("select u from User u where \
u.username=:username and u.password=:password")
.setParameter("username", user.getUsername())
@@ -28,17 +42,34 @@
if ( results.size()==0 )
{
- FacesMessages.instance().add("Invalid login");
- return "login";
+ facesMessages.add("Invalid login");
}
else
{
user = results.get(0);
- Contexts.getSessionContext().set("loggedIn", true);
- FacesMessages.instance().add("Welcome, #{user.name}");
- return "main";
+ loggedIn = true;
+ facesMessages.add("Welcome, #{user.name}");
+ }
+
+ }
+
+ public void logout()
+ {
+ loggedIn = false;
+ Seam.invalidateSession();
+ }
+
+ public void validateLogin()
+ {
+ if ( !loggedIn )
+ {
+ facesMessages.add("Please log in first");
+ }
}
+ public boolean isLoggedIn()
+ {
+ return loggedIn;
}
}
1.3 +20 -7 \
jboss-seam/examples/hibernate2/src/org/jboss/seam/example/hibernate/RegisterAction.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: RegisterAction.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/examples/hibernate2/src/org/jboss/seam/example/hibernate/RegisterAction.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- RegisterAction.java 17 Nov 2006 02:49:04 -0000 1.2
+++ RegisterAction.java 10 Jan 2007 01:11:31 -0000 1.3
@@ -1,7 +1,6 @@
-//$Id: RegisterAction.java,v 1.2 2006/11/17 02:49:04 gavin Exp $
+//$Id: RegisterAction.java,v 1.3 2007/01/10 01:11:31 myuan Exp $
package org.jboss.seam.example.hibernate;
-import org.hibernate.Session;
import static org.jboss.seam.ScopeType.EVENT;
import java.util.List;
@@ -12,9 +11,12 @@
import org.jboss.seam.annotations.Scope;
import org.jboss.seam.core.FacesMessages;
+import org.hibernate.Session;
+
@Scope(EVENT)
@Name("register")
-public class RegisterAction {
+public class RegisterAction
+{
@In
private User user;
@@ -27,7 +29,9 @@
private String verify;
- public String register()
+ private boolean registered;
+
+ public void register()
{
if ( user.getPassword().equals(verify) )
{
@@ -38,22 +42,30 @@
{
bookingDatabase.persist(user);
facesMessages.add("Successfully registered as #{user.username}");
- return "login";
+ registered = true;
}
else
{
facesMessages.add("Username #{user.username} already exists");
- return null;
}
}
else
{
facesMessages.add("verify", "Re-enter your password");
verify=null;
- return null;
}
}
+ public void invalid()
+ {
+ facesMessages.add("Please try again");
+ }
+
+ public boolean isRegistered()
+ {
+ return registered;
+ }
+
public String getVerify()
{
return verify;
@@ -63,4 +75,5 @@
{
this.verify = verify;
}
+
}
1.2 +1 -1 \
jboss-seam/examples/hibernate2/src/org/jboss/seam/example/hibernate/User.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: User.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/examples/hibernate2/src/org/jboss/seam/example/hibernate/User.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- User.java 8 Nov 2006 10:01:02 -0000 1.1
+++ User.java 10 Jan 2007 01:11:31 -0000 1.2
@@ -1,4 +1,4 @@
-//$Id: User.java,v 1.1 2006/11/08 10:01:02 myuan Exp $
+//$Id: User.java,v 1.2 2007/01/10 01:11:31 myuan Exp $
package org.jboss.seam.example.hibernate;
import static org.jboss.seam.ScopeType.SESSION;
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic