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

Michael Yuan michael.yuan at jboss.com
Tue Jun 5 13:02:42 EDT 2007


  User: myuan   
  Date: 07/06/05 13:02:42

  Modified:    examples/quartz/src/org/jboss/seam/example/quartz   
                        Payment.java PaymentController.java
                        PaymentProcessor.java
  Log:
  Cron support in Quartz
  
  Revision  Changes    Path
  1.2       +10 -1     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.1
  retrieving revision 1.2
  diff -u -b -r1.1 -r1.2
  --- Payment.java	4 Jun 2007 22:46:26 -0000	1.1
  +++ Payment.java	5 Jun 2007 17:02:42 -0000	1.2
  @@ -40,6 +40,8 @@
   
       private boolean active = true;
   
  +    private String paymentCron;
  +
       private Frequency paymentFrequency = Frequency.DAILY;
       
       @Lob
  @@ -110,6 +112,13 @@
           this.paymentFrequency = paymentFrequency;
       }
   
  +    public String getPaymentCron() { 
  +        return paymentCron; 
  +    }
  +    public void setPaymentCron(String paymentCron) {
  +        this.paymentCron = paymentCron;
  +    }
  +
       public QuartzTriggerHandle getQuartzTriggerHandle() {
           return quartzTriggerHandle;
       }
  
  
  
  1.2       +16 -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.1
  retrieving revision 1.2
  diff -u -b -r1.1 -r1.2
  --- PaymentController.java	4 Jun 2007 22:46:26 -0000	1.1
  +++ PaymentController.java	5 Jun 2007 17:02:42 -0000	1.2
  @@ -35,6 +35,22 @@
           return result;
       }
   
  +    public String saveAndScheduleCron()
  +    {
  +        String result = persist();
  +        
  +        Payment payment = getInstance();
  +        log.info("scheduling instance #0", payment);
  +
  +        QuartzTriggerHandle handle = processor.schedulePayment(payment.getPaymentDate(), 
  +                                                payment.getPaymentCron(), 
  +                                                payment);
  +        
  +        payment.setQuartzTriggerHandle( handle );
  +
  +        return result;
  +    }
  +
       @Override
       public Object getId() {
           return paymentId;
  
  
  
  1.2       +21 -0     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.1
  retrieving revision 1.2
  diff -u -b -r1.1 -r1.2
  --- PaymentProcessor.java	4 Jun 2007 22:46:26 -0000	1.1
  +++ PaymentProcessor.java	5 Jun 2007 17:02:42 -0000	1.2
  @@ -13,6 +13,7 @@
   import org.jboss.seam.annotations.Transactional;
   import org.jboss.seam.annotations.timer.Expiration;
   import org.jboss.seam.annotations.timer.IntervalDuration;
  +import org.jboss.seam.annotations.timer.Cron;
   import org.jboss.seam.log.Log;
   import org.jboss.seam.core.QuartzDispatcher.QuartzTriggerHandle;
   
  @@ -48,4 +49,24 @@
   
           return null;
       }
  +
  +    @Asynchronous
  +    @Transactional
  +    public QuartzTriggerHandle schedulePayment(@Expiration Date when, 
  +                                 @Cron String cron, 
  +                                 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