[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