
eap6.java-ee.seam.tests.data.src.TestPaymentProcessor Maven / Gradle / Ivy
The newest version!
package org.jboss.seam.example.quartz.test;
import static org.jboss.seam.annotations.Install.MOCK;
import java.math.BigDecimal;
import java.util.Date;
import javax.persistence.EntityManager;
import org.jboss.seam.annotations.AutoCreate;
import org.jboss.seam.annotations.In;
import org.jboss.seam.annotations.Install;
import org.jboss.seam.annotations.Logger;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.Observer;
import org.jboss.seam.annotations.Transactional;
import org.jboss.seam.annotations.async.Asynchronous;
import org.jboss.seam.async.QuartzTriggerHandle;
import org.jboss.seam.example.quartz.Payment;
import org.jboss.seam.example.quartz.PaymentProcessor;
import org.jboss.seam.log.Log;
/**
* @author Pete Muir
*
*/
@Name("processor")
@Install(precedence=MOCK)
@AutoCreate
public class TestPaymentProcessor extends PaymentProcessor
{
@In
EntityManager entityManager;
@Logger Log log;
@Asynchronous
@Transactional
public QuartzTriggerHandle schedulePaymentAsynchronously(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;
}
@Observer("org.jboss.seam.example.quartz.test.scheduleAndSave")
@Transactional
public QuartzTriggerHandle schedulePayment(Payment payment)
{
payment = entityManager.merge(payment);
log.error("[#0] Processing cron payment #1", System.currentTimeMillis(), payment.getId());
if (payment.getActive()) {
BigDecimal balance = payment.getAccount().adjustBalance(payment.getAmount().negate());
log.error(":: balance is now #0", balance);
payment.setLastPaid(new Date());
}
return null;
}
@Observer("org.jboss.seam.example.quartz.test.transactionSuccess")
@Transactional
public void observeTransactionSuccess(Payment payment)
{
TransactionStatus.instance().setTransactionSucceded(true);
TransactionStatus.instance().setId(payment.getId());
}
@Observer("org.jboss.seam.example.quartz.test.transactionCompletion")
@Transactional
public void observeTransactionCompletion(Payment payment)
{
TransactionStatus.instance().setTransactionCompleted(true);
TransactionStatus.instance().setId(payment.getId());
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy