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

Michael Yuan michael.yuan at jboss.com
Mon Jul 30 15:10:39 EDT 2007


  User: myuan   
  Date: 07/07/30 15:10:39

  Modified:    examples/quartz/src/org/jboss/seam/example/quartz   
                        Payment.java PaymentController.java
                        PaymentProcessor.java
  Log:
  Add a NthBusinessDay example in examples/quartz
  
  Revision  Changes    Path
  1.5       +166 -155  jboss-seam/examples/quartz/src/org/jboss/seam/example/quartz/Payment.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: Payment.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/examples/quartz/src/org/jboss/seam/example/quartz/Payment.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -b -r1.4 -r1.5
  --- Payment.java	23 Jun 2007 08:05:23 -0000	1.4
  +++ Payment.java	30 Jul 2007 19:10:38 -0000	1.5
  @@ -5,6 +5,7 @@
   import java.util.Date;
   
   import org.jboss.seam.async.QuartzTriggerHandle;
  +import org.jboss.seam.async.NthBusinessDay;
   import javax.persistence.Entity;
   import javax.persistence.GeneratedValue;
   import javax.persistence.Id;
  @@ -48,6 +49,9 @@
       @Lob
       private QuartzTriggerHandle quartzTriggerHandle;
   
  +    @Lob
  +    private NthBusinessDay paymentNthBusinessDay = new NthBusinessDay ();
  +
       public Long getId() {
           return id;
       }
  @@ -134,6 +138,13 @@
           this.quartzTriggerHandle = quartzTriggerHandle;
       }
   
  +    public NthBusinessDay getPaymentNthBusinessDay() {
  +        return paymentNthBusinessDay;
  +    }
  +    public void setPaymentNthBusinessDay(NthBusinessDay nthBusinessDay) {
  +        this.paymentNthBusinessDay = nthBusinessDay;
  +    }
  +
   
       public enum Frequency {
           ONCE(null), 
  
  
  
  1.7       +18 -0     jboss-seam/examples/quartz/src/org/jboss/seam/example/quartz/PaymentController.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: PaymentController.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/examples/quartz/src/org/jboss/seam/example/quartz/PaymentController.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -b -r1.6 -r1.7
  --- PaymentController.java	25 Jun 2007 23:32:03 -0000	1.6
  +++ PaymentController.java	30 Jul 2007 19:10:39 -0000	1.7
  @@ -57,6 +57,24 @@
           return result;
       }
   
  +    public String saveAndScheduleNthBusinessDay()
  +    {
  +        String result = persist();
  +        
  +        Payment payment = getInstance();
  +        payment.setPaymentDate (new Date ());
  +        log.info("scheduling instance #0", payment);
  +
  +        QuartzTriggerHandle handle = processor.schedulePayment(payment.getPaymentDate(), 
  +                                                payment.getPaymentNthBusinessDay(), 
  +                                                payment.getPaymentEndDate(), 
  +                                                payment);
  +        
  +        payment.setQuartzTriggerHandle( handle );
  +
  +        return result;
  +    }
  +
       @Override
       public Object getId() {
           return paymentId;
  
  
  
  1.6       +23 -1     jboss-seam/examples/quartz/src/org/jboss/seam/example/quartz/PaymentProcessor.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: PaymentProcessor.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/examples/quartz/src/org/jboss/seam/example/quartz/PaymentProcessor.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -b -r1.5 -r1.6
  --- PaymentProcessor.java	25 Jun 2007 23:13:52 -0000	1.5
  +++ PaymentProcessor.java	30 Jul 2007 19:10:39 -0000	1.6
  @@ -15,9 +15,10 @@
   import org.jboss.seam.annotations.async.FinalExpiration;
   import org.jboss.seam.annotations.async.IntervalDuration;
   import org.jboss.seam.annotations.async.IntervalCron;
  +import org.jboss.seam.annotations.async.IntervalBusinessDay;
   import org.jboss.seam.log.Log;
   import org.jboss.seam.async.QuartzTriggerHandle;
  -
  +import org.jboss.seam.async.NthBusinessDay;
   
   @Name("processor")
   @AutoCreate
  @@ -72,4 +73,25 @@
   
           return null;
       }
  +    
  +    @Asynchronous
  +    @Transactional
  +    public QuartzTriggerHandle schedulePayment(@Expiration Date when, 
  +                                 @IntervalBusinessDay NthBusinessDay nth, 
  +                                 @FinalExpiration Date stoptime, 
  +                                 Payment payment) 
  +    { 
  +        payment = entityManager.merge(payment);
  +        
  +        log.info("[#0] Processing cron payment #1", System.currentTimeMillis(), payment.getId());
  +
  +        if (payment.getActive()) {
  +            BigDecimal balance = payment.getAccount().adjustBalance(payment.getAmount().negate());
  +            log.info(":: balance is now #0", balance);
  +            payment.setLastPaid(new Date());
  +
  +        }
  +
  +        return null;
  +    }
   }
  
  
  



More information about the jboss-cvs-commits mailing list