[jboss-cvs] jboss-seam/examples/glassfish/src/org/jboss/seam/example/booking ...

Michael Yuan michael.yuan at jboss.com
Tue Jan 9 04:12:10 EST 2007


  User: myuan   
  Date: 07/01/09 04:12:10

  Modified:    examples/glassfish/src/org/jboss/seam/example/booking                   
                        Booking.java BookingList.java
                        BookingListAction.java ChangePassword.java
                        ChangePasswordAction.java Hotel.java
                        HotelBooking.java HotelBookingAction.java
                        HotelSearching.java HotelSearchingAction.java
                        LoggedIn.java LoggedInInterceptor.java Login.java
                        LoginAction.java Register.java RegisterAction.java
                        User.java
  Removed:     examples/glassfish/src/org/jboss/seam/example/booking                   
                        Logout.java LogoutAction.java
  Log:
  change to the new booking code w/ room rate and the new pages.xml
  
  Revision  Changes    Path
  1.3       +15 -4     jboss-seam/examples/glassfish/src/org/jboss/seam/example/booking/Booking.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: Booking.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/examples/glassfish/src/org/jboss/seam/example/booking/Booking.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -b -r1.2 -r1.3
  --- Booking.java	7 Dec 2006 22:42:41 -0000	1.2
  +++ Booking.java	9 Jan 2007 09:12:10 -0000	1.3
  @@ -1,14 +1,14 @@
  -//$Id: Booking.java,v 1.2 2006/12/07 22:42:41 myuan Exp $
  +//$Id: Booking.java,v 1.3 2007/01/09 09:12:10 myuan Exp $
   package org.jboss.seam.example.booking;
   
   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,7 +44,18 @@
         this.user = user;
      }
   
  -   // error with locking @Id @GeneratedValue(strategy=GenerationType.IDENTITY)
  +   @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()
      {
  @@ -114,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       +3 -2      jboss-seam/examples/glassfish/src/org/jboss/seam/example/booking/BookingList.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: BookingList.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/examples/glassfish/src/org/jboss/seam/example/booking/BookingList.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -b -r1.1 -r1.2
  --- BookingList.java	29 Nov 2006 09:30:41 -0000	1.1
  +++ BookingList.java	9 Jan 2007 09:12:10 -0000	1.2
  @@ -1,4 +1,4 @@
  -//$Id: BookingList.java,v 1.1 2006/11/29 09:30:41 myuan Exp $
  +//$Id: BookingList.java,v 1.2 2007/01/09 09:12:10 myuan Exp $
   package org.jboss.seam.example.booking;
   
   import javax.ejb.Local;
  @@ -7,6 +7,7 @@
   public interface BookingList
   {
      public void getBookings();
  -   public String cancel();
  +   public Booking getBooking();
  +   public void cancel();
      public void destroy();
   }
  \ No newline at end of file
  
  
  
  1.2       +11 -9     jboss-seam/examples/glassfish/src/org/jboss/seam/example/booking/BookingListAction.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: BookingListAction.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/examples/glassfish/src/org/jboss/seam/example/booking/BookingListAction.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -b -r1.1 -r1.2
  --- BookingListAction.java	29 Nov 2006 09:30:41 -0000	1.1
  +++ BookingListAction.java	9 Jan 2007 09:12:10 -0000	1.2
  @@ -1,4 +1,4 @@
  -//$Id: BookingListAction.java,v 1.1 2006/11/29 09:30:41 myuan Exp $
  +//$Id: BookingListAction.java,v 1.2 2007/01/09 09:12:10 myuan Exp $
   package org.jboss.seam.example.booking;
   
   import static javax.ejb.TransactionAttributeType.REQUIRES_NEW;
  @@ -13,13 +13,12 @@
   import javax.persistence.EntityManager;
   import javax.persistence.PersistenceContext;
   
  -import org.jboss.seam.annotations.Logger;
   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;
  @@ -43,7 +42,6 @@
      @DataModel
      private List<Booking> bookings;
      @DataModelSelection 
  -   @Out(required=false)
      private Booking booking;
      
      @Logger 
  @@ -58,14 +56,18 @@
               .getResultList();
      }
      
  -   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 = em.find(Booking.class, booking.getId());
         if (cancelled!=null) em.remove( 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;
      }
      
      @Destroy @Remove
  
  
  
  1.2       +3 -3      jboss-seam/examples/glassfish/src/org/jboss/seam/example/booking/ChangePassword.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: ChangePassword.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/examples/glassfish/src/org/jboss/seam/example/booking/ChangePassword.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -b -r1.1 -r1.2
  --- ChangePassword.java	29 Nov 2006 09:30:41 -0000	1.1
  +++ ChangePassword.java	9 Jan 2007 09:12:10 -0000	1.2
  @@ -1,4 +1,4 @@
  -//$Id: ChangePassword.java,v 1.1 2006/11/29 09:30:41 myuan Exp $
  +//$Id: ChangePassword.java,v 1.2 2007/01/09 09:12:10 myuan Exp $
   package org.jboss.seam.example.booking;
   
   import javax.ejb.Local;
  @@ -6,8 +6,8 @@
   @Local
   public interface ChangePassword
   {
  -   public String changePassword();
  -   public String cancel();
  +   public void changePassword();
  +   public boolean isChanged();
      
      public String getVerify();
      public void setVerify(String verify);
  
  
  
  1.2       +8 -8      jboss-seam/examples/glassfish/src/org/jboss/seam/example/booking/ChangePasswordAction.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: ChangePasswordAction.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/examples/glassfish/src/org/jboss/seam/example/booking/ChangePasswordAction.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -b -r1.1 -r1.2
  --- ChangePasswordAction.java	29 Nov 2006 09:30:41 -0000	1.1
  +++ ChangePasswordAction.java	9 Jan 2007 09:12:10 -0000	1.2
  @@ -1,4 +1,4 @@
  -//$Id: ChangePasswordAction.java,v 1.1 2006/11/29 09:30:41 myuan Exp $
  +//$Id: ChangePasswordAction.java,v 1.2 2007/01/09 09:12:10 myuan Exp $
   package org.jboss.seam.example.booking;
   
   import static org.jboss.seam.ScopeType.EVENT;
  @@ -30,27 +30,27 @@
      
      private String verify;
      
  -   public String changePassword()
  +   private boolean changed;
  +   
  +   public void changePassword()
      {
         if ( user.getPassword().equals(verify) )
         {
            user = em.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/glassfish/src/org/jboss/seam/example/booking/Hotel.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: Hotel.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/examples/glassfish/src/org/jboss/seam/example/booking/Hotel.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -b -r1.1 -r1.2
  --- Hotel.java	29 Nov 2006 09:30:41 -0000	1.1
  +++ Hotel.java	9 Jan 2007 09:12:10 -0000	1.2
  @@ -1,8 +1,10 @@
  -//$Id: Hotel.java,v 1.1 2006/11/29 09:30:41 myuan Exp $
  +//$Id: Hotel.java,v 1.2 2007/01/09 09:12:10 myuan Exp $
   package org.jboss.seam.example.booking;
   
   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.2       +8 -6      jboss-seam/examples/glassfish/src/org/jboss/seam/example/booking/HotelBooking.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: HotelBooking.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/examples/glassfish/src/org/jboss/seam/example/booking/HotelBooking.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -b -r1.1 -r1.2
  --- HotelBooking.java	29 Nov 2006 09:30:41 -0000	1.1
  +++ HotelBooking.java	9 Jan 2007 09:12:10 -0000	1.2
  @@ -1,4 +1,4 @@
  -//$Id: HotelBooking.java,v 1.1 2006/11/29 09:30:41 myuan Exp $
  +//$Id: HotelBooking.java,v 1.2 2007/01/09 09:12:10 myuan Exp $
   package org.jboss.seam.example.booking;
   
   import javax.ejb.Local;
  @@ -6,14 +6,16 @@
   @Local
   public interface HotelBooking
   {
  -   public String selectHotel(Hotel selectedHotel);
  +   public void selectHotel(Hotel selectedHotel);
      
  -   public String bookHotel();
  +   public void bookHotel();
      
  -   public String setBookingDetails();
  +   public void setBookingDetails();
  +   public boolean isBookingValid();
      
  -   public String confirm();
  -   public String cancel();
  +   public void confirm();
  +   
  +   public void cancel();
      
      public void destroy();
      
  
  
  
  1.2       +15 -20    jboss-seam/examples/glassfish/src/org/jboss/seam/example/booking/HotelBookingAction.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: HotelBookingAction.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/examples/glassfish/src/org/jboss/seam/example/booking/HotelBookingAction.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -b -r1.1 -r1.2
  --- HotelBookingAction.java	29 Nov 2006 09:30:41 -0000	1.1
  +++ HotelBookingAction.java	9 Jan 2007 09:12:10 -0000	1.2
  @@ -1,4 +1,4 @@
  -//$Id: HotelBookingAction.java,v 1.1 2006/11/29 09:30:41 myuan Exp $
  +//$Id: HotelBookingAction.java,v 1.2 2007/01/09 09:12:10 myuan Exp $
   package org.jboss.seam.example.booking;
   
   import static javax.persistence.PersistenceContextType.EXTENDED;
  @@ -49,62 +49,57 @@
      @Logger 
      private Log log;
      
  +   private boolean bookingValid;
  +   
      @Begin
  -   public String selectHotel(Hotel selectedHotel)
  +   public void selectHotel(Hotel selectedHotel)
      {
         hotel = em.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;
      }
   
      @End
  -   public String confirm()
  +   public void confirm()
      {
  -      if (booking==null || hotel==null) return "main";
         em.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");
      }
      
      @End
  -   public String cancel()
  -   {
  -      return "main";
  -   }
  +   public void cancel() {}
      
      @Destroy @Remove
      public void destroy() {}
  
  
  
  1.2       +2 -2      jboss-seam/examples/glassfish/src/org/jboss/seam/example/booking/HotelSearching.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: HotelSearching.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/examples/glassfish/src/org/jboss/seam/example/booking/HotelSearching.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -b -r1.1 -r1.2
  --- HotelSearching.java	29 Nov 2006 09:30:41 -0000	1.1
  +++ HotelSearching.java	9 Jan 2007 09:12:10 -0000	1.2
  @@ -1,4 +1,4 @@
  -//$Id: HotelSearching.java,v 1.1 2006/11/29 09:30:41 myuan Exp $
  +//$Id: HotelSearching.java,v 1.2 2007/01/09 09:12:10 myuan Exp $
   package org.jboss.seam.example.booking;
   
   import javax.ejb.Local;
  @@ -13,7 +13,7 @@
      public void setSearchString(String searchString);
      
      public void find();
  -   public String nextPage();
  +   public void nextPage();
      public boolean isNextPageAvailable();
   
      public void destroy();
  
  
  
  1.2       +2 -3      jboss-seam/examples/glassfish/src/org/jboss/seam/example/booking/HotelSearchingAction.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: HotelSearchingAction.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/examples/glassfish/src/org/jboss/seam/example/booking/HotelSearchingAction.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -b -r1.1 -r1.2
  --- HotelSearchingAction.java	29 Nov 2006 09:30:41 -0000	1.1
  +++ HotelSearchingAction.java	9 Jan 2007 09:12:10 -0000	1.2
  @@ -1,4 +1,4 @@
  -//$Id: HotelSearchingAction.java,v 1.1 2006/11/29 09:30:41 myuan Exp $
  +//$Id: HotelSearchingAction.java,v 1.2 2007/01/09 09:12:10 myuan Exp $
   package org.jboss.seam.example.booking;
   
   import java.util.List;
  @@ -37,11 +37,10 @@
         queryHotels();
      }
   
  -   public String nextPage()
  +   public void nextPage()
      {
         page++;
         queryHotels();
  -      return "main";
      }
         
      private void queryHotels()
  
  
  
  1.2       +0 -0      jboss-seam/examples/glassfish/src/org/jboss/seam/example/booking/LoggedIn.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: LoggedIn.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/examples/glassfish/src/org/jboss/seam/example/booking/LoggedIn.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -b -r1.1 -r1.2
  --- LoggedIn.java	29 Nov 2006 09:30:41 -0000	1.1
  +++ LoggedIn.java	9 Jan 2007 09:12:10 -0000	1.2
  @@ -1,4 +1,4 @@
  -//$Id: LoggedIn.java,v 1.1 2006/11/29 09:30:41 myuan Exp $
  +//$Id: LoggedIn.java,v 1.2 2007/01/09 09:12:10 myuan Exp $
   package org.jboss.seam.example.booking;
   
   import static java.lang.annotation.ElementType.TYPE;
  
  
  
  1.2       +14 -33    jboss-seam/examples/glassfish/src/org/jboss/seam/example/booking/LoggedInInterceptor.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: LoggedInInterceptor.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/examples/glassfish/src/org/jboss/seam/example/booking/LoggedInInterceptor.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -b -r1.1 -r1.2
  --- LoggedInInterceptor.java	29 Nov 2006 09:30:41 -0000	1.1
  +++ LoggedInInterceptor.java	9 Jan 2007 09:12:10 -0000	1.2
  @@ -1,52 +1,34 @@
  -//$Id: LoggedInInterceptor.java,v 1.1 2006/11/29 09:30:41 myuan Exp $
  +//$Id: LoggedInInterceptor.java,v 1.2 2007/01/09 09:12:10 myuan Exp $
   package org.jboss.seam.example.booking;
   
   import java.lang.reflect.Method;
   
   import javax.interceptor.AroundInvoke;
   import javax.interceptor.InvocationContext;
  -import javax.faces.event.PhaseId;
   
  +import org.jboss.seam.Component;
  +import org.jboss.seam.InterceptorType;
   import org.jboss.seam.annotations.Interceptor;
  -import org.jboss.seam.contexts.Contexts;
   import org.jboss.seam.contexts.Lifecycle;
  -import org.jboss.seam.interceptors.BijectionInterceptor;
  -import org.jboss.seam.interceptors.BusinessProcessInterceptor;
  -import org.jboss.seam.interceptors.ConversationInterceptor;
  -import org.jboss.seam.interceptors.RemoveInterceptor;
  -import org.jboss.seam.interceptors.ValidationInterceptor;
  -
  - at Interceptor(around={BijectionInterceptor.class, ValidationInterceptor.class, 
  -                     ConversationInterceptor.class, BusinessProcessInterceptor.class},
  -             within=RemoveInterceptor.class)
  +
  + at Interceptor(type=InterceptorType.CLIENT)
   public class LoggedInInterceptor
   {
   
      @AroundInvoke
      public Object checkLoggedIn(InvocationContext invocation) throws Exception
      {
  -      boolean isLoggedIn = Contexts.getSessionContext().get("loggedIn")!=null;
  -      if ( Lifecycle.getPhaseId()==PhaseId.INVOKE_APPLICATION )
  -      {
  -         if (isLoggedIn) 
  -         {
  -            return invocation.proceed();
  -         }
  -         else 
  -         {
  -            return "login";
  -         }
  -      }
  -      else
  -      {
  -         if ( isLoggedIn )
  +      boolean allowed = Lifecycle.isDestroying() || 
  +            ( (Login) Component.getInstance(LoginAction.class) ).isLoggedIn();
  +      if ( allowed )
            {
               return invocation.proceed();
            }
            else
            {
               Method method = invocation.getMethod();
  -            if ( method.getReturnType().equals(void.class) )
  +         Class<?> returnType = method.getReturnType();
  +         if ( returnType.equals(void.class) || returnType.equals(String.class) )
               {
                  return null;
               }
  @@ -56,6 +38,5 @@
               }
            }
         }
  -   }
   
   }
  
  
  
  1.2       +7 -2      jboss-seam/examples/glassfish/src/org/jboss/seam/example/booking/Login.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: Login.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/examples/glassfish/src/org/jboss/seam/example/booking/Login.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -b -r1.1 -r1.2
  --- Login.java	29 Nov 2006 09:30:41 -0000	1.1
  +++ Login.java	9 Jan 2007 09:12:10 -0000	1.2
  @@ -1,4 +1,4 @@
  -//$Id: Login.java,v 1.1 2006/11/29 09:30:41 myuan Exp $
  +//$Id: Login.java,v 1.2 2007/01/09 09:12:10 myuan Exp $
   package org.jboss.seam.example.booking;
   
   import javax.ejb.Local;
  @@ -6,5 +6,10 @@
   @Local
   public interface Login
   {
  -   public String login();
  +   public void login();
  +   public void logout();
  +   public void validateLogin();
  +   public boolean isLoggedIn();
  +   
  +   public void destroy();
   }
  
  
  
  1.2       +44 -11    jboss-seam/examples/glassfish/src/org/jboss/seam/example/booking/LoginAction.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: LoginAction.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/examples/glassfish/src/org/jboss/seam/example/booking/LoginAction.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -b -r1.1 -r1.2
  --- LoginAction.java	29 Nov 2006 09:30:41 -0000	1.1
  +++ LoginAction.java	9 Jan 2007 09:12:10 -0000	1.2
  @@ -1,30 +1,43 @@
  -//$Id: LoginAction.java,v 1.1 2006/11/29 09:30:41 myuan Exp $
  +//$Id: LoginAction.java,v 1.2 2007/01/09 09:12:10 myuan Exp $
   package org.jboss.seam.example.booking;
   
   import java.util.List;
   
  -import javax.ejb.Stateless;
  +import javax.ejb.Remove;
  +import javax.ejb.Stateful;
   import javax.persistence.EntityManager;
   import javax.persistence.PersistenceContext;
   
  +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;
   
  - at Stateless
  + at Stateful
  + at Scope(ScopeType.SESSION)
  + at Synchronized
   @Name("login")
   public class LoginAction implements Login
   {
      
  -   @In @Out
  +   @In(required=false) 
  +   @Out(required=false)
      private User user;
      
      @PersistenceContext
      private EntityManager em;
   
  -   public String login()
  +   @In
  +   private FacesMessages facesMessages;
  +   
  +   private boolean loggedIn;
  +
  +   public void login()
      {
         List<User> results = em.createQuery("select u from User u where u.username=:username and u.password=:password")
               .setParameter("username", user.getUsername())
  @@ -33,17 +46,37 @@
         
         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;
  +   }
  +   
  +   @Destroy @Remove
  +   public void destroy() {}
   
   }
  
  
  
  1.2       +4 -2      jboss-seam/examples/glassfish/src/org/jboss/seam/example/booking/Register.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: Register.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/examples/glassfish/src/org/jboss/seam/example/booking/Register.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -b -r1.1 -r1.2
  --- Register.java	29 Nov 2006 09:30:41 -0000	1.1
  +++ Register.java	9 Jan 2007 09:12:10 -0000	1.2
  @@ -1,4 +1,4 @@
  -//$Id: Register.java,v 1.1 2006/11/29 09:30:41 myuan Exp $
  +//$Id: Register.java,v 1.2 2007/01/09 09:12:10 myuan Exp $
   package org.jboss.seam.example.booking;
   
   import javax.ejb.Local;
  @@ -6,9 +6,11 @@
   @Local
   public interface Register
   {
  -   public String register();
  +   public void register();
  +   public void invalid();
      public String getVerify();
      public void setVerify(String verify);
  +   public boolean isRegistered();
      
      public void destroy();
   }
  \ No newline at end of file
  
  
  
  1.2       +15 -5     jboss-seam/examples/glassfish/src/org/jboss/seam/example/booking/RegisterAction.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: RegisterAction.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/examples/glassfish/src/org/jboss/seam/example/booking/RegisterAction.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -b -r1.1 -r1.2
  --- RegisterAction.java	29 Nov 2006 09:30:41 -0000	1.1
  +++ RegisterAction.java	9 Jan 2007 09:12:10 -0000	1.2
  @@ -1,4 +1,4 @@
  -//$Id: RegisterAction.java,v 1.1 2006/11/29 09:30:41 myuan Exp $
  +//$Id: RegisterAction.java,v 1.2 2007/01/09 09:12:10 myuan Exp $
   package org.jboss.seam.example.booking;
   
   import static org.jboss.seam.ScopeType.EVENT;
  @@ -33,7 +33,9 @@
      
      private String verify;
      
  -   public String register()
  +   private boolean registered;
  +   
  +   public void register()
      {
         if ( user.getPassword().equals(verify) )
         {
  @@ -44,22 +46,30 @@
            {
               em.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;
  
  
  
  1.2       +0 -0      jboss-seam/examples/glassfish/src/org/jboss/seam/example/booking/User.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: User.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/examples/glassfish/src/org/jboss/seam/example/booking/User.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -b -r1.1 -r1.2
  --- User.java	29 Nov 2006 09:30:41 -0000	1.1
  +++ User.java	9 Jan 2007 09:12:10 -0000	1.2
  @@ -1,4 +1,4 @@
  -//$Id: User.java,v 1.1 2006/11/29 09:30:41 myuan Exp $
  +//$Id: User.java,v 1.2 2007/01/09 09:12:10 myuan Exp $
   package org.jboss.seam.example.booking;
   
   import static org.jboss.seam.ScopeType.SESSION;
  
  
  



More information about the jboss-cvs-commits mailing list