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

Norman Richards norman.richards at jboss.com
Sun Oct 22 15:40:02 EDT 2006


  User: nrichards
  Date: 06/10/22 15:40:02

  Modified:    examples/seampay/src/org/jboss/seam/example/seampay   
                        Payment.java PaymentController.java
                        PaymentProcessor.java
  Log:
  add recurring payments
  
  Revision  Changes    Path
  1.3       +14 -5     jboss-seam/examples/seampay/src/org/jboss/seam/example/seampay/Payment.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: Payment.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/examples/seampay/src/org/jboss/seam/example/seampay/Payment.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -b -r1.2 -r1.3
  --- Payment.java	21 Oct 2006 22:23:45 -0000	1.2
  +++ Payment.java	22 Oct 2006 19:40:02 -0000	1.3
  @@ -1,18 +1,17 @@
   package org.jboss.seam.example.seampay;
   
  +import javax.ejb.*;
   import javax.persistence.*;
  -import org.hibernate.validator.*;
   
   import java.io.Serializable;
   import java.util.*;
   
  +import org.hibernate.validator.*;
  +
   @Entity
   public class Payment
       implements Serializable
   {
  -
  -
  -
       @Id @GeneratedValue 
       private Long id;
   
  @@ -34,6 +33,8 @@
   
       private Frequency paymentFrequency = Frequency.DAILY;
   
  +    @Lob
  +    private TimerHandle timerHandle;
   
       public Long getId() {
           return id;
  @@ -108,6 +109,14 @@
           return result;
       }
   
  +    public TimerHandle getTimerHandle() {
  +        return timerHandle;
  +    }
  +    public void setTimerHandle(TimerHandle timerHandle) {
  +        this.timerHandle = timerHandle;
  +    }
  +
  +
       public enum Frequency {
           ONCE(0), 
           EVERY_MINUTE(60*1000),
  
  
  
  1.3       +25 -7     jboss-seam/examples/seampay/src/org/jboss/seam/example/seampay/PaymentController.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: PaymentController.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/examples/seampay/src/org/jboss/seam/example/seampay/PaymentController.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -b -r1.2 -r1.3
  --- PaymentController.java	21 Oct 2006 22:23:45 -0000	1.2
  +++ PaymentController.java	22 Oct 2006 19:40:02 -0000	1.3
  @@ -3,19 +3,19 @@
   import org.jboss.seam.annotations.*;
   import org.jboss.seam.annotations.timer.*;
   import org.jboss.seam.framework.*;
  -import org.jboss.seam.core.Expressions;
  -import org.jboss.seam.core.Expressions.ValueBinding;
  +import org.jboss.seam.core.*;
   import org.jboss.seam.log.Log;
   
   import javax.persistence.*;
   
   import java.util.Date;
  -import javax.ejb.Timer;
  +import javax.ejb.*;
   
   
   public class PaymentController 
       extends EntityHome<Payment>
   {
  +    @RequestParameter Long paymentId;
       @In(create=true) PaymentProcessor processor;
   
       @Logger Log log;
  @@ -27,12 +27,30 @@
           Payment payment = getInstance();
           log.info("scheduling instance #0", payment);
   
  -        processor.schedulePayment(payment.getPaymentDate(), 
  +        Timer timer = processor.schedulePayment(payment.getPaymentDate(), 
                                     payment.getPaymentFrequency().getInterval(), 
                                     payment);
   
  +        TimerHandle handle = Dispatcher.instance().getHandle(timer);
  +        payment.setTimerHandle(handle);
  +
           return result;
       }
   
  +    public Object getId() {
  +        return paymentId;
  +    }
  +
  +    public void cancel() {
  +        Payment payment = getInstance();
  +
  +        TimerHandle handle = payment.getTimerHandle();
  +        payment.setTimerHandle(null);
  +        
  +        Timer timer = Dispatcher.instance().getTimer(handle);
  +        Dispatcher.instance().cancel(timer);
  +
  +        payment.setTimerHandle(null);
  +    }
       
   }
  
  
  
  1.3       +2 -1      jboss-seam/examples/seampay/src/org/jboss/seam/example/seampay/PaymentProcessor.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: PaymentProcessor.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/examples/seampay/src/org/jboss/seam/example/seampay/PaymentProcessor.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -b -r1.2 -r1.3
  --- PaymentProcessor.java	21 Oct 2006 22:23:45 -0000	1.2
  +++ PaymentProcessor.java	22 Oct 2006 19:40:02 -0000	1.3
  @@ -24,6 +24,7 @@
           payment = entityManager.merge(payment);
           
           log.info("[#0] Processing payment #1", System.currentTimeMillis(), payment.getId());
  +        log.info("Timer handle is #0", payment.getTimerHandle());
           
           if (payment.getActive()) {
               float balance = payment.getAccount().adjustBalance(-payment.getAmount());
  
  
  



More information about the jboss-cvs-commits mailing list