[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