[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